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,"     
 
                                 "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);  
> 


Reply via email to