1 /* SPDX-License-Identifier: GPL-2.0-only */
2
3 #include <arch/mmu.h>
4 #include <bootblock_common.h>
5 #include <symbols.h>
6
bootblock_mainboard_init(void)7 void bootblock_mainboard_init(void)
8 {
9 mmu_init();
10
11 /* Everything below DRAM is device memory */
12 mmu_config_range((void *)0, (uintptr_t)_dram, MA_DEV | MA_RW);
13 mmu_config_range(_dram, (uintptr_t)CONFIG_DRAM_SIZE_MB * MiB, MA_MEM | MA_RW);
14
15 mmu_config_range(_ttb, REGION_SIZE(ttb), MA_MEM | MA_S | MA_RW);
16 mmu_config_range(_bootblock, REGION_SIZE(bootblock), MA_MEM | MA_S | MA_RW);
17 mmu_config_range(_romstage, REGION_SIZE(romstage), MA_MEM | MA_S | MA_RW);
18 mmu_config_range(_ramstage, REGION_SIZE(ramstage), MA_MEM | MA_S | MA_RW);
19
20 mmu_config_range(_bl31, REGION_SIZE(bl31), MA_MEM | MA_S | MA_RW);
21
22 mmu_config_range((void *)CONFIG_ECAM_MMCONF_BASE_ADDRESS, CONFIG_ECAM_MMCONF_LENGTH,
23 MA_DEV | MA_RW);
24
25 mmu_enable();
26 }
27