Index: firmware/export/as3525.h =================================================================== --- firmware/export/as3525.h (revision 20283) +++ firmware/export/as3525.h (working copy) @@ -28,8 +28,8 @@ /* AS352X device base addresses */ +#define TTB_BASE_ADDR (0x50000 - 0x4000) - /* ------------------------------------------------------------------------ * AS352X Registers Index: firmware/SOURCES =================================================================== --- firmware/SOURCES (revision 20283) +++ firmware/SOURCES (working copy) @@ -1094,6 +1094,7 @@ #ifdef SANSA_CLIP #ifndef SIMULATOR +target/arm/mmu-arm.S target/arm/as3525/sansa-clip/lcd-ssd1303.c target/arm/as3525/sansa-clip/lcd-as-clip.S target/arm/as3525/sansa-clip/button-clip.c Index: firmware/target/arm/as3525/system-as3525.c =================================================================== --- firmware/target/arm/as3525/system-as3525.c (revision 20283) +++ firmware/target/arm/as3525/system-as3525.c (working copy) @@ -28,6 +28,8 @@ #include "clock-target.h" #include "fmradio_i2c.h" +#include "mmu-arm.h" + #define default_interrupt(name) \ extern __attribute__((weak,alias("UIRQ"))) void name (void) @@ -236,6 +238,10 @@ CGU_PERI |= ((CLK_DIV(AS3525_PLLA_FREQ, AS3525_PCLK_FREQ) - 1) << 2) | 1; /* clk_in = PLLA */ + ttb_init(); + map_section(0, 0, 0x1000, CACHE_NONE); + enable_mmu(); + asm volatile( "mov r0, #0 \n" "mcr p15, 0, r0, c7, c7 \n" /* invalidate icache & dcache */ Index: firmware/target/arm/as3525/app.lds =================================================================== --- firmware/target/arm/as3525/app.lds (revision 20283) +++ firmware/target/arm/as3525/app.lds (working copy) @@ -48,7 +48,7 @@ MEMORY { #ifdef LOWMEM - IRAM : ORIGIN = IRAMORIG, LENGTH = (IRAMSIZE - CODEC_SIZE) + IRAM : ORIGIN = IRAMORIG, LENGTH = (IRAMSIZE - CODEC_SIZE - 0x4000) CODEC_IRAM : ORIGIN = CODECORIG, LENGTH = CODEC_SIZE #else IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE