rpi: Fix DRAM size reporting to show total RAM
authorAnders Roxell <anders.roxell@linaro.org>
Tue, 25 Nov 2025 10:23:58 +0000 (11:23 +0100)
committerPeter Robinson <pbrobinson@gmail.com>
Fri, 28 Nov 2025 13:50:51 +0000 (13:50 +0000)
commit5b702cf4d09f84f6cfe2989038b67feafe9945ed
treeeda33e06027f10df8c61fdaadc7ab4c36e3ff03f
parent15c719174cf30c4ef1c5a3638156db8c318fbd18
rpi: Fix DRAM size reporting to show total RAM

The VideoCore mailbox GET_ARM_MEMORY only reports the size of the
first accessible memory region (~947 MiB on RPi4 with 8GB), not the
total RAM. This causes U-Boot to display "DRAM: 947 MiB (total 7.9 GiB)"
instead of "DRAM: 7.9 GiB".

On Raspberry Pi 4 with 8GB RAM, the memory is split across multiple
non-contiguous banks. The dram_init() function only sets gd->ram_size
to the first bank size reported by the VideoCore firmware, while
fdtdec_setup_memory_banksize() correctly populates all memory banks
from the device tree.

Fix this by updating gd->ram_size after dram_init_banksize() has
populated all memory banks, so it reflects the actual total RAM
across all banks.

Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
board/raspberrypi/rpi/rpi.c