On Wed, 11 Sep 2024 12:37:27 +0300
Vladimir Serbinenko <phco...@gmail.com> wrote:

> Signed-off-by: Vladimir Serbinenko <phco...@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

I think it makes sense to put this and the last changeset into a
separate preceding patch because logically its not quite related,
perhaps noting that its to prepare for a subsequent patch. If not, at
least something should be noted in the commit message.

>  
>  # 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

Tests are only supported under Debian. I don't mind supporting other
distros, but currently its not for other targets with respect to
finding the firmware. And if we are going to do it, it should be done
in a more target generic manner. This knowledge about how to run the
tests on Fedora codified here seems valuable though, so I'm not opposed
to this change and we can do what I suggest at a future date. But its
not ideal.

> +         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

This comment now does not go with the originally intended code and I
doubt it should remain as is for the added change below. Also a comment
should be added describing why the added code to trim to the end of the
output is needed.

Glenn

> +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

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

Reply via email to