diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2007-10-04 04:53:01 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2007-10-04 04:53:01 +0000 |
commit | 940e8990b5daf5b78d97331b956b517c6e802cf0 (patch) | |
tree | a0fdf7ca43759523d90dee2dbcc5ddb724313629 /firmware/target/arm/crt0-pp.S | |
parent | bee29d285db992a3ae85d4e09fa38384550b893c (diff) | |
download | rockbox-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.S | 29 |
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: |