summaryrefslogtreecommitdiffstats
path: root/src/soc/ti/am335x/bootblock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/ti/am335x/bootblock.c')
-rw-r--r--src/soc/ti/am335x/bootblock.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/soc/ti/am335x/bootblock.c b/src/soc/ti/am335x/bootblock.c
index 985e1a1a0b81..11bc4593e193 100644
--- a/src/soc/ti/am335x/bootblock.c
+++ b/src/soc/ti/am335x/bootblock.c
@@ -4,13 +4,25 @@
#include <arch/cache.h>
#include <bootblock_common.h>
+#include <symbols.h>
+
+#define SRAM_START ((uintptr_t)_sram / MiB)
+#define SRAM_END (DIV_ROUND_UP((uintptr_t)_esram, MiB))
+
+#define DRAM_START ((uintptr_t)_dram / MiB)
+#define DRAM_SIZE (CONFIG_DRAM_SIZE_MB)
void bootblock_soc_init(void)
{
- uint32_t sctlr;
+ mmu_init();
+
+ /* Map everything strongly ordered by default */
+ mmu_config_range(0, 4096, DCACHE_OFF);
+
+ mmu_config_range(SRAM_START, SRAM_END - SRAM_START,
+ DCACHE_WRITEBACK);
+
+ mmu_config_range(DRAM_START, DRAM_SIZE, DCACHE_WRITEBACK);
- /* enable dcache */
- sctlr = read_sctlr();
- sctlr |= SCTLR_C;
- write_sctlr(sctlr);
+ dcache_mmu_enable();
}