summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-11-15 13:17:37 +0800
committerPeng Fan <peng.fan@nxp.com>2020-05-27 15:37:54 +0800
commitc35bf3b38c416cb89111003d20eb8842b5b561ef (patch)
tree386ae9e15dc5ba1196c0e240ed51967d003137d0
parent559a70913b10ff75c82d3bbc9129405acf6fe0c6 (diff)
MLK-20373-4 imx8: update mem map table
Update mem map table for xen uboot. xen console and some magic pages needs to be mappe as normal memory. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Flynn xu <flynn.xu@nxp.com> (cherry picked from commit c96a9844cd3342f6e31627ccc4f3e63544ffd78e) (cherry picked from commit 30b2d9f4a7c0cfc9b3f999f1c3a1a8c466d66a68) (cherry picked from commit 152de9a5752881e43dd7afc9b47afa56b3b230e8)
-rw-r--r--arch/arm/mach-imx/imx8/cpu.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 5f6e0e1b51..34fb71e8cc 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -753,20 +753,31 @@ void enable_caches(void)
if (IS_ENABLED(CONFIG_XEN)) {
imx8_mem_map[0].virt = 0x00000000UL;
imx8_mem_map[0].phys = 0x00000000UL;
- imx8_mem_map[0].size = 0x80000000UL;
+ imx8_mem_map[0].size = 0x39000000UL;
imx8_mem_map[0].attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN;
- imx8_mem_map[1].virt = 0x80000000UL;
- imx8_mem_map[1].phys = 0x80000000UL;
- imx8_mem_map[1].size = 0x80000000UL;
- imx8_mem_map[1].attrs = (PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_OUTER_SHARE);
-
- imx8_mem_map[2].virt = 0x100000000UL;
- imx8_mem_map[2].phys = 0x100000000UL;
- imx8_mem_map[2].size = 0x100000000UL;
+ imx8_mem_map[1].virt = 0x39000000UL;
+ imx8_mem_map[1].phys = 0x39000000UL;
+ imx8_mem_map[1].size = 0x01000000UL;
+ imx8_mem_map[1].attrs = (PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE);
+
+ imx8_mem_map[2].virt = 0x40000000UL;
+ imx8_mem_map[2].phys = 0x40000000UL;
+ imx8_mem_map[2].size = 0x40000000UL;
imx8_mem_map[2].attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN;
+ imx8_mem_map[3].virt = 0x80000000UL;
+ imx8_mem_map[3].phys = 0x80000000UL;
+ imx8_mem_map[3].size = 0x80000000UL;
+ imx8_mem_map[3].attrs = (PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE);
+
+ imx8_mem_map[4].virt = 0x100000000UL;
+ imx8_mem_map[4].phys = 0x100000000UL;
+ imx8_mem_map[4].size = 0x100000000UL;
+ imx8_mem_map[4].attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+ PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN;
+
icache_enable();
dcache_enable();