summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Purchase <shotofadds@rockbox.org>2009-09-01 21:35:37 +0000
committerRob Purchase <shotofadds@rockbox.org>2009-09-01 21:35:37 +0000
commit19a5dfea283c89540b61d0103ba0fe8ddee17612 (patch)
treef958da80e4bdd29ce75efba58b5d995036f8332a
parent166606cea08761ce3d1acf6283db97ede444bd98 (diff)
downloadrockbox-19a5dfea283c89540b61d0103ba0fe8ddee17612.tar.gz
rockbox-19a5dfea283c89540b61d0103ba0fe8ddee17612.zip
D2: Enable ARM cache coherency functions (eg. during codec load), which should eliminate data aborts/freezes on track changes. NOTE: The linker script reserves space at the end of DRAM for the TTB, but this is not currently used.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22595 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/plugin.lds4
-rw-r--r--firmware/SOURCES1
-rw-r--r--firmware/export/tcc780x.h5
-rw-r--r--firmware/target/arm/tcc780x/app.lds3
-rw-r--r--firmware/target/arm/tcc780x/system-target.h1
5 files changed, 13 insertions, 1 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index 70bc3e06c4..f93d5d4425 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -61,6 +61,10 @@ OUTPUT_FORMAT(elf32-littlemips)
61#define TTB_SIZE (0x4000) 61#define TTB_SIZE (0x4000)
62#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGIN_BUFFER_SIZE - CODEC_SIZE - LCD_BUFFER_SIZE - TTB_SIZE 62#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGIN_BUFFER_SIZE - CODEC_SIZE - LCD_BUFFER_SIZE - TTB_SIZE
63 63
64#elif CONFIG_CPU==TCC7801
65#include "cpu.h"
66#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGIN_BUFFER_SIZE - CODEC_SIZE - TTB_SIZE
67
64#elif CONFIG_CPU==AS3525 68#elif CONFIG_CPU==AS3525
65#include "cpu.h" 69#include "cpu.h"
66#define DRAMORIG DRAM_ORIG 70#define DRAMORIG DRAM_ORIG
diff --git a/firmware/SOURCES b/firmware/SOURCES
index ba37745aff..3a29c25d63 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -1264,6 +1264,7 @@ target/arm/tcc780x/cowond2/power-cowond2.c
1264target/arm/tcc780x/cowond2/powermgmt-cowond2.c 1264target/arm/tcc780x/cowond2/powermgmt-cowond2.c
1265target/arm/tcc780x/cowond2/backlight-cowond2.c 1265target/arm/tcc780x/cowond2/backlight-cowond2.c
1266target/arm/usb-tcc.c 1266target/arm/usb-tcc.c
1267target/arm/mmu-arm.S
1267#ifndef BOOTLOADER 1268#ifndef BOOTLOADER
1268target/arm/tcc780x/timer-tcc780x.c 1269target/arm/tcc780x/timer-tcc780x.c
1269target/arm/wmcodec-telechips.c 1270target/arm/wmcodec-telechips.c
diff --git a/firmware/export/tcc780x.h b/firmware/export/tcc780x.h
index 497f1514e0..aca3bec2bd 100644
--- a/firmware/export/tcc780x.h
+++ b/firmware/export/tcc780x.h
@@ -21,6 +21,11 @@
21#ifndef __TCC780X_H__ 21#ifndef __TCC780X_H__
22#define __TCC780X_H__ 22#define __TCC780X_H__
23 23
24#define TTB_SIZE (0x4000)
25/* must be 16Kb (0x4000) aligned */
26#define TTB_BASE_ADDR (0x20000000 + (MEMORYSIZE*1024*1024) - TTB_SIZE)
27#define TTB_BASE ((unsigned long *)TTB_BASE_ADDR) /* End of memory */
28
24/* General-purpose IO */ 29/* General-purpose IO */
25 30
26#define PORTCFG0 (*(volatile unsigned long *)0xF005A000) 31#define PORTCFG0 (*(volatile unsigned long *)0xF005A000)
diff --git a/firmware/target/arm/tcc780x/app.lds b/firmware/target/arm/tcc780x/app.lds
index d62204a9a5..a742908ce1 100644
--- a/firmware/target/arm/tcc780x/app.lds
+++ b/firmware/target/arm/tcc780x/app.lds
@@ -15,7 +15,8 @@ STARTUP(target/arm/tcc780x/crt0.o)
15#define STUBOFFSET 0 15#define STUBOFFSET 0
16#endif 16#endif
17 17
18#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE 18#include "cpu.h"
19#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGINSIZE - CODECSIZE - TTB_SIZE
19 20
20#define DRAMORIG 0x20000000 + STUBOFFSET 21#define DRAMORIG 0x20000000 + STUBOFFSET
21#define ITCMORIG 0x00000000 22#define ITCMORIG 0x00000000
diff --git a/firmware/target/arm/tcc780x/system-target.h b/firmware/target/arm/tcc780x/system-target.h
index 6e2e7be980..fe66a6eb68 100644
--- a/firmware/target/arm/tcc780x/system-target.h
+++ b/firmware/target/arm/tcc780x/system-target.h
@@ -22,6 +22,7 @@
22#define SYSTEM_TARGET_H 22#define SYSTEM_TARGET_H
23 23
24#include "system-arm.h" 24#include "system-arm.h"
25#include "mmu-arm.h"
25 26
26#define CPUFREQ_DEFAULT 32000000 27#define CPUFREQ_DEFAULT 32000000
27#define CPUFREQ_NORMAL 48000000 28#define CPUFREQ_NORMAL 48000000