From a6c1b54d4651920efdafd52a402fadf0f80b373c Mon Sep 17 00:00:00 2001 From: Rob Purchase Date: Mon, 31 May 2010 21:00:25 +0000 Subject: Enable IRAM on TCC7801 (Cowon D2) for a 6-12% speedup in codecs that use it, and a small increase in battery life. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26436 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/plugin.lds | 7 +++++-- firmware/export/config.h | 1 + firmware/target/arm/tcc780x/app.lds | 9 +++------ firmware/target/arm/tcc780x/crt0.S | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index deb7813c49..f150b9d168 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -120,10 +120,13 @@ OUTPUT_FORMAT(elf32-littlemips) #elif defined(CPU_TCC780X) || defined(CPU_TCC77X) #define DRAMORIG 0x20000000 -/*#define IRAMORIG 0x1000c000 -#define IRAMSIZE 0xc000*/ +#if CONFIG_CPU==TCC7801 +#define IRAMORIG 0x1000c000 +#define IRAMSIZE 0xc000 +#else #define IRAM DRAM #define IRAMSIZE 0 +#endif #elif CONFIG_CPU==AS3525 || CONFIG_CPU==AS3525v2 #if defined(AMS_LOWMEM) || (CONFIG_CPU == AS3525v2) diff --git a/firmware/export/config.h b/firmware/export/config.h index 0ed1be4157..b73f605d9d 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -727,6 +727,7 @@ Lyre prototype 1 */ (CONFIG_CPU == AS3525 && MEMORYSIZE <= 2 && !defined(PLUGIN) && !defined(CODEC)) || /* AS3525 2MB: core only */ \ (CONFIG_CPU == AS3525v2 && !defined(PLUGIN) && !defined(CODEC)) || /* AS3525v2: core only */ \ (CONFIG_CPU == PNX0101) || \ + (CONFIG_CPU == TCC7801) || \ defined(CPU_S5L870X)) || /* Samsung S5L8700: core, plugins, codecs */ \ (CONFIG_CPU == JZ4732 && !defined(PLUGIN) && !defined(CODEC)) /* Jz4740: core only */ #define ICODE_ATTR __attribute__ ((section(".icode"))) diff --git a/firmware/target/arm/tcc780x/app.lds b/firmware/target/arm/tcc780x/app.lds index a742908ce1..e31e46fde7 100644 --- a/firmware/target/arm/tcc780x/app.lds +++ b/firmware/target/arm/tcc780x/app.lds @@ -116,8 +116,7 @@ SECTIONS *(.icode) . = ALIGN(0x4); _iramend = .; - /* } > SRAM AT> DRAM */ - } > DRAM + } > SRAM AT> DRAM _iramcopy = LOADADDR(.iram); @@ -127,8 +126,7 @@ SECTIONS *(.ibss) . = ALIGN(0x4); _iend = .; - /* } > SRAM */ - } > DRAM + } > SRAM .stack : { @@ -136,8 +134,7 @@ SECTIONS stackbegin = .; . += 0x2000; stackend = .; - /* } > SRAM */ - } > DRAM + } > SRAM .bss : { diff --git a/firmware/target/arm/tcc780x/crt0.S b/firmware/target/arm/tcc780x/crt0.S index b1608915f1..f6eb6afbe9 100644 --- a/firmware/target/arm/tcc780x/crt0.S +++ b/firmware/target/arm/tcc780x/crt0.S @@ -155,8 +155,8 @@ copied_start: ldr r0, =0x8001eec0 /* Region 6: 0x80000000-0xffffffff (2Gb) */ str r0, [r1,#0x18] /* AP: 3 EN: 1 DO: 6 CACHE_NONE */ - ldr r0, =0x1001aee0 /* Region 7: 0x10000000-0x17ffffff (128Mb) */ - str r0, [r1,#0x1c] /* AP: 3 EN: 1 DO: 7 CACHE_NONE */ + ldr r0, =0x1001aeec /* Region 7: 0x10000000-0x17ffffff (128Mb) */ + str r0, [r1,#0x1c] /* AP: 3 EN: 1 DO: 7 CACHE_ALL */ add r1, r1, #0x8000 mcr p15, 0, r1, c2, c0, 0 /* Set TTBR = TABBASE (Virtual TLB) */ -- cgit v1.2.3