grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 10/10] tests: add support for LoongArch


From: Xiaotian Wu
Subject: Re: [PATCH v6 10/10] tests: add support for LoongArch
Date: Wed, 3 Aug 2022 09:25:42 +0800
User-agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0


在 2022/8/3 上午2:50, Glenn Washburn 写道:
On Tue,  2 Aug 2022 15:13:37 +0800
Xiaotian Wu <wuxiaotian@loongson.cn> wrote:

Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn>
---
  tests/ahci_test.in       |  2 +-
  tests/ehci_test.in       |  2 +-
  tests/ohci_test.in       |  2 +-
  tests/pata_test.in       |  2 +-
  tests/uhci_test.in       |  2 +-
  tests/util/grub-shell.in | 14 ++++++++++++++
  6 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/tests/ahci_test.in b/tests/ahci_test.in
index 6d2e61d4e..70646a24e 100644
--- a/tests/ahci_test.in
+++ b/tests/ahci_test.in
@@ -30,7 +30,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
      mips*-arc | mips*-qemu_mips)
        exit 77;;
      # FIXME: No native drivers are available for those
-    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi)
+    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi | loongarch64-efi)
        exit 77;;
  esac
diff --git a/tests/ehci_test.in b/tests/ehci_test.in
index df671b4b6..bf823a5de 100644
--- a/tests/ehci_test.in
+++ b/tests/ehci_test.in
@@ -30,7 +30,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
      mips*-arc | mips*-qemu_mips)
        exit 77;;
      # FIXME: No native drivers are available for those
-    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi)
+    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi | loongarch64-efi)
        exit 77;;
  esac
diff --git a/tests/ohci_test.in b/tests/ohci_test.in
index 741ad881f..a40d3bc0a 100644
--- a/tests/ohci_test.in
+++ b/tests/ohci_test.in
@@ -30,7 +30,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
      mips*-arc | mips*-qemu_mips)
        exit 77;;
      # FIXME: No native drivers are available for those
-    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi)
+    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi | loongarch64-efi)
        exit 77;;
  esac
diff --git a/tests/pata_test.in b/tests/pata_test.in
index 31144a8fd..4d0e7d573 100644
--- a/tests/pata_test.in
+++ b/tests/pata_test.in
@@ -33,7 +33,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
      i386-efi)
        exit 77;;
      # FIXME: No native drivers are available for those
-    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi)
+    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi | loongarch64-efi)
        exit 77;;
      i386-ieee1275)
        disk=hdb
diff --git a/tests/uhci_test.in b/tests/uhci_test.in
index 5aa5eb726..de199a281 100644
--- a/tests/uhci_test.in
+++ b/tests/uhci_test.in
@@ -30,7 +30,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
      mips*-arc | mips*-qemu_mips)
        exit 77;;
      # FIXME: No native drivers are available for those
-    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi)
+    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi | loongarch64-efi)
        exit 77;;
  esac
diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in
index 4828afb7c..e0cfe6f01 100644
--- a/tests/util/grub-shell.in
+++ b/tests/util/grub-shell.in
@@ -194,6 +194,16 @@ 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
        ;;
+    loongarch64-efi)
+       qemu=qemu-system-loongarch64
+       boot=hd
+       console=console
+       trim=1
+       qemuopts="-machine virt -cpu la464 -smp 2 -nographic -L ${srcdir} \
+                 -bios /usr/share/qemu/edk2-loongarch64-code.fd $qemuopts"
The firmware should not be specified with an absolute path because that
effectively disables searching for the firmware and make the -L option
useless. So I believe it should just be "-bios edk2-loongarch64-code.fd".
Thanks,  you are right.

+       disk="device virtio-blk-pci,drive=hd1 -drive if=none,id=hd1,file="
I realize now that I was confused by the hd1 here. This is just an identifier
and has no other meaning. In fact, this disk gets set as the first disk
in QEMU. Looking at the code again, the extra disk handling code really needs
to be updated and reworked. I think this line is fine for now.

+       serial_port=
+       ;;
      *)
        boot=hd
        qemu=qemu-system-i386
@@ -395,6 +405,8 @@ fi
  if [ x$boot = xhd ]; then
      if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = arm64-efi ] || [ 
"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = arm-efi ]; 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=hd0 -drive if=none,id=hd0,file="
The hd0 here is also misleading, as it will get set as the last of a series
of disks, which in the case of the partmap_test will the the second disk.
I know this is essentially copied from the if block above it, but instead
of using hd0, how about using "grubdev", which seems a more accurate name.

Also, I'm wondering why use "virtio-blk-pci" instead of "virtio-blk-device"
as ARM does above? I this just the more preferred way to do this with QEMU
now, or is there an important functional difference?

qemu-system-loongarch64 does not support 'virtio-blk-device'. If it is used, I will get an error:

qemu-system-loongarch64: -device virtio-blk-device,drive=grubdev: No 'virtio-bus' bus found for device 'virtio-blk-device'

So, I can only use `virtio-blk-pci`.


Glenn

      elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = mips-arc 
]; then
        device="hdb "
      else
@@ -405,6 +417,8 @@ fi
  if [ x$boot = xcd ]; then
      if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = arm64-efi ] || [ 
"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = arm-efi ]; then
        device="device virtio-blk-device,drive=cd0 -drive 
if=none,id=cd0,media=cdrom,file="
+    elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = 
loongarch64-efi ]; then
+       device="device virtio-blk-pci,drive=cd0 -drive 
if=none,id=cd0,media=cdrom,file="
      elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = powerpc-ieee1275 ] 
&& [ x$pseries != xy ] ; then
        device="-drive if=ide,media=cdrom,file="
      else

--
Best Regards
Xiaotian Wu




reply via email to

[Prev in Thread] Current Thread [Next in Thread]