On Thu, Jun 18, 2020 at 1:56 AM Bin Meng <bmeng...@gmail.com> wrote: > > On Wed, Jun 17, 2020 at 3:29 AM Atish Patra <atish.pa...@wdc.com> wrote: > > > > 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 > > I am not sure in what situation overwriting DT could happen. Could you > please elaborate? >
Currently, the DT is loaded 0x82200000 (34MB offset) for fw_jump. Thus, a bigger kernel image would overwrite the DT. In fact, it was reported by FreeBSD folks. https://github.com/riscv/opensbi/issues/169 There are temporary solutions that can put DT a little bit further or put it within 2MB offset. But that's just delaying the inevitable. > > 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 > > Any test instructions? > you just need to provide fw_dynamic instead of fw_jump in bios argument. For example: Here is my qemu commandline for testing qemu-system-riscv64 -M virt -smp 4 -m 2g -display none -serial mon:stdio -bios ~/workspace/opensbi/build/platform/generic/firmware/fw_dynamic.bin \ -kernel /home/atish/workspace/linux/arch/riscv/boot/Image -initrd /home/atish/workspace/rootfs_images/riscv64_busybox_rootfs.img -object rng-random,filename=/dev/urandom,id=rng0 \ -device virtio-rng-device,rng=rng0 -device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::10000-:22 -d in_asm -D log -append 'rw console=ttyS0 earlycon' > > > > I have also verified fw_jump on all the above platforms to ensure that this > > series doesn't break the existing setup. > > > > Regards, > Bin > -- Regards, Atish