From 14e37f46b1762224f215df884d2f1547ff7198ae Mon Sep 17 00:00:00 2001 From: Eric Auger Date: Mon, 14 Jul 2025 10:05:20 +0200 Subject: [PATCH] qtest/bios-tables-test: Generate reference blob for DSDT.acpipcihp 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 (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 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 Reviewed-by: Jonathan Cameron Reviewed-by: Igor Mammedov Message-Id: <20250714080639.2525563-37-eric.auger@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/data/acpi/aarch64/virt/DSDT.acpipcihp | Bin 0 -> 6202 bytes tests/qtest/bios-tables-test-allowed-diff.h | 1 - 2 files changed, 1 deletion(-) 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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