Support to load DTB after 3GB on RV64 system, so that larger initrd
doesn't be overlapped to DTB. DTB loading now will check if overlapping
to kernel/initrd and report this error.
Verify the patch via running 4GB initramfs on the virt machine.
Changes for v4:
- Update the comments of loading DTB in 64-bit CPU
- Align image_[low|high]_addr's type with initrd_start (hwaddr)
- Fix commit 2 to avoid unnecessary change .h file of board
Changes for v3:
- Change struct RISCVBootInfo from machine state to local variables.
Changes for v2:
- Add DTB overlapping checking and struct RISCVBootInfo
- Remove the commit to change #address-cell of 'initrd-[start|end]'
Jim Shu (3):
hw/riscv: Support to load DTB after 3GB memory on 64-bit system.
hw/riscv: Add a new struct RISCVBootInfo
hw/riscv: Add the checking if DTB overlaps to kernel or initrd
hw/riscv/boot.c | 100 +++++++++++++++++++++++++------------
hw/riscv/microchip_pfsoc.c | 13 +++--
hw/riscv/opentitan.c | 4 +-
hw/riscv/sifive_e.c | 4 +-
hw/riscv/sifive_u.c | 14 +++---
hw/riscv/spike.c | 14 +++---
hw/riscv/virt.c | 13 +++--
include/hw/riscv/boot.h | 28 ++++++++---
8 files changed, 127 insertions(+), 63 deletions(-)
--
2.17.1