summaryrefslogtreecommitdiff
path: root/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c
diff options
context:
space:
mode:
authorGreg White <gwhite@rockbox.org>2007-01-13 02:24:15 +0000
committerGreg White <gwhite@rockbox.org>2007-01-13 02:24:15 +0000
commit355be5010af1e33c0f3b36af85033bd31f996491 (patch)
tree1e83cefbe3d313179bda383a5ad508adaff8ffac /firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c
parent35b0c3f24f279eb8056e54094cb12310802f6709 (diff)
downloadrockbox-355be5010af1e33c0f3b36af85033bd31f996491.tar.gz
rockbox-355be5010af1e33c0f3b36af85033bd31f996491.zip
Setup LCD ourselves; move LCD buffer and TTB to free up 1.7MB of memory
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11994 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c')
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c
index 47abb9d46a..8094ff828f 100644
--- a/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/mmu-meg-fx.c
@@ -1,6 +1,7 @@
1#include <string.h> 1#include <string.h>
2#include "s3c2440.h" 2#include "s3c2440.h"
3#include "mmu-meg-fx.h" 3#include "mmu-meg-fx.h"
4#include "panic.h"
4 5
5void map_memory(void); 6void map_memory(void);
6static void enable_mmu(void); 7static void enable_mmu(void);
@@ -20,7 +21,7 @@ void map_memory(void) {
20 enable_mmu(); 21 enable_mmu();
21} 22}
22 23
23unsigned int* ttb_base; 24unsigned int* ttb_base = (unsigned int *) TTB_BASE;
24const int ttb_size = 4096; 25const int ttb_size = 4096;
25 26
26void set_ttb() { 27void set_ttb() {
@@ -29,7 +30,7 @@ void set_ttb() {
29 int domain_access; 30 int domain_access;
30 31
31 /* must be 16Kb (0x4000) aligned */ 32 /* must be 16Kb (0x4000) aligned */
32 ttb_base = (int*)0x31F00000; 33 ttb_base = (int*) TTB_BASE;
33 for (i=0; i<ttb_size; i++,ttbPtr++) 34 for (i=0; i<ttb_size; i++,ttbPtr++)
34 ttbPtr = 0; 35 ttbPtr = 0;
35 asm volatile("mcr p15, 0, %0, c2, c0, 0" : : "r" (ttb_base)); 36 asm volatile("mcr p15, 0, %0, c2, c0, 0" : : "r" (ttb_base));
@@ -47,8 +48,8 @@ void set_page_tables() {
47 48
48 map_section(0x30000000, 0, 32, CACHE_NONE); /* map RAM to 0 */ 49 map_section(0x30000000, 0, 32, CACHE_NONE); /* map RAM to 0 */
49 50
50 map_section(0x30000000, 0, 30, CACHE_ALL); /* cache the first 30 MB or RAM */ 51 map_section(0x30000000, 0, 32, CACHE_ALL); /* cache the first 31 MB or RAM */
51 map_section(0x31E00000, 0x31E00000, 1, BUFFERED); /* enable buffered writing for the framebuffer */ 52 map_section((int)FRAME, (int)FRAME, 1, BUFFERED); /* enable buffered writing for the framebuffer */
52} 53}
53 54
54void map_section(unsigned int pa, unsigned int va, int mb, int cache_flags) { 55void map_section(unsigned int pa, unsigned int va, int mb, int cache_flags) {