From: George Guo <dongtai.guo@linux.dev>
To: rppt@kernel.org, pasha.tatashin@soleen.com, pratyush@kernel.org,
chenhuacai@kernel.org, ardb@kernel.org, shuah@kernel.org
Cc: ilias.apalodimas@linaro.org, akpm@linux-foundation.org,
baoquan.he@linux.dev, ruirui.yang@linux.dev,
guodongtai@kylinos.cn, kernel@xen0n.name, graf@amazon.com,
liukexin@kylinos.cn, loongarch@lists.linux.dev,
linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
linux-mm@kvack.org, linux-kselftest@vger.kernel.org,
linux-efi@vger.kernel.org
Subject: [PATCH v5 5/5] selftests/kho: add LoongArch vmtest support
Date: Fri, 4 Sep 2026 18:08:52 +0800 [thread overview]
Message-ID: <20260904100852.26006-6-dongtai.guo@linux.dev> (raw)
In-Reply-To: <20260904100852.26006-1-dongtai.guo@linux.dev>
From: George Guo <guodongtai@kylinos.cn>
Add loongarch.conf to configure QEMU's LoongArch virtual machine with a
la464 CPU, an 8250 serial console, and the generic PCI host controller.
Extend vmtest.sh to recognize loongarch64 as a supported target and map
it to the loongarch kernel architecture name.
Boot vmlinux.efi through EFI firmware. The KHO configuration table
channel is installed by the EFI stub during the initial boot, so direct
kernel boot bypasses the path that this test needs to exercise. QEMU_EFI
defaults to the firmware shipped under /usr/share/edk2/loongarch64/ and
can be overridden for distributions that install it under a different
path, such as Debian's qemu-efi-loongarch64 package.
QEMU's LoongArch virt machine has no i8042 controller. Enable the generic
PCI host so its I/O space is mapped before the i8042 fallback probe
accesses the legacy ports. This avoids disabling the i8042 options and
allows the same kernel configuration to remain usable on physical hosts.
Enable ACPI_SPCR_TABLE so the bare earlycon parameter can obtain the UART
type, MMIO address and baud rate from the SPCR table installed by EDK2.
Unlike on x86, ACPI_SPCR_TABLE does not default to enabled on LoongArch.
Without it, no early console is registered for the EFI firmware boot path,
and vmtest cannot observe the early kernel output in its serial log.
The KHO vmtest requires CONFIG_DEFERRED_STRUCT_PAGE_INIT=y, which
depends on SPARSEMEM. Select CONFIG_SPARSEMEM_MANUAL=y to satisfy the
dependency on LoongArch.
Co-developed-by: Kexin Liu <liukexin@kylinos.cn>
Signed-off-by: Kexin Liu <liukexin@kylinos.cn>
Signed-off-by: George Guo <guodongtai@kylinos.cn>
---
tools/testing/selftests/kho/loongarch.conf | 11 +++++++++++
tools/testing/selftests/kho/vmtest.sh | 3 ++-
2 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 tools/testing/selftests/kho/loongarch.conf
diff --git a/tools/testing/selftests/kho/loongarch.conf b/tools/testing/selftests/kho/loongarch.conf
new file mode 100644
index 000000000000..36153b03c4ef
--- /dev/null
+++ b/tools/testing/selftests/kho/loongarch.conf
@@ -0,0 +1,11 @@
+QEMU_EFI="${QEMU_EFI:-/usr/share/edk2/loongarch64/QEMU_EFI.fd}"
+QEMU_CMD="qemu-system-loongarch64 -M virt -cpu la464 -bios $QEMU_EFI"
+QEMU_KCONFIG="
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SPARSEMEM_MANUAL=y
+"
+KERNEL_IMAGE="vmlinux.efi"
+KERNEL_CMDLINE="console=ttyS0 earlycon"
diff --git a/tools/testing/selftests/kho/vmtest.sh b/tools/testing/selftests/kho/vmtest.sh
index 0014bd76e88d..d05ba0734b25 100755
--- a/tools/testing/selftests/kho/vmtest.sh
+++ b/tools/testing/selftests/kho/vmtest.sh
@@ -21,7 +21,7 @@ Options:
-d) path to the kernel build directory
-j) number of jobs for compilation, similar to -j in make
-t) run test for target_arch, requires CROSS_COMPILE set
- supported targets: aarch64, x86_64
+ supported targets: aarch64, loongarch64, x86_64
-h) display this help
EOF
}
@@ -126,6 +126,7 @@ function target_to_arch() {
case $target in
aarch64) echo "arm64" ;;
+ loongarch64) echo "loongarch" ;;
x86_64) echo "x86" ;;
*) skip "architecture $target is not supported"
esac
--
2.53.0
prev parent reply other threads:[~2026-09-04 10:10 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 10:08 [PATCH v5 0/5] LoongArch: add KHO support and selftests George Guo
2026-09-04 10:08 ` [PATCH v5 1/5] efi: add a KHO configuration table channel George Guo
2026-09-04 10:08 ` [PATCH v5 2/5] liveupdate: synchronize EFI KHO channel at execution George Guo
2026-09-04 10:08 ` [PATCH v5 3/5] liveupdate: kho_block: include linux/mm.h for virt/phys translation George Guo
2026-09-04 10:08 ` [PATCH v5 4/5] LoongArch: enable kexec handover (KHO) George Guo
2026-09-04 10:08 ` George Guo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260904100852.26006-6-dongtai.guo@linux.dev \
--to=dongtai.guo@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=ardb@kernel.org \
--cc=baoquan.he@linux.dev \
--cc=chenhuacai@kernel.org \
--cc=graf@amazon.com \
--cc=guodongtai@kylinos.cn \
--cc=ilias.apalodimas@linaro.org \
--cc=kernel@xen0n.name \
--cc=kexec@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liukexin@kylinos.cn \
--cc=loongarch@lists.linux.dev \
--cc=pasha.tatashin@soleen.com \
--cc=pratyush@kernel.org \
--cc=rppt@kernel.org \
--cc=ruirui.yang@linux.dev \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox