From 383a32a7ae9709607cbed2a10cdb7f2228271bc7 Mon Sep 17 00:00:00 2001 From: Will Robertson Date: Sun, 23 Dec 2007 03:47:28 +0000 Subject: Gigabeat S now uses the shared ARM MMU code rather than the (mostly duplicated) private code. No functional change. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15961 a1c6a512-1295-4272-9138-f99709370657 --- firmware/SOURCES | 1 + firmware/export/imx31l.h | 2 +- firmware/target/arm/imx31/gigabeat-s/ata-imx31.c | 2 - firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c | 247 +++-------------------- firmware/target/arm/imx31/gigabeat-s/mmu-imx31.h | 16 +- 5 files changed, 26 insertions(+), 242 deletions(-) diff --git a/firmware/SOURCES b/firmware/SOURCES index 00daf66b03..2bea0fbde5 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -598,6 +598,7 @@ target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c #ifdef GIGABEAT_S #ifndef SIMULATOR +target/arm/mmu-arm.c target/arm/imx31/gigabeat-s/adc-imx31.c target/arm/imx31/gigabeat-s/ata-imx31.c target/arm/imx31/gigabeat-s/backlight-imx31.c diff --git a/firmware/export/imx31l.h b/firmware/export/imx31l.h index 1fa5e6ba5e..2bcb3492f9 100755 --- a/firmware/export/imx31l.h +++ b/firmware/export/imx31l.h @@ -28,7 +28,7 @@ //when background memory is written. #define LCD_BUFFER_SIZE ((320*240*2)) #define TTB_SIZE (0x4000) -#define TTB_BASE (0x80000000 + (32*1024*1024*2)-TTB_SIZE); /*64 megs*/ +#define TTB_BASE ((unsigned int *)(0x88000000 + (64*1024*1024)-TTB_SIZE)) /* * AIPS 1 */ diff --git a/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c b/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c index 58659c7d53..a61e848594 100644 --- a/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c @@ -25,8 +25,6 @@ #include "panic.h" #include "pcf50606.h" #include "ata-target.h" -#include "mmu-imx31.h" -#include "backlight-target.h" #define ATA_RST (1 << 6) diff --git a/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c b/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c index ee86ccc95c..e8ec495449 100644 --- a/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/mmu-imx31.c @@ -1,237 +1,36 @@ -#include -#include "mmu-imx31.h" +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2007 by Will Robertson + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ #include "cpu.h" - -static void enable_mmu(void); -static void set_ttb(void); -static void set_page_tables(void); -static void map_section(unsigned int pa, unsigned int va, int mb, int cache_flags); - -#define SECTION_ADDRESS_MASK (-1 << 20) -#define CACHE_ALL (1 << 3 | 1 << 2 ) -#define CACHE_NONE 0 -#define BUFFERED (1 << 2) -#define MB (1 << 20) +#include "mmu-imx31.h" +#include "mmu-arm.h" void memory_init(void) { - set_ttb(); + ttb_init(); set_page_tables(); enable_mmu(); } -unsigned int* ttb_base = (unsigned int *) TTB_BASE; -const int ttb_size = 4096; - -void set_ttb() { - int i; - int* ttbPtr; - int domain_access; - - /* must be 16Kb (0x4000) aligned */ - ttb_base = (int*) TTB_BASE; - for (i=0; i> 20; /* sections are 1Mb size */ - ttbPtr = ttb_base + section_no; - pa &= SECTION_ADDRESS_MASK; /* align to 1Mb */ - for(i=0; i