]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: highbank: Do DRAM init from DT
authorAndre Przywara <andre.przywara@arm.com>
Mon, 12 Apr 2021 00:04:54 +0000 (01:04 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 20 Apr 2021 11:31:12 +0000 (07:31 -0400)
So far U-Boot was hard coding a (surely sufficient) memory size of 512
MB, even though all machines out there have at least 4GB of DRAM.
Since U-Boot uses its memory knowledge to populate the EFI memory map,
we are missing out here, at best losing everything beyond 4GB on Midway
boxes (which typically come with 8GB of DRAM).

Since the management processor populated the DT memory node already with
the detected DRAM size and configuration, we use that to populate
U-Boot's memory bank information, which is the base for the UEFI memory
map.
This finally allows us to get rid of the NR_DRAM_BANKS=0 hack, that we
had in place to avoid U-Boot messing up the DT memory node before
loading the kernel.

Also, to cover the whole of memory, we need to enable PHYS_64BIT.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/Kconfig
board/highbank/highbank.c
configs/highbank_defconfig

index e9f72b155caecf16f6fe7d5dd882198e138afb67..31d687ea0110fc63c3e54679ba52405bea6542a0 100644 (file)
@@ -720,6 +720,7 @@ config ARCH_HIGHBANK
        select CLK_CCF
        select AHCI
        select DM_ETH
+       select PHYS_64BIT
 
 config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
index 0667a48965c31d6962fdb7f47dab9d33689b132d..ffb6fd922dafd39c10bddc6c3edf4ebc356f9183 100644 (file)
@@ -8,6 +8,7 @@
 #include <cpu_func.h>
 #include <env.h>
 #include <fdt_support.h>
+#include <fdtdec.h>
 #include <init.h>
 #include <net.h>
 #include <scsi.h>
@@ -84,8 +85,12 @@ int misc_init_r(void)
 
 int dram_init(void)
 {
-       gd->ram_size = SZ_512M;
-       return 0;
+       return fdtdec_setup_mem_size_base();
+}
+
+int dram_init_banksize(void)
+{
+       return fdtdec_setup_memory_banksize();
 }
 
 #if defined(CONFIG_OF_BOARD_SETUP)
index c3352b827d76eed3a84d1d7eefe2d1f2c86351e4..5d65049c5c0fdf1085bf1e274e82f36ada00bc92 100644 (file)
@@ -3,7 +3,7 @@ CONFIG_SYS_DCACHE_OFF=y
 CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_HIGHBANK=y
 CONFIG_SYS_TEXT_BASE=0x00008000
-CONFIG_NR_DRAM_BANKS=0
+CONFIG_NR_DRAM_BANKS=2
 CONFIG_ENV_SIZE=0x2000
 CONFIG_SYS_BOOTCOUNT_ADDR=0xfff3cf0c
 CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y