From 7a58b59d72c14071881ec01e7495fa1405d0501a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:45:52 -0300 Subject: [PATCH 1/2] fix(genesis): boot the riscv64 image on firmware that describes hardware through ACPI The riscv64 kernel was built without ACPI. Firmware that publishes ACPI tables and no device tree - server-class RISC-V boards, and edk2 with acpi=on - therefore left the kernel with no hardware description: it died before console initialisation, so a node handed the image by grub2 went silent at ExitBootServices and never reached the discovery action. Enable ACPI, its error interfaces and the EFI stub the image is already booted through. Rebuilt with these options, the same image on the same firmware parses the RSDP, XSDT, FACP, DSDT, APIC, RHCT and SPCR tables, reaches multi-user and starts discovering, and the kernel now also sees the SMBIOS entry point the firmware exports. --- .../linux/linux-yocto/xcat-genesis-riscv64.cfg | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-riscv64.cfg b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-riscv64.cfg index 46012a8430..91f9881264 100644 --- a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-riscv64.cfg +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-riscv64.cfg @@ -7,6 +7,13 @@ CONFIG_RISCV_SBI=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y +# Firmware description +CONFIG_ACPI=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y + # Loadable service drivers CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y From a5b12caf93eb5301b3d4a63ced98ae6196e4a1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:45:52 -0300 Subject: [PATCH 2/2] test(xCAT-test): cover the ACPI firmware description of the riscv64 kernel Pin the configuration symbols that let the riscv64 Genesis kernel describe its hardware on firmware that publishes ACPI tables and no device tree, and the EFI stub grub2 boots it through. Without them the image dies before the console exists and the node goes silent instead of discovering. --- xCAT-test/unit/genesis_openembedded.t | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/xCAT-test/unit/genesis_openembedded.t b/xCAT-test/unit/genesis_openembedded.t index efd1573790..368f5c7ab4 100644 --- a/xCAT-test/unit/genesis_openembedded.t +++ b/xCAT-test/unit/genesis_openembedded.t @@ -548,6 +548,17 @@ for my $symbol ( "riscv64 kernel enables $symbol" ); } +for my $symbol ( + qw( + CONFIG_ACPI CONFIG_ACPI_APEI CONFIG_ACPI_APEI_GHES + CONFIG_EFI CONFIG_EFI_STUB + ) + ) +{ + like( $riscv64_kernel_config, qr/^\Q$symbol\E=[ym]$/m, + "riscv64 kernel enables $symbol to boot on ACPI firmware" ); +} + my $powerpc64_kernel_config = read_file( 'xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-kernel/linux/linux-yocto/xcat-genesis-powerpc64.cfg' );