* [Buildroot] [PATCH 1/1] support/testing/tests/boot/test_grub.py: new test for RISCV64 EFI
@ 2024-11-05 20:41 Julien Olivain
2024-11-11 20:16 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Julien Olivain @ 2024-11-05 20:41 UTC (permalink / raw)
To: buildroot; +Cc: Thomas Petazzoni, Julien Olivain
Commit f439b47ed "boot/grub2: add RISC-V 64bit EFI support" [1]
introduced the grub2 RISC-V UEFI support.
At that time, it was not possible to have a runtime test for this.
qemu-system-riscv64 is not in the Buildroot Docker reference image,
and the base distribution (Debian 11) does not provide a
sufficiently recent version. A qemu-system-riscv64 >= 8.0.0 is needed.
Commit 0d4177598 "support/testing/infra/emulator.py: add build host
dir to qemu search path" [2] added the capability to use the
Buildroot host-qemu package inside runtime test.
With this support, it is now possible to add a runtime test for a
grub2 UEFI boot on RISC-V 64bit.
[1] https://gitlab.com/buildroot.org/buildroot/-/commit/f439b47ed6e987306c7de6d9c3be11de04935377
[2] https://gitlab.com/buildroot.org/buildroot/-/commit/0d4177598ce7e73f2b97ac58c21fb177343643e3
Signed-off-by: Julien Olivain <ju.o@free.fr>
---
support/testing/tests/boot/test_grub.py | 44 +++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/support/testing/tests/boot/test_grub.py b/support/testing/tests/boot/test_grub.py
index c753a16c34..d9b5ed2143 100644
--- a/support/testing/tests/boot/test_grub.py
+++ b/support/testing/tests/boot/test_grub.py
@@ -172,3 +172,47 @@ class TestGrubAArch64EFI(infra.basetest.BRTest):
cmd = "efivar -l"
self.assertRunOk(cmd)
+
+
+class TestGrubRiscV64EFI(infra.basetest.BRTest):
+ config = \
+ """
+ BR2_riscv=y
+ BR2_TOOLCHAIN_EXTERNAL=y
+ BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/riscv64-virt-efi/assemble-flash-images support/scripts/genimage.sh"
+ BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/qemu/riscv64-virt-efi/genimage.cfg"
+ BR2_LINUX_KERNEL=y
+ BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+ BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.59"
+ BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+ BR2_PACKAGE_EFIVAR=y
+ BR2_TARGET_ROOTFS_EXT2=y
+ # BR2_TARGET_ROOTFS_TAR is not set
+ BR2_TARGET_EDK2=y
+ BR2_TARGET_GRUB2=y
+ BR2_TARGET_GRUB2_RISCV64_EFI=y
+ BR2_PACKAGE_HOST_DOSFSTOOLS=y
+ BR2_PACKAGE_HOST_GENIMAGE=y
+ BR2_PACKAGE_HOST_MTOOLS=y
+ BR2_PACKAGE_HOST_QEMU=y
+ BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
+ """
+
+ def test_run(self):
+ disk = os.path.join(self.builddir, "images", "disk.img")
+ flash0 = os.path.join(self.builddir, "images", "RISCV_VIRT_CODE.fd")
+ flash1 = os.path.join(self.builddir, "images", "RISCV_VIRT_VARS.fd")
+ qemu_opts = [
+ "-M", "virt,pflash0=pflash0,pflash1=pflash1,acpi=off",
+ "-blockdev", f"node-name=pflash0,driver=file,read-only=on,filename={flash0}",
+ "-blockdev", f"node-name=pflash1,driver=file,filename={flash1}",
+ "-drive", f"file={disk},format=raw,if=virtio"
+ ]
+ self.emulator.boot(arch="riscv64", options=qemu_opts)
+ self.emulator.login()
+
+ cmd = "mount -t efivarfs none /sys/firmware/efi/efivars"
+ self.assertRunOk(cmd)
+
+ cmd = "efivar -l"
+ self.assertRunOk(cmd)
--
2.47.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-11-11 20:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-05 20:41 [Buildroot] [PATCH 1/1] support/testing/tests/boot/test_grub.py: new test for RISCV64 EFI Julien Olivain
2024-11-11 20:16 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.