1ACPI_EXTRACT_ALL_CODE ssdp_misc_aml
2
3DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSU", 0x1)
4{
5
6/****************************************************************
7 * PCI memory ranges
8 ****************************************************************/
9
10    Scope(\) {
11       ACPI_EXTRACT_NAME_DWORD_CONST acpi_pci32_start
12       Name(P0S, 0x12345678)
13       ACPI_EXTRACT_NAME_DWORD_CONST acpi_pci32_end
14       Name(P0E, 0x12345678)
15       ACPI_EXTRACT_NAME_BYTE_CONST acpi_pci64_valid
16       Name(P1V, 0x12)
17       ACPI_EXTRACT_NAME_BUFFER8 acpi_pci64_start
18       Name(P1S, Buffer() { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 })
19       ACPI_EXTRACT_NAME_BUFFER8 acpi_pci64_end
20       Name(P1E, Buffer() { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 })
21       ACPI_EXTRACT_NAME_BUFFER8 acpi_pci64_length
22       Name(P1L, Buffer() { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 })
23    }
24
25
26/****************************************************************
27 * Suspend
28 ****************************************************************/
29
30    Scope(\) {
31    /*
32     * S3 (suspend-to-ram), S4 (suspend-to-disk) and S5 (power-off) type codes:
33     * must match piix4 emulation.
34     */
35
36        ACPI_EXTRACT_NAME_STRING acpi_s3_name
37        Name(_S3, Package(0x04) {
38            One,  /* PM1a_CNT.SLP_TYP */
39            One,  /* PM1b_CNT.SLP_TYP */
40            Zero,  /* reserved */
41            Zero   /* reserved */
42        })
43        ACPI_EXTRACT_NAME_STRING acpi_s4_name
44        ACPI_EXTRACT_PKG_START acpi_s4_pkg
45        Name(_S4, Package(0x04) {
46            0x2,  /* PM1a_CNT.SLP_TYP */
47            0x2,  /* PM1b_CNT.SLP_TYP */
48            Zero,  /* reserved */
49            Zero   /* reserved */
50        })
51        Name(_S5, Package(0x04) {
52            Zero,  /* PM1a_CNT.SLP_TYP */
53            Zero,  /* PM1b_CNT.SLP_TYP */
54            Zero,  /* reserved */
55            Zero   /* reserved */
56        })
57    }
58
59    External(\_SB.PCI0, DeviceObj)
60    External(\_SB.PCI0.ISA, DeviceObj)
61
62    Scope(\_SB.PCI0.ISA) {
63        Device(PEVT) {
64            Name(_HID, "QEMU0001")
65            /* PEST will be patched to be Zero if no such device */
66            ACPI_EXTRACT_NAME_WORD_CONST ssdt_isa_pest
67            Name(PEST, 0xFFFF)
68            OperationRegion(PEOR, SystemIO, PEST, 0x01)
69            Field(PEOR, ByteAcc, NoLock, Preserve) {
70                PEPT,   8,
71            }
72
73            Method(_STA, 0, NotSerialized) {
74                Store(PEST, Local0)
75                If (LEqual(Local0, Zero)) {
76                    Return (0x00)
77                } Else {
78                    Return (0x0F)
79                }
80            }
81
82            Method(RDPT, 0, NotSerialized) {
83                Store(PEPT, Local0)
84                Return (Local0)
85            }
86
87            Method(WRPT, 1, NotSerialized) {
88                Store(Arg0, PEPT)
89            }
90
91            Name(_CRS, ResourceTemplate() {
92                IO(Decode16, 0x00, 0x00, 0x01, 0x01, IO)
93            })
94
95            CreateWordField(_CRS, IO._MIN, IOMN)
96            CreateWordField(_CRS, IO._MAX, IOMX)
97
98            Method(_INI, 0, NotSerialized) {
99                Store(PEST, IOMN)
100                Store(PEST, IOMX)
101            }
102        }
103    }
104}
105