Index: umsboot/src/soc/s5l87xx/startup.S~ |
— | — | @@ -1,230 +0,0 @@ |
2 | | -#define ASM_FILE |
3 | | -#include "global.h" |
4 | | - |
5 | | - |
6 | | -#ifndef SOC_S5L8701 |
7 | | -#ifndef PAGETABLE_BASEADDR |
8 | | -#define PAGETABLE_BASEADDR DEFAULT_PAGETABLE_BASEADDR |
9 | | -#endif |
10 | | -#endif |
11 | | - |
12 | | - |
13 | | -.syntax unified |
14 | | - |
15 | | - |
16 | | -.extern _text_size |
17 | | -.extern _bss |
18 | | -.extern _bss_offset |
19 | | -.extern _dmabss |
20 | | -.extern _dmabss_offset |
21 | | -.extern _undef_instr_handler |
22 | | -.extern _syscall_handler |
23 | | -.extern _prefetch_abort_handler |
24 | | -.extern _data_abort_handler |
25 | | -.extern _reserved_handler |
26 | | -.extern _irq_handler |
27 | | -.extern _fiq_handler |
28 | | - |
29 | | - |
30 | | -.global _vectors |
31 | | -.section .vectors,"ax",%progbits |
32 | | -_vectors: |
33 | | - b _reset_handler |
34 | | - b _undef_instr_handler |
35 | | - b _syscall_handler |
36 | | - b _prefetch_abort_handler |
37 | | - b _data_abort_handler |
38 | | - b _reserved_handler |
39 | | - b _irq_handler |
40 | | - b _fiq_handler |
41 | | - |
42 | | -_reset_handler: |
43 | | - @ Check if we need to relocate ourselves |
44 | | - adr r0, _vectors |
45 | | - ldr r1, =_vectors |
46 | | - cmp r0, r1 |
47 | | - beq _relocated |
48 | | - @ Move around as necessary |
49 | | - ldr r2, =(_text_size + 31) |
50 | | - mov r2, r2,lsr#5 |
51 | | -_copy: |
52 | | - ldmia r0!, {r4-r11} |
53 | | - stmia r1!, {r4-r11} |
54 | | - subs r2, r2, #1 |
55 | | - bne _copy |
56 | | -_relocated: |
57 | | -#ifdef SOC_S5L8701 |
58 | | - @ Detect execution base address and remap memory at 0x0 accordingly (for IRQ vectors) |
59 | | - tst r1, #0x20000000 |
60 | | - ldr r1, =0x38200000 |
61 | | - ldr r0, [r1] |
62 | | - orr r0, r0, #1 |
63 | | - bicne r0, r0, #0x10000 |
64 | | - orreq r0, r0, #0x10000 |
65 | | - str r0, [r1] |
66 | | -#endif |
67 | | - |
68 | | - @ Flush caches |
69 | | - mov r0, #0 |
70 | | -#if CPU_ARM_ARCH < 6 |
71 | | -_cleancache: |
72 | | -#if CPU_ARM_ARCH < 5 |
73 | | - mcr p15, 0, r0,c7,c10,2 |
74 | | - add r1, r0, #0x10 |
75 | | - mcr p15, 0, r1,c7,c10,2 |
76 | | - add r1, r1, #0x10 |
77 | | - mcr p15, 0, r1,c7,c10,2 |
78 | | - add r1, r1, #0x10 |
79 | | - mcr p15, 0, r1,c7,c10,2 |
80 | | - adds r0, r0, #0x04000000 |
81 | | -#else |
82 | | - mrc p15, 0, r15,c7,c10,3 |
83 | | -#endif |
84 | | - bne _cleancache |
85 | | -#else |
86 | | - mcr p15, 0, r0,c7,c14,0 |
87 | | -#endif |
88 | | - mcr p15, 0, r0,c7,c10,4 |
89 | | - mcr p15, 0, r0,c7,c5,0 |
90 | | -#if CPU_ARM_ARCH >= 6 |
91 | | - mcr p15, 0, r0,c7,c5,4 |
92 | | -#endif |
93 | | - |
94 | | -#ifdef SOC_S5L8701 |
95 | | - @ Enable caches |
96 | | - mrc p15, 0, r1,c1,c0 |
97 | | - orr r1, r1, #0x00001000 |
98 | | - orr r1, r1, #0x00000005 |
99 | | - mcr p15, 0, r1,c1,c0 |
100 | | -#else |
101 | | -#ifdef ENABLE_MMU |
102 | | - @ Disable caches |
103 | | - mrc p15, 0, r3,c1,c0 |
104 | | - bic r1, r3, #0x00001000 |
105 | | - orr r3, r3, #0x00001000 |
106 | | - bic r1, r1, #0x00000005 |
107 | | - orr r3, r3, #0x00000005 |
108 | | - mcr p15, 0, r1,c1,c0 |
109 | | - |
110 | | - @ Flush TLB |
111 | | - mcr p15, 0, r0,c8,c7 |
112 | | - |
113 | | - @ Disable remapping of the first 32MB (will be done by the MMU) |
114 | | - mcr p15, 0, r0,c13,c0 |
115 | | - |
116 | | - @ Configure MMU |
117 | | - ldr r0, =PAGETABLE_BASEADDR |
118 | | - ldr r1, =0xc1e |
119 | | - ldr r2, =_vectors |
120 | | - add r2, r2, r1 |
121 | | - mcr p15, 0, r0,c2,c0 |
122 | | - str r2, [r0], #4 |
123 | | -_mmuloop: |
124 | | - add r1, r1, #0x00100000 |
125 | | - cmp r1, #0x38000000 |
126 | | - biccs r1, r1, #0xc |
127 | | - tst r1, #0x40000000 |
128 | | - str r1, [r0], #4 |
129 | | - beq _mmuloop |
130 | | - mov r0, #-1 |
131 | | - mcr p15, 0, r0,c3,c0 |
132 | | - |
133 | | - @ Enable caches |
134 | | - mcr p15, 0, r3,c1,c0 |
135 | | -#endif |
136 | | -#endif |
137 | | - |
138 | | - @ Jump to final execution address (after relocation) |
139 | | - ldr pc, =_enable_irqs |
140 | | - |
141 | | -_enable_irqs: |
142 | | - @ Mask and clear all IRQs |
143 | | -#ifdef SOC_S5L8701 |
144 | | - mov r1, #0x39c00000 |
145 | | - str r0, [r1,#4] |
146 | | - str r0, [r1,#8] |
147 | | - str r0, [r1,#0x38] |
148 | | - str r0, [r1,#0x20] |
149 | | - sub r0, r0, #1 |
150 | | - str r0, [r1] |
151 | | - str r0, [r1,#0x10] |
152 | | - str r0, [r1,#0x1c] |
153 | | -#else |
154 | | - ldr r1, =0x38e00000 |
155 | | - add r2, r1, #0x00001000 |
156 | | - add r3, r1, #0x00002000 |
157 | | - mov r0, #-1 |
158 | | - str r0, [r1,#0x14] |
159 | | - str r0, [r2,#0x14] |
160 | | - str r0, [r1,#0xf00] |
161 | | - str r0, [r2,#0xf00] |
162 | | - str r0, [r3,#0x08] |
163 | | - str r0, [r3,#0x0c] |
164 | | -#endif |
165 | | - |
166 | | - @ Set up stacks and enable IRQs |
167 | | - msr cpsr_c, #0xd2 |
168 | | - ldr sp, =_irq_stack_top |
169 | | - msr cpsr_c, #0xd7 |
170 | | - ldr sp, =_abort_stack_top |
171 | | - msr cpsr_c, #0xdb |
172 | | - ldr sp, =_abort_stack_top |
173 | | - msr cpsr_c, #0x13 |
174 | | - ldr sp, =_stack_top |
175 | | - |
176 | | - @ Zero .bss section |
177 | | - ldr r0, =_bss |
178 | | - mov r1, #0 |
179 | | - ldr r2, =_bss_size |
180 | | - bl memset |
181 | | - |
182 | | - @ Zero .dmabss section |
183 | | - ldr r0, =_dmabss |
184 | | - mov r1, #0 |
185 | | - ldr r2, =_dmabss_size |
186 | | - bl memset |
187 | | - |
188 | | - @ Run C init code |
189 | | - bl init |
190 | | - @fallthrough |
191 | | - |
192 | | -_idleloop: |
193 | | - mcr p15, 0, r0,c7,c0,4 |
194 | | - b _idleloop |
195 | | -.ltorg |
196 | | - |
197 | | -.global idle |
198 | | -.type idle, %function |
199 | | -idle: |
200 | | - mcr p15, 0, r0,c7,c0,4 |
201 | | - bx lr |
202 | | -.size idle, .-idle |
203 | | - |
204 | | - |
205 | | -.global reset |
206 | | -.global hang |
207 | | -.type reset, %function |
208 | | -.type hang, %function |
209 | | -reset: |
210 | | -#ifdef SOC_S5L8701 |
211 | | - msr cpsr_c, #0xd3 |
212 | | - mov r0, #0x110000 |
213 | | - add r0, r0, #0xff |
214 | | - add r1, r0, #0xa00 |
215 | | - mov r2, #0x3c800000 |
216 | | - str r1, [r2] |
217 | | - mov r1, #0xff0 |
218 | | - str r1, [r2,#4] |
219 | | - str r0, [r2] |
220 | | -#else |
221 | | - msr cpsr_c, #0xd3 |
222 | | - mov r0, #0x100000 |
223 | | - mov r1, #0x3c800000 |
224 | | - str r0, [r1] |
225 | | -#endif |
226 | | -hang: |
227 | | - msr cpsr_c, #0xd3 |
228 | | - mcr p15, 0, r0,c7,c0,4 |
229 | | - b hang |
230 | | -.size reset, .-reset |
231 | | -.size hang, .-hang |
Index: umsboot/src/target/umsboot/ipodclassic/target.h~ |
— | — | @@ -1,52 +0,0 @@ |
2 | | -#ifndef __TARGET_UMSBOOT_IPODCLASSIC_TARGET_H__ |
3 | | -#define __TARGET_UMSBOOT_IPODCLASSIC_TARGET_H__ |
4 | | - |
5 | | -#include "board/ipodclassic/target.h" |
6 | | -#include "soc/s5l87xx/regs.h" |
7 | | - |
8 | | -#define SDRAM_SIZE 0 |
9 | | -#define ENABLE_MMU |
10 | | - |
11 | | -#define CODE_REGION SRAM |
12 | | -#define BSS_REGION SRAM |
13 | | - |
14 | | -#define S5L87XX_SYNOPSYSOTG_ENABLE |
15 | | - |
16 | | -#define UMSBOOT_HAVE_CONSOLE |
17 | | - |
18 | | -#define UMSBOOT_USB_DRIVER_HEADER "core/synopsysotg/synopsysotg.h" |
19 | | -#define UMSBOOT_USB_DRIVER synopsysotg_driver |
20 | | -#define UMSBOOT_USB_DRIVER_CONFIG_TYPE const struct synopsysotg_config |
21 | | -#define UMSBOOT_USB_DRIVER_CONFIG \ |
22 | | -{ \ |
23 | | - .core = (struct synopsysotg_core_regs*)OTGBASE, \ |
24 | | - .phy_16bit = true, \ |
25 | | - .phy_ulpi = false, \ |
26 | | - .use_dma = true, \ |
27 | | - .shared_txfifo = true, \ |
28 | | - .disable_double_buffering = false, \ |
29 | | - .fifosize = 1024, \ |
30 | | - .txfifosize = { 0x200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \ |
31 | | -} |
32 | | -#define UMSBOOT_USB_DRIVER_STATE_TYPE struct synopsysotg_state |
33 | | -#define UMSBOOT_USB_DRIVER_STATE \ |
34 | | -{ \ |
35 | | - .endpoints = { {}, {}, {} }, \ |
36 | | -} |
37 | | -#define UMSBOOT_USB_VENDORID 0xffff |
38 | | -#define UMSBOOT_USB_VENDORSTRING { 'f', 'r', 'e', 'e', 'm', 'y', 'i', 'p', 'o', 'd', '.', 'o', 'r', 'g' } |
39 | | -#define UMSBOOT_USB_VENDORSTRING_LEN 16 |
40 | | -#define UMSBOOT_USB_PRODUCTID 0x5562 |
41 | | -#define UMSBOOT_USB_PRODUCTSTRING { 'U', 'M', 'S', 'b', 'o', 'o', 't' } |
42 | | -#define UMSBOOT_USB_PRODUCTSTRING_LEN 7 |
43 | | -#define UMSBOOT_USB_DEVICEREVISION 2 |
44 | | -#define UMSBOOT_USB_MAXCURRENT 100 |
45 | | -#define UMSBOOT_ENDPOINT_OUT 2 |
46 | | -#define UMSBOOT_ENDPOINT_IN 1 |
47 | | - |
48 | | -#define RAMDISK_BASEADDR 0x08000000 |
49 | | -#define RAMDISK_SECTORSIZE 4096 |
50 | | -#define RAMDISK_SECTORS 16384 |
51 | | -#define RAMDISK_PTR_ADDR 0x2203fffc |
52 | | - |
53 | | -#endif |