On 6/20/25 3:22 PM, Igor Mammedov wrote: > On Fri, 20 Jun 2025 11:40:29 +0100 > Jonathan Cameron <jonathan.came...@huawei.com> wrote: > >> On Mon, 16 Jun 2025 11:46:57 +0200 >> Eric Auger <eric.au...@redhat.com> wrote: >> >>> From: Gustavo Romero <gustavo.rom...@linaro.org> >>> >>> The test uses -global acpi-ged.acpi-pci-hotplug-with-bridge-support=on >>> to force the usage of ACPI PCI hotplug. >>> >>> Signed-off-by: Gustavo Romero <gustavo.rom...@linaro.org> >>> Signed-off-by: Eric Auger <eric.au...@redhat.com> >> Could we add the necessary (I'm not quite sure what) to trigger the _DSM >> creation so EDSM gets used? I'm not keen on that being dead code >> wrt to tests on ARM. > relevant x86 example: > > " -device pcie-root-port,id=nohprp,port=0x0,chassis=2,hotplug=off," > argh. I did not see hotplug=off. So then static acpi-index also works on ARM. So I will make edsm independent on acpi pcihp Sorry for the noise Eric > > "addr=7.0" > > " -device pci-testdev,bus=nohprp,acpi-index=501" >> Jonathan >> >> >> >>> --- >>> tests/qtest/bios-tables-test.c | 34 ++++++++++++++++++++++++++++++++++ >>> 1 file changed, 34 insertions(+) >>> >>> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c >>> index 0b2bdf9d0d..4b9e391eaf 100644 >>> --- a/tests/qtest/bios-tables-test.c >>> +++ b/tests/qtest/bios-tables-test.c >>> @@ -1643,6 +1643,38 @@ static void test_acpi_aarch64_virt_tcg_memhp(void) >>> >>> } >>> >>> +static void test_acpi_aarch64_virt_acpi_pci_hotplug(void) >>> +{ >>> + test_data data = { >>> + .machine = "virt", >>> + .arch = "aarch64", >>> + .tcg_only = true, >>> + .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", >>> + .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", >>> + .cd = >>> "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", >>> + .ram_start = 0x40000000ULL, >>> + .scan_len = 256ULL * MiB, >>> + .variant = ".acpipcihp", >>> + }; >>> + >>> + /* Use ACPI PCI Hotplug */ >>> + test_acpi_one(" -global >>> acpi-ged.acpi-pci-hotplug-with-bridge-support=on" >>> + " -cpu cortex-a57" >>> + /* >>> + * We just pick address=0x04 for the root port to avoid >>> + * collisions with other PCI devices on the root bus >>> (pcie.0). >>> + * It could be any other value that doesn't collide. >>> + * >>> + * The 'chassis' and 'slot' options equal to 1 have no >>> special >>> + * meaning here, could be any integer, but we set them to >>> known >>> + * values to keep the test consistent. >>> + */ >>> + " -device >>> pcie-root-port,bus=pcie.0,chassis=1,slot=1,addr=0x04.0x00", >>> + &data); >>> + >>> + free_test_data(&data); >>> +} >>> + >>> static void test_acpi_microvm_prepare(test_data *data) >>> { >>> data->machine = "microvm"; >>> @@ -2580,6 +2612,8 @@ int main(int argc, char *argv[]) >>> qtest_add_func("acpi/virt/numamem", >>> test_acpi_aarch64_virt_tcg_numamem); >>> qtest_add_func("acpi/virt/memhp", >>> test_acpi_aarch64_virt_tcg_memhp); >>> + qtest_add_func("acpi/virt/acpipcihp", >>> + test_acpi_aarch64_virt_acpi_pci_hotplug); >>> qtest_add_func("acpi/virt/pxb", >>> test_acpi_aarch64_virt_tcg_pxb); >>> qtest_add_func("acpi/virt/oem-fields", >>> test_acpi_aarch64_virt_oem_fields);