[PATCH v2 00/10] Allow booting a 32-bit system with a top memory address beyond 4 GiB
Bin Meng
bmeng.cn at gmail.com
Sun Jan 31 13:35:56 CET 2021
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
More information about the U-Boot
mailing list