summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/system-imx233.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/system-imx233.c')
-rw-r--r--firmware/target/arm/imx233/system-imx233.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c
index 58f12506df..c4a32dd46e 100644
--- a/firmware/target/arm/imx233/system-imx233.c
+++ b/firmware/target/arm/imx233/system-imx233.c
@@ -141,6 +141,25 @@ void imx233_softirq(int src, bool enable)
__REG_CLR(HW_ICOLL_INTERRUPT(src)) = HW_ICOLL_INTERRUPT__SOFTIRQ;
}
+static void set_page_tables(void)
+{
+ /* map every memory region to itself */
+ map_section(0, 0, 0x1000, CACHE_NONE);
+
+ /* map RAM and enable caching for it */
+ map_section(DRAM_ORIG, DRAM_ORIG, MEMORYSIZE, CACHE_ALL);
+
+ /* enable buffered writing for the framebuffer */
+ map_section((int)FRAME, (int)FRAME, 1, BUFFERED);
+}
+
+void memory_init(void)
+{
+ ttb_init();
+ set_page_tables();
+ enable_mmu();
+}
+
void system_init(void)
{
/* disable all interrupts */
@@ -158,14 +177,6 @@ void system_init(void)
imx233_timrot_init();
imx233_dma_init();
imx233_ssp_init();
- imx233_i2c_init();
-}
-
-void power_off(void)
-{
- /* power down */
- HW_POWER_RESET = HW_POWER_RESET__UNLOCK | HW_POWER_RESET__PWD;
- while(1);
}
bool imx233_us_elapsed(uint32_t ref, unsigned us_delay)