[PATCH v5 36/36] qtest/bios-tables-test: Generate reference blob for DSDT.acpipcihp

Eric Auger posted 36 patches 4 months, 2 weeks ago
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Aurelien Jarno <aurelien@aurel32.net>, Paolo Bonzini <pbonzini@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Shannon Zhao <shannon.zhaosl@gmail.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, Richard Henderson <richard.henderson@linaro.org>
There is a newer version of this series
[PATCH v5 36/36] qtest/bios-tables-test: Generate reference blob for DSDT.acpipcihp
Posted by Eric Auger 4 months, 2 weeks ago
The disassembled DSDT table is given below.

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20210604 (64-bit version)
 * Copyright (c) 2000 - 2021 Intel Corporation
 *
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of ../tests/data/acpi/aarch64/virt/DSDT.acpipcihp, Thu Jul  3 05:16:27 2025
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000183A (6202)
 *     Revision         0x02
 *     Checksum         0x98
 *     OEM ID           "BOCHS "
 *     OEM Table ID     "BXPC    "
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "BXPC"
 *     Compiler Version 0x00000001 (1)
 */
DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPC    ", 0x00000001)
{
    Scope (\_SB)
    {
        Device (C000)
        {
            Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
        }

        Device (COM0)
        {
            Name (_HID, "ARMH0011")  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x09000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000021,
                }
            })
        }

        Device (FWCF)
        {
            Name (_HID, "QEMU0002")  // _HID: Hardware ID
            Name (_STA, 0x0B)  // _STA: Status
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x09020000,         // Address Base
                    0x00000018,         // Address Length
                    )
            })
        }

        Device (VR00)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000000,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000030,
                }
            })
        }

        Device (VR01)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000200,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000031,
                }
            })
        }

        Device (VR02)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000400,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000032,
                }
            })
        }

        Device (VR03)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000600,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000033,
                }
            })
        }

        Device (VR04)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000800,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000034,
                }
            })
        }

        Device (VR05)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x05)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000A00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000035,
                }
            })
        }

        Device (VR06)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x06)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000C00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000036,
                }
            })
        }

        Device (VR07)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x07)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A000E00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000037,
                }
            })
        }

        Device (VR08)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x08)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001000,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000038,
                }
            })
        }

        Device (VR09)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x09)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001200,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000039,
                }
            })
        }

        Device (VR10)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x0A)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001400,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000003A,
                }
            })
        }

        Device (VR11)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x0B)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001600,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000003B,
                }
            })
        }

        Device (VR12)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x0C)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001800,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000003C,
                }
            })
        }

        Device (VR13)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x0D)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001A00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000003D,
                }
            })
        }

        Device (VR14)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x0E)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001C00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000003E,
                }
            })
        }

        Device (VR15)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x0F)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A001E00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000003F,
                }
            })
        }

        Device (VR16)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x10)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002000,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000040,
                }
            })
        }

        Device (VR17)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x11)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002200,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000041,
                }
            })
        }

        Device (VR18)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x12)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002400,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000042,
                }
            })
        }

        Device (VR19)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x13)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002600,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000043,
                }
            })
        }

        Device (VR20)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x14)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002800,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000044,
                }
            })
        }

        Device (VR21)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x15)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002A00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000045,
                }
            })
        }

        Device (VR22)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x16)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002C00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000046,
                }
            })
        }

        Device (VR23)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x17)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A002E00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000047,
                }
            })
        }

        Device (VR24)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x18)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003000,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000048,
                }
            })
        }

        Device (VR25)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x19)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003200,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000049,
                }
            })
        }

        Device (VR26)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x1A)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003400,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000004A,
                }
            })
        }

        Device (VR27)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x1B)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003600,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000004B,
                }
            })
        }

        Device (VR28)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x1C)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003800,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000004C,
                }
            })
        }

        Device (VR29)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x1D)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003A00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000004D,
                }
            })
        }

        Device (VR30)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x1E)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003C00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000004E,
                }
            })
        }

        Device (VR31)
        {
            Name (_HID, "LNRO0005")  // _HID: Hardware ID
            Name (_UID, 0x1F)  // _UID: Unique ID
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0x0A003E00,         // Address Base
                    0x00000200,         // Address Length
                    )
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000004F,
                }
            })
        }

        Device (L000)
        {
            Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000023,
                }
            })
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000023,
                }
            })
            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
            }
        }

        Device (L001)
        {
            Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000024,
                }
            })
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000024,
                }
            })
            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
            }
        }

        Device (L002)
        {
            Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000025,
                }
            })
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000025,
                }
            })
            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
            }
        }

        Device (L003)
        {
            Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000026,
                }
            })
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x00000026,
                }
            })
            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
            }
        }

        Device (PCI0)
        {
            Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
            Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
            Name (_SEG, Zero)  // _SEG: PCI Segment
            Name (_BBN, Zero)  // _BBN: BIOS Bus Number
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
            Name (_CCA, One)  // _CCA: Cache Coherency Attribute
            Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
            {
                Package (0x04)
                {
                    0xFFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0xFFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0xFFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0xFFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0001FFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0001FFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0001FFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0001FFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0005FFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0005FFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0005FFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0005FFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0006FFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0006FFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0006FFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0006FFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0007FFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0007FFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0007FFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0007FFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0008FFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0008FFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0008FFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0008FFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x000BFFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x000BFFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000BFFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x000BFFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x000CFFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000CFFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x000CFFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x000CFFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000EFFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x000EFFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x000EFFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000EFFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x000FFFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x000FFFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x000FFFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x000FFFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0010FFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0010FFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0010FFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0010FFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0011FFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0011FFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0011FFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0011FFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0018FFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x0018FFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0018FFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0018FFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0019FFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x0019FFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x0019FFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x0019FFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001AFFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x001AFFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x001AFFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001AFFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x001BFFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x001BFFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001BFFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x001BFFFF,
                    0x03,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x001CFFFF,
                    Zero,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001CFFFF,
                    One,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x001CFFFF,
                    0x02,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x001CFFFF,
                    0x03,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x001DFFFF,
                    Zero,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x001DFFFF,
                    One,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x001DFFFF,
                    0x02,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x001DFFFF,
                    0x03,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001EFFFF,
                    Zero,
                    L002,
                    Zero
                },

                Package (0x04)
                {
                    0x001EFFFF,
                    One,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x001EFFFF,
                    0x02,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001EFFFF,
                    0x03,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x001FFFFF,
                    Zero,
                    L003,
                    Zero
                },

                Package (0x04)
                {
                    0x001FFFFF,
                    One,
                    L000,
                    Zero
                },

                Package (0x04)
                {
                    0x001FFFFF,
                    0x02,
                    L001,
                    Zero
                },

                Package (0x04)
                {
                    0x001FFFFF,
                    0x03,
                    L002,
                    Zero
                }
            })
            Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
            {
                Return (0x0000004010000000)
            }

            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    ,, )
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x10000000,         // Range Minimum
                    0x3EFEFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x2EFF0000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x0000FFFF,         // Range Maximum
                    0x3EFF0000,         // Translation Offset
                    0x00010000,         // Length
                    ,, , TypeStatic, DenseTranslation)
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x0000000000000000, // Granularity
                    0x0000008000000000, // Range Minimum
                    0x000000FFFFFFFFFF, // Range Maximum
                    0x0000000000000000, // Translation Offset
                    0x0000008000000000, // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
            {
                CreateDWordField (Arg3, Zero, CDW1)
                If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
                {
                    CreateDWordField (Arg3, 0x04, CDW2)
                    CreateDWordField (Arg3, 0x08, CDW3)
                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
                    Local0 &= 0x1E
                    If ((Arg1 != One))
                    {
                        CDW1 |= 0x08
                    }

                    If ((CDW3 != Local0))
                    {
                        CDW1 |= 0x10
                    }

                    CDW3 = Local0
                }
                Else
                {
                    CDW1 |= 0x04
                }

                Return (Arg3)
            }

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
                {
                    If ((Arg2 == Zero))
                    {
                        Return (Buffer (One)
                        {
                             0x01                                             // .
                        })
                    }
                }

                Return (Buffer (One)
                {
                     0x00                                             // .
                })
            }

            Device (RES0)
            {
                Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                {
                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                        0x0000000000000000, // Granularity
                        0x0000004010000000, // Range Minimum
                        0x000000401FFFFFFF, // Range Maximum
                        0x0000000000000000, // Translation Offset
                        0x0000000010000000, // Length
                        ,, , AddressRangeMemory, TypeStatic)
                })
            }
        }

        Device (\_SB.GED)
        {
            Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
            Name (_UID, "GED")  // _UID: Unique ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
                {
                    0x00000029,
                }
            })
            OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
            Field (EREG, DWordAcc, NoLock, WriteAsZeros)
            {
                ESEL,   32
            }

            Method (_EVT, 1, Serialized)  // _EVT: Event
            {
                Local0 = ESEL /* \_SB_.GED_.ESEL */
                If (((Local0 & 0x02) == 0x02))
                {
                    Notify (PWRB, 0x80) // Status Change
                }

                If (((Local0 & 0x10) == 0x10))
                {
                    Acquire (\_SB.PCI0.BLCK, 0xFFFF)
                    \_SB.PCI0.PCNT ()
                    Release (\_SB.PCI0.BLCK)
                }
            }
        }

        Device (PWRB)
        {
            Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
        }
    }

    Scope (_SB.PCI0)
    {
        OperationRegion (PCST, SystemMemory, 0x090C0000, 0x08)
        Field (PCST, DWordAcc, NoLock, WriteAsZeros)
        {
            PCIU,   32,
            PCID,   32
        }

        OperationRegion (SEJ, SystemMemory, 0x090C0008, 0x04)
        Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
        {
            B0EJ,   32
        }

        OperationRegion (BNMR, SystemMemory, 0x090C0010, 0x08)
        Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
        {
            BNUM,   32,
            PIDX,   32
        }

        Mutex (BLCK, 0x00)
        Method (PCEJ, 2, NotSerialized)
        {
            Acquire (BLCK, 0xFFFF)
            BNUM = Arg0
            B0EJ = (One << Arg1)
            Release (BLCK)
            Return (Zero)
        }

        Method (AIDX, 2, NotSerialized)
        {
            Acquire (BLCK, 0xFFFF)
            BNUM = Arg0
            PIDX = (One << Arg1)
            Local0 = PIDX /* \_SB_.PCI0.PIDX */
            Release (BLCK)
            Return (Local0)
        }

        Method (PDSM, 5, Serialized)
        {
            If ((Arg2 == Zero))
            {
                Local0 = Buffer (One)
                    {
                         0x00                                             // .
                    }
                If ((Arg0 != ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
                {
                    Return (Local0)
                }

                If ((Arg1 < 0x02))
                {
                    Return (Local0)
                }

                Local1 = Zero
                Local2 = AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One]
                    ))
                If (!((Local2 == Zero) | (Local2 == 0xFFFFFFFF)))
                {
                    Local1 |= One
                    Local1 |= (One << 0x07)
                }

                Local0 [Zero] = Local1
                Return (Local0)
            }

            If ((Arg2 == 0x07))
            {
                Local2 = AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One]
                    ))
                Local0 = Package (0x02) {}
                If (!((Local2 == Zero) || (Local2 == 0xFFFFFFFF)))
                {
                    Local0 [Zero] = Local2
                    Local0 [One] = ""
                }

                Return (Local0)
            }
        }
    }

    Scope (\_SB.PCI0)
    {
        Method (EDSM, 5, Serialized)
        {
            If ((Arg2 == Zero))
            {
                Local0 = Buffer (One)
                    {
                         0x00                                             // .
                    }
                If ((Arg0 != ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
                {
                    Return (Local0)
                }

                If ((Arg1 < 0x02))
                {
                    Return (Local0)
                }

                Local0 [Zero] = 0x81
                Return (Local0)
            }

            If ((Arg2 == 0x07))
            {
                Local0 = Package (0x02)
                    {
                        Zero,
                        ""
                    }
                Local1 = DerefOf (Arg4 [Zero])
                Local0 [Zero] = Local1
                Return (Local0)
            }
        }

        Device (S00)
        {
            Name (_ADR, Zero)  // _ADR: Address
        }

        Device (S08)
        {
            Name (_ADR, 0x00010000)  // _ADR: Address
        }

        Device (S38)
        {
            Name (_ADR, 0x00070000)  // _ADR: Address
            Device (S00)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }

            Name (BSEL, One)
            Scope (S00)
            {
                Name (ASUN, Zero)
                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    Local0 = Package (0x02)
                        {
                            Zero,
                            Zero
                        }
                    Local0 [Zero] = BSEL /* \_SB_.PCI0.S38_.BSEL */
                    Local0 [One] = ASUN /* \_SB_.PCI0.S38_.S00_.ASUN */
                    Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
                }

                Name (_SUN, Zero)  // _SUN: Slot User Number
                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
                {
                    PCEJ (BSEL, _SUN)
                }
            }

            Method (DVNT, 2, NotSerialized)
            {
                If ((Arg0 & One))
                {
                    Notify (S00, Arg1)
                }
            }
        }

        Name (BSEL, Zero)
        Scope (S00)
        {
            Name (ASUN, Zero)
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                Local0 = Package (0x02)
                    {
                        Zero,
                        Zero
                    }
                Local0 [Zero] = BSEL /* \_SB_.PCI0.BSEL */
                Local0 [One] = ASUN /* \_SB_.PCI0.S00_.ASUN */
                Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
            }

            Name (_SUN, Zero)  // _SUN: Slot User Number
            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
            {
                PCEJ (BSEL, _SUN)
            }
        }

        Scope (S08)
        {
            Name (ASUN, One)
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                Local0 = Package (0x02)
                    {
                        Zero,
                        Zero
                    }
                Local0 [Zero] = BSEL /* \_SB_.PCI0.BSEL */
                Local0 [One] = ASUN /* \_SB_.PCI0.S08_.ASUN */
                Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
            }

            Name (_SUN, One)  // _SUN: Slot User Number
            Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
            {
                PCEJ (BSEL, _SUN)
            }
        }

        Method (DVNT, 2, NotSerialized)
        {
            If ((Arg0 & One))
            {
                Notify (S00, Arg1)
            }

            If ((Arg0 & 0x02))
            {
                Notify (S08, Arg1)
            }
        }

        Device (PHPR)
        {
            Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
            Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
            Name (_STA, 0x0B)  // _STA: Status
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0000,             // Range Minimum
                    0x0000,             // Range Maximum
                    0x01,               // Alignment
                    0x18,               // Length
                    )
            })
        }

        Scope (S38)
        {
            Method (PCNT, 0, NotSerialized)
            {
                BNUM = One
                DVNT (PCIU, One)
                DVNT (PCID, 0x03)
            }
        }

        Method (PCNT, 0, NotSerialized)
        {
            BNUM = Zero
            DVNT (PCIU, One)
            DVNT (PCID, 0x03)
            ^S38.PCNT ()
        }
    }
}

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h |   1 -
 tests/data/acpi/aarch64/virt/DSDT.acpipcihp | Bin 0 -> 6202 bytes
 2 files changed, 1 deletion(-)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dc3ab24d05..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/aarch64/virt/DSDT.acpipcihp",
diff --git a/tests/data/acpi/aarch64/virt/DSDT.acpipcihp b/tests/data/acpi/aarch64/virt/DSDT.acpipcihp
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8d55a877a40cb4c4dffdc70378204e12d2261a75 100644
GIT binary patch
literal 6202
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
R?PfR*|6}}@w~&H!{sU733QPb1

literal 0
HcmV?d00001

-- 
2.49.0
Re: [PATCH v5 36/36] qtest/bios-tables-test: Generate reference blob for DSDT.acpipcihp
Posted by Jonathan Cameron via 4 months, 2 weeks ago
On Thu,  3 Jul 2025 14:35:36 +0200
Eric Auger <eric.auger@redhat.com> wrote:

> The disassembled DSDT table is given below.
I think the aim for this one should be to highlight the blobs where it differs
from the previous rather than having the whole thing.


> 
> /*
>  * Intel ACPI Component Architecture
>  * AML/ASL+ Disassembler version 20210604 (64-bit version)
>  * Copyright (c) 2000 - 2021 Intel Corporation
>  *
>  * Disassembling to symbolic ASL+ operators
>  *
>  * Disassembly of ../tests/data/acpi/aarch64/virt/DSDT.acpipcihp, Thu Jul  3 05:16:27 2025
>  *
>  * Original Table Header:
>  *     Signature        "DSDT"
>  *     Length           0x0000183A (6202)
>  *     Revision         0x02
>  *     Checksum         0x98
>  *     OEM ID           "BOCHS "
>  *     OEM Table ID     "BXPC    "
>  *     OEM Revision     0x00000001 (1)
>  *     Compiler ID      "BXPC"
>  *     Compiler Version 0x00000001 (1)
>  */
> DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPC    ", 0x00000001)
> {
>     Scope (\_SB)
>     {
>         Device (C000)
>         {
>             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
>             Name (_UID, Zero)  // _UID: Unique ID
>         }
> 
>         Device (COM0)
>         {
>             Name (_HID, "ARMH0011")  // _HID: Hardware ID
>             Name (_UID, Zero)  // _UID: Unique ID
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>             {
>                 Memory32Fixed (ReadWrite,
>                     0x09000000,         // Address Base
>                     0x00001000,         // Address Length
>                     )
>                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
>                 {
>                     0x00000021,
>                 }
>             })
>         }
> 
>         Device (FWCF)
>         {
>             Name (_HID, "QEMU0002")  // _HID: Hardware ID
>             Name (_STA, 0x0B)  // _STA: Status
>             Name (_CCA, One)  // _CCA: Cache Coherency Attribute
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>             {
>                 Memory32Fixed (ReadWrite,
>                     0x09020000,         // Address Base
>                     0x00000018,         // Address Length
>                     )
>             })
>         }
...

> 
>         Device (L000)
>         {
>             Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
>             Name (_UID, Zero)  // _UID: Unique ID
>             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
>             {
>                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
>                 {
>                     0x00000023,
>                 }
>             })
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>             {
>                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
>                 {
>                     0x00000023,
>                 }
>             })
>             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
>             {
>             }
>         }

