
On 9.9.2018 16:30, Marek Vasut wrote:
The get_next_memory_node() always sets mem to -1 , which is incorrect, because then every iteration of memory bank parsing will start from the first memory bank instead of the previous one.
On systems with 1 memory bank defined in DT and CONFIG_NR_DRAM_BANKS=4 , like ie. r8a77965-salvator-x , this will result in U-Boot incorrectly reporting four identical memory banks with the same memory configuration.
Fix this by setting mem to startoffset value, which restores the behavior before the fixed patch was applied.
Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Jens Wiklander jens.wiklander@linaro.org Cc: Simon Glass sjg@chromium.org Cc: Tom Rini trini@konsulko.com Fixes: 452bc121027d ("fdt: fix fdtdec_setup_memory_banksize()")
Tested-by: Michal Simek michal.simek@xilinx.com [on ZynqMP}
Before arch_number = 0x00000000 boot_params = 0x00000000 DRAM bank = 0x00000000 -> start = 0x00000000 -> size = 0x10000000 DRAM bank = 0x00000001 -> start = 0x10000000 -> size = 0x40000000 DRAM bank = 0x00000002 -> start = 0x50000000 -> size = 0x30000000 DRAM bank = 0x00000003 -> start = 0x00000000 -> size = 0x10000000
after arch_number = 0x00000000 boot_params = 0x00000000 DRAM bank = 0x00000000 -> start = 0x00000000 -> size = 0x10000000 DRAM bank = 0x00000001 -> start = 0x10000000 -> size = 0x40000000 DRAM bank = 0x00000002 -> start = 0x50000000 -> size = 0x30000000
Thanks, Michal