All pastes #1358391 Raw Edit

clip_mmu.patch

public text v1 · immutable
#1358391 ·published 2009-03-11 18:51 UTC
rendered paste body
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