summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/crt0-pp.S
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-10-04 04:53:01 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-10-04 04:53:01 +0000
commit940e8990b5daf5b78d97331b956b517c6e802cf0 (patch)
treea0fdf7ca43759523d90dee2dbcc5ddb724313629 /firmware/target/arm/crt0-pp.S
parentbee29d285db992a3ae85d4e09fa38384550b893c (diff)
downloadrockbox-940e8990b5daf5b78d97331b956b517c6e802cf0.tar.gz
rockbox-940e8990b5daf5b78d97331b956b517c6e802cf0.zip
PP502x: Make RAM physical addresses uncached. Cache the flash ROM on targets with one. Kill all the now unneeded cache flushing and i2s tweaking on e200 so clicking is no worry. Write the driver framebuffer at uncached addresses. Recording monitoring may be a little noisy in the left channel for the moment when not boosted and will be addressed. All seems to work as advertised including flash ROM dump.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14976 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/crt0-pp.S')
-rw-r--r--firmware/target/arm/crt0-pp.S29
1 files changed, 20 insertions, 9 deletions
diff --git a/firmware/target/arm/crt0-pp.S b/firmware/target/arm/crt0-pp.S
index 2708ee3ad4..858f795aad 100644
--- a/firmware/target/arm/crt0-pp.S
+++ b/firmware/target/arm/crt0-pp.S
@@ -42,6 +42,14 @@ start:
.equ SLEEP, 0x000000ca
.equ WAKE, 0x000000ce
.equ SLEEPING, 0x00004000
+ .equ MMAP_LOG, 0xf000f010 /* MMAP2 */
+ .equ MMAP_PHYS, 0xf000f014
+#if MEM > 32
+ .equ MMAP_MASK, 0x00007400
+#else
+ .equ MMAP_MASK, 0x00003a00
+#endif
+ .equ MMAP_FLAGS, 0x00003f84
#else
.equ PROC_ID, 0x60000000
.equ CPU_ICLR, 0x60004028
@@ -55,6 +63,14 @@ start:
.equ WAKE, 0x00000000
.equ SLEEPING, 0x80000000
.equ CACHE_CTRL, 0x6000c000
+ .equ MMAP_LOG, 0xf000f000 /* MMAP0 */
+ .equ MMAP_PHYS, 0xf000f004
+#if MEM > 32
+ .equ MMAP_MASK, 0x00003c00
+#else
+ .equ MMAP_MASK, 0x00003e00
+#endif
+ .equ MMAP_FLAGS, 0x00000f84
#endif
msr cpsr_c, #0xd3 /* enter supervisor mode, disable IRQ/FIQ */
@@ -126,16 +142,11 @@ pad_skip:
cmp r3, r4
blo 1b
- ldr r4, =0x3f84 /* r3 and r1 values here are magic, don't touch */
+ ldr r4, =MMAP_FLAGS
orr r4, r4, r6 /* adjust for execute address */
- ldr r3, =0xf000f014
-#if MEM > 32
- mov r2, #0x7400 /* r1 appears to indicate how much memory (not in
- bytes) is remapped */
-#else
- mov r2, #0x3a00
-#endif
- ldr r1, =0xf000f010
+ ldr r3, =MMAP_PHYS
+ ldr r2, =MMAP_MASK /* ldr is more flexible */
+ ldr r1, =MMAP_LOG
mov pc, #0x40000000
remap_start: