aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-uniphier/arm64
diff options
context:
space:
mode:
authorMasahiro Yamada2019-07-10 20:07:45 +0900
committerMasahiro Yamada2019-07-10 22:42:05 +0900
commit34e29f7d94aa0243793081751ea0eeae598a0273 (patch)
tree7bc9a99ef4ff8f6f3abc3b8061178920c54a02d3 /arch/arm/mach-uniphier/arm64
parentdf72534121b7e593f2a8043ad1c0c86bae0aa75b (diff)
ARM: uniphier: make mem_map run-time configurable
Currently, mem_map is hard-coded, and it worked well until the last SoC. For a planned new SoC, the addresses of peripherals and DRAM will be changed. Set it up run-time. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'arch/arm/mach-uniphier/arm64')
-rw-r--r--arch/arm/mach-uniphier/arm64/mem_map.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-uniphier/arm64/mem_map.c b/arch/arm/mach-uniphier/arm64/mem_map.c
index 35e75e2ab2d..7653bd2d3c6 100644
--- a/arch/arm/mach-uniphier/arm64/mem_map.c
+++ b/arch/arm/mach-uniphier/arm64/mem_map.c
@@ -7,6 +7,8 @@
#include <linux/types.h>
#include <asm/armv8/mmu.h>
+#include "../init.h"
+
static struct mm_region uniphier_mem_map[] = {
{
.virt = 0x00000000,
@@ -27,3 +29,11 @@ static struct mm_region uniphier_mem_map[] = {
};
struct mm_region *mem_map = uniphier_mem_map;
+
+void uniphier_mem_map_init(unsigned long dram_base, unsigned long dram_size)
+{
+ uniphier_mem_map[0].size = dram_base;
+ uniphier_mem_map[1].virt = dram_base;
+ uniphier_mem_map[1].phys = dram_base;
+ uniphier_mem_map[1].size = dram_size;
+}