...

> 
>         Device (PCI0)
>         {
>             Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
>             Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
>             Name (_SEG, Zero)  // _SEG: PCI Segment
>             Name (_BBN, Zero)  // _BBN: BIOS Bus Number
>             Name (_UID, Zero)  // _UID: Unique ID
>             Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
>             Name (_CCA, One)  // _CCA: Cache Coherency Attribute
>             Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
>             {
>                 Package (0x04)
>                 {
>                     0xFFFF,
>                     Zero,
>                     L000,
>                     Zero
>                 },

...

>             })
>             Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
>             {
>                 Return (0x0000004010000000)
>             }
> 
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>             {
>                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
>                     0x0000,             // Granularity
>                     0x0000,             // Range Minimum
>                     0x00FF,             // Range Maximum
>                     0x0000,             // Translation Offset
>                     0x0100,             // Length
>                     ,, )
>                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>                     0x00000000,         // Granularity
>                     0x10000000,         // Range Minimum
>                     0x3EFEFFFF,         // Range Maximum
>                     0x00000000,         // Translation Offset
>                     0x2EFF0000,         // Length
>                     ,, , AddressRangeMemory, TypeStatic)
>                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
>                     0x00000000,         // Granularity
>                     0x00000000,         // Range Minimum
>                     0x0000FFFF,         // Range Maximum
>                     0x3EFF0000,         // Translation Offset
>                     0x00010000,         // Length
>                     ,, , TypeStatic, DenseTranslation)
>                 QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>                     0x0000000000000000, // Granularity
>                     0x0000008000000000, // Range Minimum
>                     0x000000FFFFFFFFFF, // Range Maximum
>                     0x0000000000000000, // Translation Offset
>                     0x0000008000000000, // Length
>                     ,, , AddressRangeMemory, TypeStatic)
>             })
>             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
>             {
>                 CreateDWordField (Arg3, Zero, CDW1)
>                 If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
>                 {
>                     CreateDWordField (Arg3, 0x04, CDW2)
>                     CreateDWordField (Arg3, 0x08, CDW3)
>                     Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
>                     Local0 &= 0x1E

This being one of those differences.

>                     If ((Arg1 != One))
>                     {
>                         CDW1 |= 0x08
>                     }
> 
>                     If ((CDW3 != Local0))
>                     {
>                         CDW1 |= 0x10
>                     }
> 
>                     CDW3 = Local0
>                 }
>                 Else
>                 {
>                     CDW1 |= 0x04
>                 }
> 
>                 Return (Arg3)
>             }
> 
>             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
>             {
>                 If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
>                 {
>                     If ((Arg2 == Zero))
>                     {
>                         Return (Buffer (One)
>                         {
>                              0x01                                             // .
>                         })
>                     }
>                 }
> 
>                 Return (Buffer (One)
>                 {
>                      0x00                                             // .
>                 })
>             }
> 
>             Device (RES0)
>             {
>                 Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
>                 Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>                 {
>                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>                         0x0000000000000000, // Granularity
>                         0x0000004010000000, // Range Minimum
>                         0x000000401FFFFFFF, // Range Maximum
>                         0x0000000000000000, // Translation Offset
>                         0x0000000010000000, // Length
>                         ,, , AddressRangeMemory, TypeStatic)
>                 })
>             }
>         }
> 
>         Device (\_SB.GED)
>         {
>             Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
>             Name (_UID, "GED")  // _UID: Unique ID
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>             {
>                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
>                 {
>                     0x00000029,
>                 }
>             })
>             OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
>             Field (EREG, DWordAcc, NoLock, WriteAsZeros)
>             {
>                 ESEL,   32
>             }
> 
>             Method (_EVT, 1, Serialized)  // _EVT: Event
>             {
>                 Local0 = ESEL /* \_SB_.GED_.ESEL */
>                 If (((Local0 & 0x02) == 0x02))
>                 {
>                     Notify (PWRB, 0x80) // Status Change
>                 }
> 
>                 If (((Local0 & 0x10) == 0x10))

And this being another.

>                 {
>                     Acquire (\_SB.PCI0.BLCK, 0xFFFF)
>                     \_SB.PCI0.PCNT ()
>                     Release (\_SB.PCI0.BLCK)
>                 }
>             }
>         }
> 
>         Device (PWRB)
>         {
>             Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
>             Name (_UID, Zero)  // _UID: Unique ID
>         }
>     }
> 
>     Scope (_SB.PCI0)

And all this.

>     {
>         OperationRegion (PCST, SystemMemory, 0x090C0000, 0x08)
>         Field (PCST, DWordAcc, NoLock, WriteAsZeros)
>         {
>             PCIU,   32,
>             PCID,   32
>         }
> 
>         OperationRegion (SEJ, SystemMemory, 0x090C0008, 0x04)
>         Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
>         {
>             B0EJ,   32
>         }
> 
>         OperationRegion (BNMR, SystemMemory, 0x090C0010, 0x08)
>         Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
>         {
>             BNUM,   32,
>             PIDX,   32
>         }
> 
>         Mutex (BLCK, 0x00)
>         Method (PCEJ, 2, NotSerialized)
>         {
>             Acquire (BLCK, 0xFFFF)
>             BNUM = Arg0
>             B0EJ = (One << Arg1)
>             Release (BLCK)
>             Return (Zero)
>         }
> 
>         Method (AIDX, 2, NotSerialized)
>         {
>             Acquire (BLCK, 0xFFFF)
>             BNUM = Arg0
>             PIDX = (One << Arg1)
>             Local0 = PIDX /* \_SB_.PCI0.PIDX */
>             Release (BLCK)
>             Return (Local0)
>         }
> 
>         Method (PDSM, 5, Serialized)
>         {
>             If ((Arg2 == Zero))
>             {
>                 Local0 = Buffer (One)
>                     {
>                          0x00                                             // .
>                     }
>                 If ((Arg0 != ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
>                 {
>                     Return (Local0)
>                 }
> 
>                 If ((Arg1 < 0x02))
>                 {
>                     Return (Local0)
>                 }
> 
>                 Local1 = Zero
>                 Local2 = AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One]
>                     ))
>                 If (!((Local2 == Zero) | (Local2 == 0xFFFFFFFF)))
>                 {
>                     Local1 |= One
>                     Local1 |= (One << 0x07)
>                 }
> 
>                 Local0 [Zero] = Local1
>                 Return (Local0)
>             }
> 
>             If ((Arg2 == 0x07))
>             {
>                 Local2 = AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One]
>                     ))
>                 Local0 = Package (0x02) {}
>                 If (!((Local2 == Zero) || (Local2 == 0xFFFFFFFF)))
>                 {
>                     Local0 [Zero] = Local2
>                     Local0 [One] = ""
>                 }
> 
>                 Return (Local0)
>             }
>         }
>     }
> 
>     Scope (\_SB.PCI0)
>     {
>         Method (EDSM, 5, Serialized)
>         {
>             If ((Arg2 == Zero))
>             {
>                 Local0 = Buffer (One)
>                     {
>                          0x00                                             // .
>                     }
>                 If ((Arg0 != ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
>                 {
>                     Return (Local0)
>                 }
> 
>                 If ((Arg1 < 0x02))
>                 {
>                     Return (Local0)
>                 }
> 
>                 Local0 [Zero] = 0x81
>                 Return (Local0)
>             }
> 
>             If ((Arg2 == 0x07))
>             {
>                 Local0 = Package (0x02)
>                     {
>                         Zero,
>                         ""
>                     }
>                 Local1 = DerefOf (Arg4 [Zero])
>                 Local0 [Zero] = Local1
>                 Return (Local0)
>             }
>         }
> 
>         Device (S00)
>         {
>             Name (_ADR, Zero)  // _ADR: Address
>         }
> 
>         Device (S08)
>         {
>             Name (_ADR, 0x00010000)  // _ADR: Address
>         }
> 
>         Device (S38)
>         {
>             Name (_ADR, 0x00070000)  // _ADR: Address
>             Device (S00)
>             {
>                 Name (_ADR, Zero)  // _ADR: Address
>             }
> 
>             Name (BSEL, One)
>             Scope (S00)
>             {
>                 Name (ASUN, Zero)

All this stuff as well.

>                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
>                 {
>                     Local0 = Package (0x02)
>                         {
>                             Zero,
>                             Zero
>                         }
>                     Local0 [Zero] = BSEL /* \_SB_.PCI0.S38_.BSEL */
>                     Local0 [One] = ASUN /* \_SB_.PCI0.S38_.S00_.ASUN */
>                     Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
>                 }
> 
>                 Name (_SUN, Zero)  // _SUN: Slot User Number
>                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
>                 {
>                     PCEJ (BSEL, _SUN)
>                 }
>             }
> 
>             Method (DVNT, 2, NotSerialized)
>             {
>                 If ((Arg0 & One))
>                 {
>                     Notify (S00, Arg1)
>                 }
>             }
>         }
> 
>         Name (BSEL, Zero)
>         Scope (S00)
>         {
>             Name (ASUN, Zero)
>             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
>             {
>                 Local0 = Package (0x02)
>                     {
>                         Zero,
>                         Zero
>                     }
>                 Local0 [Zero] = BSEL /* \_SB_.PCI0.BSEL */
>                 Local0 [One] = ASUN /* \_SB_.PCI0.S00_.ASUN */
>                 Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
>             }
> 
>             Name (_SUN, Zero)  // _SUN: Slot User Number
>             Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
>             {
>                 PCEJ (BSEL, _SUN)
>             }
>         }
> 
>         Scope (S08)
>         {
>             Name (ASUN, One)
>             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
>             {
>                 Local0 = Package (0x02)
>                     {
>                         Zero,
>                         Zero
>                     }
>                 Local0 [Zero] = BSEL /* \_SB_.PCI0.BSEL */
>                 Local0 [One] = ASUN /* \_SB_.PCI0.S08_.ASUN */
>                 Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
>             }
> 
>             Name (_SUN, One)  // _SUN: Slot User Number
>             Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
>             {
>                 PCEJ (BSEL, _SUN)
>             }
>         }
> 
>         Method (DVNT, 2, NotSerialized)
>         {
>             If ((Arg0 & One))
>             {
>                 Notify (S00, Arg1)
>             }
> 
>             If ((Arg0 & 0x02))
>             {
>                 Notify (S08, Arg1)
>             }
>         }
> 
>         Device (PHPR)
>         {
>             Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
>             Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
>             Name (_STA, 0x0B)  // _STA: Status
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>             {
>                 IO (Decode16,
>                     0x0000,             // Range Minimum
>                     0x0000,             // Range Maximum
>                     0x01,               // Alignment
>                     0x18,               // Length
>                     )
>             })
>         }
> 
>         Scope (S38)
>         {
>             Method (PCNT, 0, NotSerialized)
>             {
>                 BNUM = One
>                 DVNT (PCIU, One)
>                 DVNT (PCID, 0x03)
>             }
>         }
> 
>         Method (PCNT, 0, NotSerialized)
>         {
>             BNUM = Zero
>             DVNT (PCIU, One)
>             DVNT (PCID, 0x03)
>             ^S38.PCNT ()
>         }
>     }
> }
> 
> Signed-off-by: Eric Auger <eric.auger@redhat.com>

