diff mbox series

[v5,16/43] tests/acpi: Add update DSDT.viot

Message ID 20220202141037.17352-17-Jonathan.Cameron@huawei.com
State Superseded
Headers show
Series CXl 2.0 emulation Support | expand

Commit Message

Jonathan Cameron Feb. 2, 2022, 2:10 p.m. UTC
From: Jonathan Cameron <jonathan.cameron@huawei.com>

The consolidation of DSDT AML generation for PCI host bridges
lead to some minor ordering changes and the addition of _ADR
with a default of 0 for those case that didn't already have it.
Only DSDT.viot test is affected.

Changes all similar to:

Scope (\_SB)
     {
       Device (PC30)
       {
-        Name (_UID, 0x30)  // _UID: Unique ID
         Name (_BBN, 0x30)  // _BBN: BIOS Bus Number
         Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
         Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
+        Name (_ADR, Zero)  // _ADR: Address
+        Name (_UID, 0x30)  // _UID: Unique ID
         Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities

Signed-off-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 tests/data/acpi/q35/DSDT.viot               | Bin 9398 -> 9416 bytes
 tests/qtest/bios-tables-test-allowed-diff.h |   1 -
 2 files changed, 1 deletion(-)

Comments

Michael S. Tsirkin Feb. 4, 2022, 2:01 p.m. UTC | #1
On Wed, Feb 02, 2022 at 02:10:10PM +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <jonathan.cameron@huawei.com>
> 
> The consolidation of DSDT AML generation for PCI host bridges
> lead to some minor ordering changes and the addition of _ADR
> with a default of 0 for those case that didn't already have it.
> Only DSDT.viot test is affected.
> 
> Changes all similar to:
> 
> Scope (\_SB)
>      {
>        Device (PC30)
>        {
> -        Name (_UID, 0x30)  // _UID: Unique ID
>          Name (_BBN, 0x30)  // _BBN: BIOS Bus Number
>          Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
>          Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
> +        Name (_ADR, Zero)  // _ADR: Address
> +        Name (_UID, 0x30)  // _UID: Unique ID
>          Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
> 
> Signed-off-by: Jonathan Cameron <jonathan.cameron@huawei.com>

A bit worried about _ADR here.  It's probably fine as it should be
unused but in the past some changes like that confused windows guests
where they would lose e.g. a static ip config since from their
POV device address changed.

Igor, what do you think?

> ---
>  tests/data/acpi/q35/DSDT.viot               | Bin 9398 -> 9416 bytes
>  tests/qtest/bios-tables-test-allowed-diff.h |   1 -
>  2 files changed, 1 deletion(-)
> 
> diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot
> index 1c3b4da5cbe81ecab5e1ef50d383b561c5e0f55f..207ac5b9ae4c3a4bc0094c2242d1a1b08771b784 100644
> GIT binary patch
> delta 139
> zcmdnydBT&+CD<k8gbD)#<CBeCu5zLdVlnZ-PVv!A?xF$C#s(bmPELMY6KfQhxC}No
> z$Z0Y1qbM*kn0!E9nwKNq(Itq1BR<sAg-ZdbOrCM_F9mK?rG^HRr4><?3V@Yv4pmBI
> F0sxp4B{u*7
> 
> delta 143
> zcmX@%xy_TyCD<ion+gL1<MNGMu5zMYqA~HoPVv!Aj-mn1#s(bmp`I>WlVjy%CeC%7
> z+^Kj^(SX5#0jQdxl0g7Ptr1kM!sPw((lEse3<_8k8$uNeOjb|?Dc;<vXwM7)8)+to
> 
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index 08a8095432..dfb8523c8b 100644
> --- a/tests/qtest/bios-tables-test-allowed-diff.h
> +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> @@ -1,2 +1 @@
>  /* List of comma-separated changed AML files to ignore */
> -"tests/data/acpi/q35/DSDT.viot",
> -- 
> 2.32.0
Igor Mammedov Feb. 7, 2022, 3:10 p.m. UTC | #2
On Fri, 4 Feb 2022 09:01:31 -0500
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Wed, Feb 02, 2022 at 02:10:10PM +0000, Jonathan Cameron wrote:
> > From: Jonathan Cameron <jonathan.cameron@huawei.com>
> > 
> > The consolidation of DSDT AML generation for PCI host bridges
> > lead to some minor ordering changes and the addition of _ADR
> > with a default of 0 for those case that didn't already have it.
> > Only DSDT.viot test is affected.
> > 
> > Changes all similar to:
> > 
> > Scope (\_SB)
> >      {
> >        Device (PC30)
> >        {
> > -        Name (_UID, 0x30)  // _UID: Unique ID
> >          Name (_BBN, 0x30)  // _BBN: BIOS Bus Number
> >          Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
> >          Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
> > +        Name (_ADR, Zero)  // _ADR: Address
> > +        Name (_UID, 0x30)  // _UID: Unique ID
> >          Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
> > 
> > Signed-off-by: Jonathan Cameron <jonathan.cameron@huawei.com>  
> 
> A bit worried about _ADR here.  It's probably fine as it should be
> unused but in the past some changes like that confused windows guests
> where they would lose e.g. a static ip config since from their
> POV device address changed.

Spec[1] doesn't mention _ADR in context of host bridge(s) at all,
for all I know it shouldn't be there. QEMU inherited it from
SeaBIOS where it is dated to 2008 (as part of large blob adding ACPI for PCI).

Instead of spreading undefined field to other places,
I'd prefer removing it from root host bridge.
But as Michael said it should be very well tested with various guest
OSes.

Jonathan,
Can you compare nic naming (as guest sees it) with current master
and without _ADR on root host bridge?
One way to test it could be
  1. start QEMU(master) configure static IP addr on an interface,
     and shutdown guest
  2. start QEMU(-_ARR) with guest image from step 1 and see if
     interface is still there with IP address it was configured.

test matrix should be something like that:
 PCI(pc machine),PCI-E (q35 machine)/
   Windows 2012-whatever latest Windows, some contemporary linux,
   ancient linux (pre 'stable' interface naming) (something like
   RHEL6 or any other distro from that era)

1) PCI_Firmware_v3.2_01-26-2015_ts_clean_Firmware_Final

> Igor, what do you think?
>
> > ---
> >  tests/data/acpi/q35/DSDT.viot               | Bin 9398 -> 9416 bytes
> >  tests/qtest/bios-tables-test-allowed-diff.h |   1 -
> >  2 files changed, 1 deletion(-)
> > 
> > diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot
> > index 1c3b4da5cbe81ecab5e1ef50d383b561c5e0f55f..207ac5b9ae4c3a4bc0094c2242d1a1b08771b784 100644
> > GIT binary patch
> > delta 139
> > zcmdnydBT&+CD<k8gbD)#<CBeCu5zLdVlnZ-PVv!A?xF$C#s(bmPELMY6KfQhxC}No
> > z$Z0Y1qbM*kn0!E9nwKNq(Itq1BR<sAg-ZdbOrCM_F9mK?rG^HRr4><?3V@Yv4pmBI
> > F0sxp4B{u*7
> > 
> > delta 143
> > zcmX@%xy_TyCD<ion+gL1<MNGMu5zMYqA~HoPVv!Aj-mn1#s(bmp`I>WlVjy%CeC%7
> > z+^Kj^(SX5#0jQdxl0g7Ptr1kM!sPw((lEse3<_8k8$uNeOjb|?Dc;<vXwM7)8)+to
> > 
> > diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> > index 08a8095432..dfb8523c8b 100644
> > --- a/tests/qtest/bios-tables-test-allowed-diff.h
> > +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> > @@ -1,2 +1 @@
> >  /* List of comma-separated changed AML files to ignore */
> > -"tests/data/acpi/q35/DSDT.viot",
> > -- 
> > 2.32.0  
>
Jonathan Cameron Feb. 7, 2022, 6:19 p.m. UTC | #3
On Mon, 7 Feb 2022 16:10:14 +0100
Igor Mammedov <imammedo@redhat.com> wrote:

> On Fri, 4 Feb 2022 09:01:31 -0500
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Wed, Feb 02, 2022 at 02:10:10PM +0000, Jonathan Cameron wrote:  
> > > From: Jonathan Cameron <jonathan.cameron@huawei.com>
> > > 
> > > The consolidation of DSDT AML generation for PCI host bridges
> > > lead to some minor ordering changes and the addition of _ADR
> > > with a default of 0 for those case that didn't already have it.
> > > Only DSDT.viot test is affected.
> > > 
> > > Changes all similar to:
> > > 
> > > Scope (\_SB)
> > >      {
> > >        Device (PC30)
> > >        {
> > > -        Name (_UID, 0x30)  // _UID: Unique ID
> > >          Name (_BBN, 0x30)  // _BBN: BIOS Bus Number
> > >          Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
> > >          Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
> > > +        Name (_ADR, Zero)  // _ADR: Address
> > > +        Name (_UID, 0x30)  // _UID: Unique ID
> > >          Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
> > > 
> > > Signed-off-by: Jonathan Cameron <jonathan.cameron@huawei.com>    
> > 
> > A bit worried about _ADR here.  It's probably fine as it should be
> > unused but in the past some changes like that confused windows guests
> > where they would lose e.g. a static ip config since from their
> > POV device address changed.  
> 
> Spec[1] doesn't mention _ADR in context of host bridge(s) at all,
> for all I know it shouldn't be there. QEMU inherited it from
> SeaBIOS where it is dated to 2008 (as part of large blob adding ACPI for PCI).
> 
> Instead of spreading undefined field to other places,
> I'd prefer removing it from root host bridge.
> But as Michael said it should be very well tested with various guest
> OSes.
> 
> Jonathan,
> Can you compare nic naming (as guest sees it) with current master
> and without _ADR on root host bridge?
> One way to test it could be
>   1. start QEMU(master) configure static IP addr on an interface,
>      and shutdown guest
>   2. start QEMU(-_ARR) with guest image from step 1 and see if
>      interface is still there with IP address it was configured.
> 
> test matrix should be something like that:
>  PCI(pc machine),PCI-E (q35 machine)/
>    Windows 2012-whatever latest Windows, some contemporary linux,
>    ancient linux (pre 'stable' interface naming) (something like
>    RHEL6 or any other distro from that era)

Hi Igor,

Potentially long term I can run those tests, but short term I'd like
to separate this tidy up from introducing the CXL support.

The tidy up / deduplication is rather less useful than when
first introduced now we've decided to only implement CXL support
for PXBs for the short term. Earlier versions included
the main host bridge on x86 which made this change more helpful.

Thanks for the info on what it would require and
I will hopefully get to this once the CXL emulation is in
place (or someone else will beat me to it!)  Not going to be
terribly near the top of my todo list though I'm afraid.

Result for v6 will be that patches 14-16 are dropped and a few changes
to later patches as a result.

Thanks,

Jonathan



> 
> 1) PCI_Firmware_v3.2_01-26-2015_ts_clean_Firmware_Final
> 
> > Igor, what do you think?
> >  
> > > ---
> > >  tests/data/acpi/q35/DSDT.viot               | Bin 9398 -> 9416 bytes
> > >  tests/qtest/bios-tables-test-allowed-diff.h |   1 -
> > >  2 files changed, 1 deletion(-)
> > > 
> > > diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot
> > > index 1c3b4da5cbe81ecab5e1ef50d383b561c5e0f55f..207ac5b9ae4c3a4bc0094c2242d1a1b08771b784 100644
> > > GIT binary patch
> > > delta 139
> > > zcmdnydBT&+CD<k8gbD)#<CBeCu5zLdVlnZ-PVv!A?xF$C#s(bmPELMY6KfQhxC}No
> > > z$Z0Y1qbM*kn0!E9nwKNq(Itq1BR<sAg-ZdbOrCM_F9mK?rG^HRr4><?3V@Yv4pmBI
> > > F0sxp4B{u*7
> > > 
> > > delta 143
> > > zcmX@%xy_TyCD<ion+gL1<MNGMu5zMYqA~HoPVv!Aj-mn1#s(bmp`I>WlVjy%CeC%7
> > > z+^Kj^(SX5#0jQdxl0g7Ptr1kM!sPw((lEse3<_8k8$uNeOjb|?Dc;<vXwM7)8)+to
> > > 
> > > diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> > > index 08a8095432..dfb8523c8b 100644
> > > --- a/tests/qtest/bios-tables-test-allowed-diff.h
> > > +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> > > @@ -1,2 +1 @@
> > >  /* List of comma-separated changed AML files to ignore */
> > > -"tests/data/acpi/q35/DSDT.viot",
> > > -- 
> > > 2.32.0    
> >   
>
diff mbox series

Patch

diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot
index 1c3b4da5cbe81ecab5e1ef50d383b561c5e0f55f..207ac5b9ae4c3a4bc0094c2242d1a1b08771b784 100644
GIT binary patch
delta 139
zcmdnydBT&+CD<k8gbD)#<CBeCu5zLdVlnZ-PVv!A?xF$C#s(bmPELMY6KfQhxC}No
z$Z0Y1qbM*kn0!E9nwKNq(Itq1BR<sAg-ZdbOrCM_F9mK?rG^HRr4><?3V@Yv4pmBI
F0sxp4B{u*7

delta 143
zcmX@%xy_TyCD<ion+gL1<MNGMu5zMYqA~HoPVv!Aj-mn1#s(bmp`I>WlVjy%CeC%7
z+^Kj^(SX5#0jQdxl0g7Ptr1kM!sPw((lEse3<_8k8$uNeOjb|?Dc;<vXwM7)8)+to

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 08a8095432..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,2 +1 @@ 
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/q35/DSDT.viot",