diff options
Diffstat (limited to 'firmware/target/arm/crt0-pp.S')
-rw-r--r-- | firmware/target/arm/crt0-pp.S | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/firmware/target/arm/crt0-pp.S b/firmware/target/arm/crt0-pp.S index ee95ac8899..585455f821 100644 --- a/firmware/target/arm/crt0-pp.S +++ b/firmware/target/arm/crt0-pp.S | |||
@@ -137,6 +137,24 @@ pad_skip: | |||
137 | mov r1, #0 | 137 | mov r1, #0 |
138 | str r1, [r2] | 138 | str r1, [r2] |
139 | 139 | ||
140 | #if defined(IPOD_VIDEO) | ||
141 | /* detect 32mb vs 64mb model */ | ||
142 | /* we do this here because after SDRAM is remapped, we already assumed */ | ||
143 | /* its size to be whatever we were compiled for. */ | ||
144 | |||
145 | mov r2, #0x12000000 | ||
146 | mov r3, #64 | ||
147 | strb r3, [r2, #-1] /* first write 64 to last byte of first 32MB bank */ | ||
148 | |||
149 | mov r2, #0x14000000 | ||
150 | mov r3, #32 | ||
151 | strb r3, [r2, #-1] /* now write 32 to last byte of second 32MB bank */ | ||
152 | |||
153 | /* now the last word of the first 32MB bank tells you the RAM size */ | ||
154 | /* since on a 32MB model both writes will touch the same actual location */ | ||
155 | /* this is read later on in boot */ | ||
156 | #endif | ||
157 | |||
140 | mov r2, #0x40000000 | 158 | mov r2, #0x40000000 |
141 | ldr r3, =remap_start | 159 | ldr r3, =remap_start |
142 | ldr r4, =remap_end | 160 | ldr r4, =remap_end |