diff options
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c')
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c index 00cf626ab3..c7b1b77c9f 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c | |||
@@ -1,7 +1,8 @@ | |||
1 | #include "kernel.h" | 1 | #include "kernel.h" |
2 | #include "system.h" | 2 | #include "system.h" |
3 | #include "panic.h" | 3 | #include "panic.h" |
4 | #include "mmu-meg-fx.h" | 4 | #include "mmu-arm.h" |
5 | #include "cpu.h" | ||
5 | 6 | ||
6 | #define default_interrupt(name) \ | 7 | #define default_interrupt(name) \ |
7 | extern __attribute__((weak,alias("UIRQ"))) void name (void) | 8 | extern __attribute__((weak,alias("UIRQ"))) void name (void) |
@@ -90,6 +91,19 @@ void system_reboot(void) | |||
90 | ; | 91 | ; |
91 | } | 92 | } |
92 | 93 | ||
94 | static void set_page_tables(void) | ||
95 | { | ||
96 | map_section(0, 0, 0x1000, CACHE_NONE); /* map every memory region to itself */ | ||
97 | map_section(0x30000000, 0, 32, CACHE_ALL); /* map RAM to 0 and enable caching for it */ | ||
98 | map_section((int)FRAME, (int)FRAME, 1, BUFFERED); /* enable buffered writing for the framebuffer */ | ||
99 | } | ||
100 | |||
101 | void memory_init(void) { | ||
102 | ttb_init(); | ||
103 | set_page_tables(); | ||
104 | enable_mmu(); | ||
105 | } | ||
106 | |||
93 | void system_init(void) | 107 | void system_init(void) |
94 | { | 108 | { |
95 | /* Disable interrupts and set all to IRQ mode */ | 109 | /* Disable interrupts and set all to IRQ mode */ |