rpi: limit size of the RAM to the multiple of the MMU_SECTION_SIZE
authorMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 1 Feb 2021 11:16:33 +0000 (12:16 +0100)
committerMatthias Brugger <mbrugger@suse.com>
Thu, 18 Feb 2021 10:56:25 +0000 (11:56 +0100)
commit6b3d18c2cb61e5beefbce2de589fe7707ac78fe3
treef924bfacf96721e8a40a4be1d0eecf42d8a13bc8
parent85f3fddbcc2e8282f1c26dcef4684f59490d47ba
rpi: limit size of the RAM to the multiple of the MMU_SECTION_SIZE

When RPi4 is booted from USB Mass Storage, the firmware reports 947MiB of
the ARM memory (948 in case of the standard SD-card boot). This value is
not MMU_SECTION_SIZE aligned, so the dram_bank_mmu_setup() skips mapping
of the last 1MiB. This later causes u-boot in ARM 32bit mode to freeze,
because it relocated itself into that unmapped memory and fails to
execute.

Fix this by limiting the size of the first bank to the multiple of
MMU_SECTION_SIZE.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Tested-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
board/raspberrypi/rpi/rpi.c