Message ID | 1593134764-16743-3-git-send-email-bmeng.cn@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2,1/3] docs/platform: Update QEMU parameter for fw_payload | expand |
> -----Original Message----- > From: opensbi <opensbi-bounces@lists.infradead.org> On Behalf Of Bin > Meng > Sent: 26 June 2020 06:56 > To: Atish Patra <Atish.Patra@wdc.com>; opensbi@lists.infradead.org > Cc: Bin Meng <bin.meng@windriver.com> > Subject: [PATCH v2 3/3] docs/platform: sifive_fu540: Update U-Boot > instructions > > From: Bin Meng <bin.meng@windriver.com> > > U-Boot v2020.07 release adds SPL support to SiFive HiFive Unleashed. > Update the doc to mention that detailed build instructions are in the U-Boot > doc. > > This also adds detailed command line description to show how to boot U- > Boot v2020.07 S-mode payload in the QEMU chapter. > > Signed-off-by: Bin Meng <bin.meng@windriver.com> > Reviewed-by: Atish Patra <atish.patra@wdc.com> > > --- > > Changes in v2: > - fix the typo in the doc > > docs/platform/sifive_fu540.md | 35 ++++++++++++++++++++++++++++++- > ---- > 1 file changed, 30 insertions(+), 5 deletions(-) > > diff --git a/docs/platform/sifive_fu540.md b/docs/platform/sifive_fu540.md > index 9342846..1008432 100644 > --- a/docs/platform/sifive_fu540.md > +++ b/docs/platform/sifive_fu540.md > @@ -41,13 +41,14 @@ make PLATFORM=sifive/fu540 > FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/bo > **U-Boot Payload** > > The command-line example here assumes that U-Boot was compiled using > the -sifive_fu540_defconfig configuration and with U-Boot v2020.01 (or > higher). > - > -The detailed U-Boot booting guide is avaialble at [U-Boot]. > +sifive_fu540_defconfig configuration and with U-Boot v2020.01, and up > +to v2020.07-rc3. > > ``` > make PLATFORM=sifive/fu540 FW_PAYLOAD_PATH=<u-boot_build_dir>/u- > boot-dtb.bin > ``` > +For U-Boot v2020.07-rc4 or later releases, SPL support was added in U-Boot. > +Please refer to the detailed U-Boot booting guide available at [U-Boot]. > > Flashing the OpenSBI firmware binary to storage media: > ------------------------------------------------------ > @@ -155,13 +156,37 @@ Linux kernel. > When U-Boot v2020.01 (or higher) is used as the payload, as the SiFive FU540 > DTB for the real hardware is embedded in U-Boot binary itself, due to the > same reason above, we need to switch the U-Boot sifive_fu540_defconfig > configuration -from CONFIG_OF_SEPARATE to CONFIG_OF_PRIOR_STAGE so > that U-Boot uses the DTB -generated by QEMU, and u-boot.bin should be > used as the payload image, like: > +from **CONFIG_OF_SEPARATE** to **CONFIG_OF_PRIOR_STAGE** so > that U-Boot > +uses the DTB generated by QEMU, and u-boot.bin should be used as the > payload image, like: > > ``` > make PLATFORM=sifive/fu540 FW_PAYLOAD_PATH=<u-boot_build_dir>/u- > boot.bin > ``` > > +U-Boot v2020.07 release added SPL support to SiFive HiFive Unleashed > +board, hence a build error will be seen after you switch to > **CONFIG_OF_PRIOR_STAGE**. > + > +``` > +./tools/mkimage: Can't open arch/riscv/dts/hifive-unleashed-a00.dtb: No > +such file or directory > +./tools/mkimage: failed to build FIT > +Makefile:1402: recipe for target 'u-boot.img' failed > +make: *** [u-boot.img] Error 1 > +``` > + > +The above errors can be safely ignored as we don't run U-Boot SPL under > QEMU. > + > +Run: > +``` > +qemu-system-riscv64 -M sifive_u -m 256M -nographic \ > + -bios build/platform/sifive/fu540/firmware/fw_payload.bin > +``` > +or > +``` > +qemu-system-riscv64 -M sifive_u -m 256M -nographic \ > + -bios build/platform/sifive/fu540/firmware/fw_jump.bin \ > + -kernel <uboot_build_dir>/u-boot.bin > +``` > + > While the real hardware operates at the 64-bit mode, it's possible for QEMU > to test the 32-bit OpenSBI firmware. This can be helpful for testing 32-bit > SiFive specific drivers. > -- > 2.7.4 > > > -- > opensbi mailing list > opensbi@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/opensbi Applied this patch to the riscv/opensbi repo. Thanks, Anup
diff --git a/docs/platform/sifive_fu540.md b/docs/platform/sifive_fu540.md index 9342846..1008432 100644 --- a/docs/platform/sifive_fu540.md +++ b/docs/platform/sifive_fu540.md @@ -41,13 +41,14 @@ make PLATFORM=sifive/fu540 FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/bo **U-Boot Payload** The command-line example here assumes that U-Boot was compiled using the -sifive_fu540_defconfig configuration and with U-Boot v2020.01 (or higher). - -The detailed U-Boot booting guide is avaialble at [U-Boot]. +sifive_fu540_defconfig configuration and with U-Boot v2020.01, and up to +v2020.07-rc3. ``` make PLATFORM=sifive/fu540 FW_PAYLOAD_PATH=<u-boot_build_dir>/u-boot-dtb.bin ``` +For U-Boot v2020.07-rc4 or later releases, SPL support was added in U-Boot. +Please refer to the detailed U-Boot booting guide available at [U-Boot]. Flashing the OpenSBI firmware binary to storage media: ------------------------------------------------------ @@ -155,13 +156,37 @@ Linux kernel. When U-Boot v2020.01 (or higher) is used as the payload, as the SiFive FU540 DTB for the real hardware is embedded in U-Boot binary itself, due to the same reason above, we need to switch the U-Boot sifive_fu540_defconfig configuration -from CONFIG_OF_SEPARATE to CONFIG_OF_PRIOR_STAGE so that U-Boot uses the DTB -generated by QEMU, and u-boot.bin should be used as the payload image, like: +from **CONFIG_OF_SEPARATE** to **CONFIG_OF_PRIOR_STAGE** so that U-Boot uses the +DTB generated by QEMU, and u-boot.bin should be used as the payload image, like: ``` make PLATFORM=sifive/fu540 FW_PAYLOAD_PATH=<u-boot_build_dir>/u-boot.bin ``` +U-Boot v2020.07 release added SPL support to SiFive HiFive Unleashed board, +hence a build error will be seen after you switch to **CONFIG_OF_PRIOR_STAGE**. + +``` +./tools/mkimage: Can't open arch/riscv/dts/hifive-unleashed-a00.dtb: No such file or directory +./tools/mkimage: failed to build FIT +Makefile:1402: recipe for target 'u-boot.img' failed +make: *** [u-boot.img] Error 1 +``` + +The above errors can be safely ignored as we don't run U-Boot SPL under QEMU. + +Run: +``` +qemu-system-riscv64 -M sifive_u -m 256M -nographic \ + -bios build/platform/sifive/fu540/firmware/fw_payload.bin +``` +or +``` +qemu-system-riscv64 -M sifive_u -m 256M -nographic \ + -bios build/platform/sifive/fu540/firmware/fw_jump.bin \ + -kernel <uboot_build_dir>/u-boot.bin +``` + While the real hardware operates at the 64-bit mode, it's possible for QEMU to test the 32-bit OpenSBI firmware. This can be helpful for testing 32-bit SiFive specific drivers.