This series adds support OpenSBI dynamic firmware support to Qemu. Qemu loader passes the information about the DT and next stage (i.e. kernel or U-boot) via "a2" register. It allows the user to build bigger OS images without worrying about overwriting DT. It also unifies the reset vector code in rom and dt placement. Now, the DT is copied directly in DRAM instead of ROM.
The changes have been verified on following qemu machines. 64bit: - spike, sifive_u, virt 32bit: - virt I have also verified fw_jump on all the above platforms to ensure that this series doesn't break the existing setup. Changes from v1->v2: 1. Rebased on top of latest upstream Qemu (with MSEL changes for sifive_u). 2. Improved the code organization Atish Patra (3): riscv: Unify Qemu's reset vector code path RISC-V: Copy the fdt in dram instead of ROM riscv: Add opensbi firmware dynamic support hw/riscv/boot.c | 104 ++++++++++++++++++++++++++++++++ hw/riscv/sifive_u.c | 45 ++++++++------ hw/riscv/spike.c | 52 +++++----------- hw/riscv/virt.c | 51 +++++----------- include/hw/riscv/boot.h | 8 +++ include/hw/riscv/boot_opensbi.h | 58 ++++++++++++++++++ 6 files changed, 229 insertions(+), 89 deletions(-) create mode 100644 include/hw/riscv/boot_opensbi.h -- 2.26.2