From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bin Meng Date: Thu, 21 Jan 2021 23:00:08 +0800 Subject: [PATCH 0/7] Allow booting a 32-bit system with a top memory address beyond 4 GiB Message-ID: <20210121150015.25558-1-bmeng.cn@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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. Bin Meng (7): riscv: Adjust board_get_usable_ram_top() for 32-bit global_data.h: Change ram_top type to phys_addr_t serial: sifive: Cast dev_read_addr() 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/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 +-- cmd/bdinfo.c | 52 +++++++++++++++---------------- drivers/serial/serial_sifive.c | 2 +- include/asm-generic/global_data.h | 2 +- include/init.h | 3 +- lib/fdtdec.c | 2 +- 11 files changed, 50 insertions(+), 51 deletions(-) -- 2.25.1