[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