When testing QEMU RISC-V 'virt' machine with a 2 GiB memory configuration, it was discovered gd->ram_top is assigned to value zero in setup_dest_addr().
While 2 GiB QEMU RISC-V 'virt' happens to work with U-Boot today, increasing more memory doesn't make a bootable system. There are various places in U-Boot that prevents such from working. While this is seen and tested on RISC-V, it's not RISC-V centric, but a generic issue that may affect all architectures. Changes in v2: - new patch: arm: rockchip: Explicitly cast gd->ram_top in dram_init_banksize() - new patch: riscv: ax25-ae350: Cast addr with uintptr_t - new patch: net: ftmac100: Cast priv->iobase with uintptr_t Bin Meng (10): riscv: Adjust board_get_usable_ram_top() for 32-bit arm: rockchip: Explicitly cast gd->ram_top in dram_init_banksize() global_data.h: Change ram_top type to phys_addr_t serial: sifive: Cast dev_read_addr() with uintptr_t riscv: ax25-ae350: Cast addr with uintptr_t net: ftmac100: Cast priv->iobase with uintptr_t fdtdec: Cast prior_stage_fdt_address with uintptr_t riscv: Change phys_addr_t and phys_size_t to 64-bit bdinfo: Rename function names to be clearer bdinfo: Change to use bdinfo_print_num_ll() where the number could be 64-bit arch/arm/lib/bdinfo.c | 16 ++++---- arch/arm/mach-rockchip/sdram.c | 2 +- arch/m68k/lib/bdinfo.c | 2 +- arch/powerpc/lib/bdinfo.c | 4 +- arch/riscv/cpu/fu540/dram.c | 7 ++-- arch/riscv/cpu/generic/dram.c | 7 ++-- arch/riscv/include/asm/types.h | 4 +- board/AndesTech/ax25-ae350/ax25-ae350.c | 2 +- cmd/bdinfo.c | 52 ++++++++++++------------- drivers/net/ftmac100.c | 10 ++--- drivers/serial/serial_sifive.c | 2 +- include/asm-generic/global_data.h | 2 +- include/init.h | 3 +- lib/fdtdec.c | 2 +- 14 files changed, 57 insertions(+), 58 deletions(-) -- 2.25.1