All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/9] grub-shell: Support riscv64-efi
@ 2024-09-11  9:37 Vladimir Serbinenko
  2024-09-11  9:37 ` [PATCH 2/9] grub-shell: Support Fedora path for ovmf32 Vladimir Serbinenko
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Vladimir Serbinenko @ 2024-09-11  9:37 UTC (permalink / raw)
  To: grub-devel; +Cc: Vladimir Serbinenko

Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
---
 tests/util/grub-shell.in | 43 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in
index ae5f711fe..04405a789 100644
--- a/tests/util/grub-shell.in
+++ b/tests/util/grub-shell.in
@@ -33,6 +33,7 @@ export PATH
 
 trim=0
 trim_head=664cbea8-132f-4770-8aa4-1696d59ac35c
+trim_tail=a3f2a1b5-74fb-4c76-959b-4cf5ef5578b3
 
 # Usage: usage
 # Print the usage.
@@ -303,6 +304,41 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
 	disk="device virtio-blk-device,drive=hd1 -drive if=none,id=hd1,file="
 	serial_port=efi0
 	;;
+     riscv64-efi)
+	qemu=qemu-system-riscv64
+	boot=hd
+	console=console
+	trim=1
+	pflash_code=${srcdir}/RISCV_VIRT_CODE.fd
+	pflash_vars=${srcdir}/RISCV_VIRT_VARS.fd
+	if [ -f "$pflash_code" ]; then
+	    qemuopts="-drive if=pflash,format=raw,unit=0,readonly=on,file=$pflash_code $qemuopts"
+	    if [ -f "$pflash_vars" ]; then
+		qemuopts="-drive if=pflash,format=raw,unit=1,snapshot=on,file=$pflash_vars $qemuopts"
+	    fi
+	elif [ -f /usr/share/qemu-efi-riscv64/RISCV_VIRT_CODE.fd ]; then
+	    pflash_code=/usr/share/qemu-efi-riscv64/RISCV_VIRT_CODE.fd
+	    pflash_vars=/usr/share/qemu-efi-riscv64/RISCV_VIRT_VARS.fd
+	    qemuopts="-drive if=pflash,format=raw,unit=0,readonly=on,file=$pflash_code $qemuopts"
+	    qemuopts="-drive if=pflash,format=raw,unit=1,snapshot=on,file=$pflash_vars $qemuopts"
+	elif [ -f /usr/share/edk2/riscv/RISCV_VIRT_CODE.fd ]; then
+	    # Fedora ships images that are under 32M and we need to fill them to 32M
+	    cp /usr/share/edk2/riscv/RISCV_VIRT_CODE.fd "$work_directory"
+	    cp /usr/share/edk2/riscv/RISCV_VIRT_VARS.fd "$work_directory"
+	    pflash_code="$work_directory"/RISCV_VIRT_CODE.fd
+	    pflash_vars="$work_directory"/RISCV_VIRT_VARS.fd
+	    truncate -s 32M $pflash_code
+	    truncate -s 32M $pflash_vars	    
+	    qemuopts="-drive if=pflash,format=raw,unit=0,readonly=on,file=$pflash_code $qemuopts"
+	    qemuopts="-drive if=pflash,format=raw,unit=1,snapshot=on,file=$pflash_vars $qemuopts"	    
+	else
+	    echo "Firmware not found, please install either the appropriate Debian/Fedora package or an appropriately named copy in the source directory." >&2
+	    exit 1
+	fi
+	qemuopts="-machine virt $qemuopts"
+	disk="device virtio-blk-device,drive=hd1 -drive if=none,id=hd1,file="
+	serial_port=efi0
+	;;
     loongarch64-efi)
 	qemu=qemu-system-loongarch64
 	boot=hd
@@ -498,6 +534,9 @@ source "\$prefix/testcase.cfg"
 # Stop serial output to suppress "ACPI shutdown failed" error.
 EOF
 # Attempt to switch to console on i386-ieee1275 causes "screen not found" message
+if [ x"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = xriscv64-efi ]; then
+    echo "echo $trim_tail" >>${cfgfile}
+fi
 if [ x$console != x ] && [ x"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" != xi386-ieee1275 ]; then
     echo "terminal_output $console" >>${cfgfile}
 fi
@@ -547,6 +586,8 @@ if [ x$boot = xhd ]; then
 	device="device virtio-blk-device,drive=hd0 -drive if=none,id=hd0,file="
     elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = loongarch64-efi ]; then
 	device="device virtio-blk-pci,drive=grubdisk -drive if=none,id=grubdisk,file="
+    elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = riscv64-efi ]; then
+	device="device virtio-blk-device,drive=hd0,bootindex=1 -drive if=none,id=hd0,file="
     elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = mips-arc ]; then
 	device="hdb "
     else
@@ -612,7 +653,7 @@ fi
 do_trim ()
 {
     if [ $trim = 1 ] || [ $trim = 2 ]; then
-	awk '{ if (have_head == 1) print $0; } /^'"$trim_head"'/ { have_head=1; }'
+	awk ' /^'"$trim_tail"'/ { have_head=0; } { if (have_head == 1) print $0; } /^'"$trim_head"'/ { have_head=1; }'
     else
 	cat
     fi
-- 
2.39.2


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-09-19 22:17 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-11  9:37 [PATCH 1/9] grub-shell: Support riscv64-efi Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 2/9] grub-shell: Support Fedora path for ovmf32 Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 3/9] grub-shell: Update qemu name of the machine Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 4/9] grub-shell: Temporarily use reboot on fuloong2e Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 5/9] grub-shell: Support Fedora arm-efi Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 6/9] cmd_set_date: Ignore garbage line at shutdown Vladimir Serbinenko
2024-09-19 21:58   ` Glenn Washburn
2024-09-11  9:37 ` [PATCH 7/9] partmap_test: Accept hd1 on arm-efi Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 8/9] grub-shell: Ignore trailing garbage on loongarch64-efi Vladimir Serbinenko
2024-09-11  9:37 ` [PATCH 9/9] grub-shell: Explicitly specify firmware for i386-ieee1275 Vladimir Serbinenko
2024-09-19 22:16   ` Glenn Washburn
2024-09-19 21:50 ` [PATCH 1/9] grub-shell: Support riscv64-efi Glenn Washburn

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.