diff options
author | Bhupesh Sharma <bhupesh.sharma at freescale.com> | 2015-05-28 14:54:10 +0530 |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2015-07-20 11:44:35 -0700 |
commit | a2dc818f21cf216c486d267f7a983b8e7808519c (patch) | |
tree | 28e94d9e9f6f93cdae4c9ae83bcaf0d13bb8e50a /board/freescale/ls2085ardb/ls2085ardb.c | |
parent | fc7b3855e1c285e59487699d898f4415a8f62c05 (diff) | |
download | u-boot-a2dc818f21cf216c486d267f7a983b8e7808519c.tar.gz u-boot-a2dc818f21cf216c486d267f7a983b8e7808519c.tar.xz u-boot-a2dc818f21cf216c486d267f7a983b8e7808519c.zip |
armv8/ls2085a: Expose all DDR region(s) to Linux
This patch allows u-boot to expose the complete DDR region(s) to Linux
(after subtracting the memory hidden via MEM_TOP_HIDE mechanism).
This allows the u-boot to support the 48-bit VA support provided by
ARM64 Linux in flavors 3.18 and above, by passing the appropriate
'memory' DTS nodes.
Signed-off-by: Bhupesh Sharma <bhupesh.sharma at freescale.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar at freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'board/freescale/ls2085ardb/ls2085ardb.c')
-rw-r--r-- | board/freescale/ls2085ardb/ls2085ardb.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/board/freescale/ls2085ardb/ls2085ardb.c b/board/freescale/ls2085ardb/ls2085ardb.c index abe2114e17..15cb25167c 100644 --- a/board/freescale/ls2085ardb/ls2085ardb.c +++ b/board/freescale/ls2085ardb/ls2085ardb.c @@ -241,15 +241,18 @@ void fdt_fixup_board_enet(void *fdt) #ifdef CONFIG_OF_BOARD_SETUP int ft_board_setup(void *blob, bd_t *bd) { - phys_addr_t base; - phys_size_t size; + u64 base[CONFIG_NR_DRAM_BANKS]; + u64 size[CONFIG_NR_DRAM_BANKS]; ft_cpu_setup(blob, bd); - /* limit the memory size to bank 1 until Linux can handle 40-bit PA */ - base = getenv_bootm_low(); - size = getenv_bootm_size(); - fdt_fixup_memory(blob, (u64)base, (u64)size); + /* fixup DT for the two GPP DDR banks */ + base[0] = gd->bd->bi_dram[0].start; + size[0] = gd->bd->bi_dram[0].size; + base[1] = gd->bd->bi_dram[1].start; + size[1] = gd->bd->bi_dram[1].size; + + fdt_fixup_memory_banks(blob, base, size, 2); #ifdef CONFIG_FSL_MC_ENET fdt_fixup_board_enet(blob); |