Looks plausible so unless Igor or Michael aren't keen on it, please crop to
highlight the bits that need focus.  With that.

Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>

> ---
>  tests/qtest/bios-tables-test-allowed-diff.h |   1 -
>  tests/data/acpi/aarch64/virt/DSDT.acpipcihp | Bin 0 -> 6202 bytes
>  2 files changed, 1 deletion(-)
> 
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index dc3ab24d05..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/aarch64/virt/DSDT.acpipcihp",
> diff --git a/tests/data/acpi/aarch64/virt/DSDT.acpipcihp b/tests/data/acpi/aarch64/virt/DSDT.acpipcihp
> index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8d55a877a40cb4c4dffdc70378204e12d2261a75 100644
> GIT binary patch
> literal 6202
> zcmb`LOK;oQ6@U+^7e!GrCDWEH%a*2@Oqx!cQdVMn(o7nOlx;bZ%!+m#fI&%T;MR@<
> z3^B<RaDxDj2FSSC6l0@Bmnz^NQealI>#mEgyXhb3t||^m+4nTJivh}otou0MJs)|l
> zaYfTMx9^q!#6PvRj19ZidTbfBTCFAk0Di~6>hBHViEFo9XIM6LU6<UAj+t#5R!7(M
> z6_DJWjtS22uCdjdj177lx?ZnGW0GqO?0i`+zD)xH)1U(UE(wD00RS9>GhAKUHP%Az  
> zFWS8wUDuaDa_#M=oRM6^XbK@BFXuvpm@Y+;&G@6iB&BYDu%+wzovURpBd->hL5vpH
> zSwuZtog#4A_Yfk3s7HtvX0gOW$RdvsXBbN?qrqjwc#I^&Xt0diTt=M7kQl~omT`y6
> zNbndk!??pTmbr{1kD)M(WtOqRWu$nF9K%>)8LM1|#AB!oW0hrm!eyj+i~_^>gkjX9  
> z%|S~{mU#?~VccaI+%lz`WK!z04C7}kgI}i#FOL$#xW_X1b(-Zd$_(REmcg&n9FI|9
> z824EQzfPxkj75g=bC$ucQ<cZ4F^mT+gI}k49^(fLqscP(bz0ytK4cgzmcg&nX&&Pv
> zhG8&_C4QZ1JjM?hhRHJcbvnai{D@(+Sq8sOXL*btGmJHs!LQRIk8z7(tg{S$otAhE
> zondUS41S%?@fb@Cqr)=zbz0^zZZnKcmcg&nc^+e#VLW6R{5q}h7^@7U%QE<Ny1--H
> zWf(n%(cstVB9C#8Vf0xBzfP+>#(jpd6)`&T?&X2V>RY;@uU#HKtbv`+$(i7sb1j%3  
> z9%5*pmUQibEjS@6N{65XiJ(5@pu)aO)Fx&X?H+={!w8$!bq*`+qpWBbQC5tyKH{*#
> zzAM(5WptvahODN(iua^rMy&>(`P%Csxvf_J@;=(zgM3x4SYSX0_Mrwk)WC#&_zfJw
> zXRr@|kl>hR4YsGdFXWR#CY~9O0iO+o--WKO*P)<bzbxYInKWWuU2i}k8&}3-0WhY1  
> z*}|wLDCEMiAg*!M#7I4wD+ZBEmo1E(OcldOJ&F_|h@7kv3nC{O#Dd7l)L0l<k0N7X
> z<Ybk25IM;p9z;&2#>2=-^6@ZovPyz@CWvQ(dM3ii$tp?WnIxV`>Y1dTDdL$To+;{?
> zqMj1*l!&K9JtgXyCZ1{HnWmm;>M0XXnRv?7Q>LC7;+Y|y8S0s#o(l0)h^In573!HK  
> zo>}6VrJh;pnIoP#;+dnKIqEq@Jg11~6!n~<o+|NFiKj|ERqB~1o_XS#r=EH0Ss<PT  
> z;#r`c1?o9XJg150H1(XOo*MDgh^Iz9HR?G-JZFgK4E3C$p0mVrmUzxm&spkOB%Vd$
> zS)`st>RBS5CE{74o+auzM?B|<=N$E%qn>5rStg!k>RG0q^TczWc+OMLdFojqo)zL*  
> zp`I1$xj;M@i01<JT%ewd#B-5&E>h1$>RBb8RpMEtp4Ew`rn*L}2^Tqh>w~{<!V}9z
> zN`85o1yKRK#`qz8T?A0@We#5Ic>HhtS%#yxzAl2G#KIQ9IG8@Z4<Nw1kC~X@ItgZs  
> z!%57A{l}nnQ|^{+#NQo(VeZyP{lxh}ep*(Y-rpPls#YHSarb5OFQ5MHSMQGGxMA)t
> zy*rX6!`yB7_~E_s<VA0!o}C{GuQ5CrtB<D7&V%8wPsI`6!=67YVHcw67f0GpT+{Bw
> zM<0Z1{&nTMf7o|^+xw>Y&)(d(MsJipe+C!%m>}Q>IKy6i(6*VwjS;-U!WUl+S%1$w
> zxVz)=xQcg~xm5g)Z^RyCp4`HBZtHE+4c|S4FWl;QNZRR`+4Z(b4wNzBW*B<X9<<j%
> z0g%#i+<BA1rqQ<B-J13=;kF-br+sXBBlY~1C*$Gdt+hL7$tR<G*r9@~I@g~3G={6=
> zd9Bqo9*)OMhh_A)of}LC&TxivNC{I74~j-~gj3DgKm}pWiDlT^n4OZACFhNbO~W!e
> zJ2lJbm^J6bZg0AvNH~t!W7BBq?ai8V((3mHps15jY#OcpPOoNl%*QoHz&t>^ZW--O  
> z(YY4p?H}L_|5!K#q&PRQ`vSC&n;r8pZx*tA{P3c=o@UCHY4@@tGkN|De0<#AsC>q+
> ziwkd*`op0tUU)w2`MAher_TYtI(;s{(^2{C_4!jcf2ssE|9Vf@d%bro$SK(K_f9>4  
> z3vaY?{!C8&cc5PoMO^cnt7!iz2KZSx^#r)^)CV`hg2B72JxsKNjF-Px!t$Fahf0t`
> zAt6E*JU<Y)Owbu-Y+ZLHw`mT*8BW>yYS>V4i#x+L$!=Wrq=3wqT6ViDs9W&>(X@B^
> zpxwlMruc=p2;liRArQmCKn?Hx!QrzbPjZ9#1-HGa3;2+6F7{~!^HG0W9A#b|2=Ers
> zhrvSd|6VBIt-3+t!uL#E;3ZytFY%G`>OdCJV%0r#hMRF~!x~)es;0gi?SISY)HXhU
> z=|BJS*R?P9Uwr=M7oY9FU|yOJ?0i<1*Moo2Lg^UP>-b!>D(+tJ1>6<5IBq>5`eMp4
> R?PfR*|6}}@w~&H!{sU733QPb1
> 
> literal 0
> HcmV?d00001
>
Re: [PATCH v5 36/36] qtest/bios-tables-test: Generate reference blob for DSDT.acpipcihp
Posted by Eric Auger 4 months, 1 week ago
Hi Jonathan,

On 7/3/25 5:09 PM, Jonathan Cameron wrote:
> On Thu,  3 Jul 2025 14:35:36 +0200
> Eric Auger <eric.auger@redhat.com> wrote:
>
>> The disassembled DSDT table is given below.
> I think the aim for this one should be to highlight the blobs where it differs
> from the previous rather than having the whole thing.

makes sense. I will crop the commit message accordingly.

Thanks!

Eric
>
>
>> /*
>>  * Intel ACPI Component Architecture
>>  * AML/ASL+ Disassembler version 20210604 (64-bit version)
>>  * Copyright (c) 2000 - 2021 Intel Corporation
>>  *
>>  * Disassembling to symbolic ASL+ operators
>>  *
>>  * Disassembly of ../tests/data/acpi/aarch64/virt/DSDT.acpipcihp, Thu Jul  3 05:16:27 2025
>>  *
>>  * Original Table Header:
>>  *     Signature        "DSDT"
>>  *     Length           0x0000183A (6202)
>>  *     Revision         0x02
>>  *     Checksum         0x98
>>  *     OEM ID           "BOCHS "
>>  *     OEM Table ID     "BXPC    "
>>  *     OEM Revision     0x00000001 (1)
>>  *     Compiler ID      "BXPC"
>>  *     Compiler Version 0x00000001 (1)
>>  */
>> DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPC    ", 0x00000001)
>> {
>>     Scope (\_SB)
>>     {
>>         Device (C000)
>>         {
>>             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
>>             Name (_UID, Zero)  // _UID: Unique ID
>>         }
>>
>>         Device (COM0)
>>         {
>>             Name (_HID, "ARMH0011")  // _HID: Hardware ID
>>             Name (_UID, Zero)  // _UID: Unique ID
>>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>             {
>>                 Memory32Fixed (ReadWrite,
>>                     0x09000000,         // Address Base
>>                     0x00001000,         // Address Length
>>                     )
>>                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
>>                 {
>>                     0x00000021,
>>                 }
>>             })
>>         }
>>
>>         Device (FWCF)
>>         {
>>             Name (_HID, "QEMU0002")  // _HID: Hardware ID
>>             Name (_STA, 0x0B)  // _STA: Status
>>             Name (_CCA, One)  // _CCA: Cache Coherency Attribute
>>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>             {
>>                 Memory32Fixed (ReadWrite,
>>                     0x09020000,         // Address Base
>>                     0x00000018,         // Address Length
>>                     )
>>             })
>>         }
> ...
>
>>         Device (L000)
>>         {
>>             Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */)  // _HID: Hardware ID
>>             Name (_UID, Zero)  // _UID: Unique ID
>>             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
>>             {
>>                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
>>                 {
>>                     0x00000023,
>>                 }
>>             })
>>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>             {
>>                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
>>                 {
>>                     0x00000023,
>>                 }
>>             })
>>             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
>>             {
>>             }
>>         }
> ...
>
>>         Device (PCI0)
>>         {
>>             Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
>>             Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
>>             Name (_SEG, Zero)  // _SEG: PCI Segment
>>             Name (_BBN, Zero)  // _BBN: BIOS Bus Number
>>             Name (_UID, Zero)  // _UID: Unique ID
>>             Name (_STR, Unicode ("PCIe 0 Device"))  // _STR: Description String
>>             Name (_CCA, One)  // _CCA: Cache Coherency Attribute
>>             Name (_PRT, Package (0x80)  // _PRT: PCI Routing Table
>>             {
>>                 Package (0x04)
>>                 {
>>                     0xFFFF,
>>                     Zero,
>>                     L000,
>>                     Zero
>>                 },
> ...
>
>>             })
>>             Method (_CBA, 0, NotSerialized)  // _CBA: Configuration Base Address
>>             {
>>                 Return (0x0000004010000000)
>>             }
>>
>>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>             {
>>                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
>>                     0x0000,             // Granularity
>>                     0x0000,             // Range Minimum
>>                     0x00FF,             // Range Maximum
>>                     0x0000,             // Translation Offset
>>                     0x0100,             // Length
>>                     ,, )
>>                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>>                     0x00000000,         // Granularity
>>                     0x10000000,         // Range Minimum
>>                     0x3EFEFFFF,         // Range Maximum
>>                     0x00000000,         // Translation Offset
>>                     0x2EFF0000,         // Length
>>                     ,, , AddressRangeMemory, TypeStatic)
>>                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
>>                     0x00000000,         // Granularity
>>                     0x00000000,         // Range Minimum
>>                     0x0000FFFF,         // Range Maximum
>>                     0x3EFF0000,         // Translation Offset
>>                     0x00010000,         // Length
>>                     ,, , TypeStatic, DenseTranslation)
>>                 QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>>                     0x0000000000000000, // Granularity
>>                     0x0000008000000000, // Range Minimum
>>                     0x000000FFFFFFFFFF, // Range Maximum
>>                     0x0000000000000000, // Translation Offset
>>                     0x0000008000000000, // Length
>>                     ,, , AddressRangeMemory, TypeStatic)
>>             })
>>             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
>>             {
>>                 CreateDWordField (Arg3, Zero, CDW1)
>>                 If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
>>                 {
>>                     CreateDWordField (Arg3, 0x04, CDW2)
>>                     CreateDWordField (Arg3, 0x08, CDW3)
>>                     Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
>>                     Local0 &= 0x1E
> This being one of those differences.
>
>>                     If ((Arg1 != One))
>>                     {
>>                         CDW1 |= 0x08
>>                     }
>>
>>                     If ((CDW3 != Local0))
>>                     {
>>                         CDW1 |= 0x10
>>                     }
>>
>>                     CDW3 = Local0
>>                 }
>>                 Else
>>                 {
>>                     CDW1 |= 0x04
>>                 }
>>
>>                 Return (Arg3)
>>             }
>>
>>             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
>>             {
>>                 If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
>>                 {
>>                     If ((Arg2 == Zero))
>>                     {
>>                         Return (Buffer (One)
>>                         {
>>                              0x01                                             // .
>>                         })
>>                     }
>>                 }
>>
>>                 Return (Buffer (One)
>>                 {
>>                      0x00                                             // .
>>                 })
>>             }
>>
>>             Device (RES0)
>>             {
>>                 Name (_HID, "PNP0C02" /* PNP Motherboard Resources */)  // _HID: Hardware ID
>>                 Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>                 {
>>                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>>                         0x0000000000000000, // Granularity
>>                         0x0000004010000000, // Range Minimum
>>                         0x000000401FFFFFFF, // Range Maximum
>>                         0x0000000000000000, // Translation Offset
>>                         0x0000000010000000, // Length
>>                         ,, , AddressRangeMemory, TypeStatic)
>>                 })
>>             }
>>         }
>>
>>         Device (\_SB.GED)
>>         {
>>             Name (_HID, "ACPI0013" /* Generic Event Device */)  // _HID: Hardware ID
>>             Name (_UID, "GED")  // _UID: Unique ID
>>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>             {
>>                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
>>                 {
>>                     0x00000029,
>>                 }
>>             })
>>             OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
>>             Field (EREG, DWordAcc, NoLock, WriteAsZeros)
>>             {
>>                 ESEL,   32
>>             }
>>
>>             Method (_EVT, 1, Serialized)  // _EVT: Event
>>             {
>>                 Local0 = ESEL /* \_SB_.GED_.ESEL */
>>                 If (((Local0 & 0x02) == 0x02))
>>                 {
>>                     Notify (PWRB, 0x80) // Status Change
>>                 }
>>
>>                 If (((Local0 & 0x10) == 0x10))
> And this being another.
>
>>                 {
>>                     Acquire (\_SB.PCI0.BLCK, 0xFFFF)
>>                     \_SB.PCI0.PCNT ()
>>                     Release (\_SB.PCI0.BLCK)
>>                 }
>>             }
>>         }
>>
>>         Device (PWRB)
>>         {
>>             Name (_HID, "PNP0C0C" /* Power Button Device */)  // _HID: Hardware ID
>>             Name (_UID, Zero)  // _UID: Unique ID
>>         }
>>     }
>>
>>     Scope (_SB.PCI0)
> And all this.
>
>>     {
>>         OperationRegion (PCST, SystemMemory, 0x090C0000, 0x08)
>>         Field (PCST, DWordAcc, NoLock, WriteAsZeros)
>>         {
>>             PCIU,   32,
>>             PCID,   32
>>         }
>>
>>         OperationRegion (SEJ, SystemMemory, 0x090C0008, 0x04)
>>         Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
>>         {
>>             B0EJ,   32
>>         }
>>
>>         OperationRegion (BNMR, SystemMemory, 0x090C0010, 0x08)
>>         Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
>>         {
>>             BNUM,   32,
>>             PIDX,   32
>>         }
>>
>>         Mutex (BLCK, 0x00)
>>         Method (PCEJ, 2, NotSerialized)
>>         {
>>             Acquire (BLCK, 0xFFFF)
>>             BNUM = Arg0
>>             B0EJ = (One << Arg1)
>>             Release (BLCK)
>>             Return (Zero)
>>         }
>>
>>         Method (AIDX, 2, NotSerialized)
>>         {
>>             Acquire (BLCK, 0xFFFF)
>>             BNUM = Arg0
>>             PIDX = (One << Arg1)
>>             Local0 = PIDX /* \_SB_.PCI0.PIDX */
>>             Release (BLCK)
>>             Return (Local0)
>>         }
>>
>>         Method (PDSM, 5, Serialized)
>>         {
>>             If ((Arg2 == Zero))
>>             {
>>                 Local0 = Buffer (One)
>>                     {
>>                          0x00                                             // .
>>                     }
>>                 If ((Arg0 != ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
>>                 {
>>                     Return (Local0)
>>                 }
>>
>>                 If ((Arg1 < 0x02))
>>                 {
>>                     Return (Local0)
>>                 }
>>
>>                 Local1 = Zero
>>                 Local2 = AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One]
>>                     ))
>>                 If (!((Local2 == Zero) | (Local2 == 0xFFFFFFFF)))
>>                 {
>>                     Local1 |= One
>>                     Local1 |= (One << 0x07)
>>                 }
>>
>>                 Local0 [Zero] = Local1
>>                 Return (Local0)
>>             }
>>
>>             If ((Arg2 == 0x07))
>>             {
>>                 Local2 = AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One]
>>                     ))
>>                 Local0 = Package (0x02) {}
>>                 If (!((Local2 == Zero) || (Local2 == 0xFFFFFFFF)))
>>                 {
>>                     Local0 [Zero] = Local2
>>                     Local0 [One] = ""
>>                 }
>>
>>                 Return (Local0)
>>             }
>>         }
>>     }
>>
>>     Scope (\_SB.PCI0)
>>     {
>>         Method (EDSM, 5, Serialized)
>>         {
>>             If ((Arg2 == Zero))
>>             {
>>                 Local0 = Buffer (One)
>>                     {
>>                          0x00                                             // .
>>                     }
>>                 If ((Arg0 != ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
>>                 {
>>                     Return (Local0)
>>                 }
>>
>>                 If ((Arg1 < 0x02))
>>                 {
>>                     Return (Local0)
>>                 }
>>
>>                 Local0 [Zero] = 0x81
>>                 Return (Local0)
>>             }
>>
>>             If ((Arg2 == 0x07))
>>             {
>>                 Local0 = Package (0x02)
>>                     {
>>                         Zero,
>>                         ""
>>                     }
>>                 Local1 = DerefOf (Arg4 [Zero])
>>                 Local0 [Zero] = Local1
>>                 Return (Local0)
>>             }
>>         }
>>
>>         Device (S00)
>>         {
>>             Name (_ADR, Zero)  // _ADR: Address
>>         }
>>
>>         Device (S08)
>>         {
>>             Name (_ADR, 0x00010000)  // _ADR: Address
>>         }
>>
>>         Device (S38)
>>         {
>>             Name (_ADR, 0x00070000)  // _ADR: Address
>>             Device (S00)
>>             {
>>                 Name (_ADR, Zero)  // _ADR: Address
>>             }
>>
>>             Name (BSEL, One)
>>             Scope (S00)
>>             {
>>                 Name (ASUN, Zero)
> All this stuff as well.
>
>>                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
>>                 {
>>                     Local0 = Package (0x02)
>>                         {
>>                             Zero,
>>                             Zero
>>                         }
>>                     Local0 [Zero] = BSEL /* \_SB_.PCI0.S38_.BSEL */
>>                     Local0 [One] = ASUN /* \_SB_.PCI0.S38_.S00_.ASUN */
>>                     Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
>>                 }
>>
>>                 Name (_SUN, Zero)  // _SUN: Slot User Number
>>                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
>>                 {
>>                     PCEJ (BSEL, _SUN)
>>                 }
>>             }
>>
>>             Method (DVNT, 2, NotSerialized)
>>             {
>>                 If ((Arg0 & One))
>>                 {
>>                     Notify (S00, Arg1)
>>                 }
>>             }
>>         }
>>
>>         Name (BSEL, Zero)
>>         Scope (S00)
>>         {
>>             Name (ASUN, Zero)
>>             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
>>             {
>>                 Local0 = Package (0x02)
>>                     {
>>                         Zero,
>>                         Zero
>>                     }
>>                 Local0 [Zero] = BSEL /* \_SB_.PCI0.BSEL */
>>                 Local0 [One] = ASUN /* \_SB_.PCI0.S00_.ASUN */
>>                 Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
>>             }
>>
>>             Name (_SUN, Zero)  // _SUN: Slot User Number
>>             Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
>>             {
>>                 PCEJ (BSEL, _SUN)
>>             }
>>         }
>>
>>         Scope (S08)
>>         {
>>             Name (ASUN, One)
>>             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
>>             {
>>                 Local0 = Package (0x02)
>>                     {
>>                         Zero,
>>                         Zero
>>                     }
>>                 Local0 [Zero] = BSEL /* \_SB_.PCI0.BSEL */
>>                 Local0 [One] = ASUN /* \_SB_.PCI0.S08_.ASUN */
>>                 Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
>>             }
>>
>>             Name (_SUN, One)  // _SUN: Slot User Number
>>             Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device, x=0-9
>>             {
>>                 PCEJ (BSEL, _SUN)
>>             }
>>         }
>>
>>         Method (DVNT, 2, NotSerialized)
>>         {
>>             If ((Arg0 & One))
>>             {
>>                 Notify (S00, Arg1)
>>             }
>>
>>             If ((Arg0 & 0x02))
>>             {
>>                 Notify (S08, Arg1)
>>             }
>>         }
>>
>>         Device (PHPR)
>>         {
>>             Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: Hardware ID
>>             Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
>>             Name (_STA, 0x0B)  // _STA: Status
>>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
>>             {
>>                 IO (Decode16,
>>                     0x0000,             // Range Minimum
>>                     0x0000,             // Range Maximum
>>                     0x01,               // Alignment
>>                     0x18,               // Length
>>                     )
>>             })
>>         }
>>
>>         Scope (S38)
>>         {
>>             Method (PCNT, 0, NotSerialized)
>>             {
>>                 BNUM = One
>>                 DVNT (PCIU, One)
>>                 DVNT (PCID, 0x03)
>>             }
>>         }
>>
>>         Method (PCNT, 0, NotSerialized)
>>         {
>>             BNUM = Zero
>>             DVNT (PCIU, One)
>>             DVNT (PCID, 0x03)
>>             ^S38.PCNT ()
>>         }
>>     }
>> }
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> Looks plausible so unless Igor or Michael aren't keen on it, please crop to
> highlight the bits that need focus.  With that.
>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
>
>> ---
>>  tests/qtest/bios-tables-test-allowed-diff.h |   1 -
>>  tests/data/acpi/aarch64/virt/DSDT.acpipcihp | Bin 0 -> 6202 bytes
>>  2 files changed, 1 deletion(-)
>>
>> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
>> index dc3ab24d05..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/aarch64/virt/DSDT.acpipcihp",
>> diff --git a/tests/data/acpi/aarch64/virt/DSDT.acpipcihp b/tests/data/acpi/aarch64/virt/DSDT.acpipcihp
>> index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8d55a877a40cb4c4dffdc70378204e12d2261a75 100644
>> GIT binary patch
>> literal 6202
>> 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
>> R?PfR*|6}}@w~&H!{sU733QPb1
>>
>> literal 0
>> HcmV?d00001
>>