/* SPDX-License-Identifier: GPL-2.0-or-later */ /* Enable ACPI _SWS methods */ #include Name (_S0, Package (0x04) // mandatory system state { 0x00, 0x00, 0x00, 0x00 }) Name (_S5, Package (0x04) // mandatory system state { 0x07, 0x00, 0x00, 0x00 }) /* The APM port can be used for generating software SMIs */ OperationRegion (APMP, SystemIO, 0xb2, 2) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, // APM command APMS, 8 // APM status } /* Port 80 POST */ OperationRegion (DBG0, SystemIO, 0x80, 0x02) Field (DBG0, ByteAcc, Lock, Preserve) { IO80, 8, IO81, 8 } /* IO-Trap at 0x800. * This is the ACPI->SMI communication interface. */ OperationRegion (IO_T, SystemIO, 0x800, 0x10) Field (IO_T, ByteAcc, NoLock, Preserve) { Offset (0x8), TRP0, 8 /* IO-Trap at 0x808 */ } OperationRegion (PSYS, SystemMemory, 0x6D081000, 0x0400) Field (PSYS, ByteAcc, NoLock, Preserve) { PLAT, 32, // Platform ID // IOAPIC APC0, 1, // PCH IOAPIC Enable AP00, 1, // PC00 IOAPIC Enable AP01, 1, // PC01 IOAPIC Enable AP02, 1, // PC02 IOAPIC Enable AP03, 1, // PC03 IOAPIC Enable AP04, 1, // PC04 IOAPIC Enable AP05, 1, // PC05 IOAPIC Enable AP06, 1, // PC06 IOAPIC Enable AP07, 1, // PC07 IOAPIC Enable AP08, 1, // PC08 IOAPIC Enable AP09, 1, // PC09 IOAPIC Enable AP10, 1, // PC10 IOAPIC Enable AP11, 1, // PC11 IOAPIC Enable AP12, 1, // PC12 IOAPIC Enable AP13, 1, // PC13 IOAPIC Enable AP14, 1, // PC14 IOAPIC Enable AP15, 1, // PC15 IOAPIC Enable AP16, 1, // PC16 IOAPIC Enable AP17, 1, // PC17 IOAPIC Enable AP18, 1, // PC18 IOAPIC Enable AP19, 1, // PC19 IOAPIC Enable AP20, 1, // PC20 IOAPIC Enable AP21, 1, // PC21 IOAPIC Enable AP22, 1, // PC22 IOAPIC Enable AP23, 1, // PC23 IOAPIC Enable RESA, 7, SKOV, 1, // Override Socket APIC Id RES0, 7, // Power Management TPME, 1, CSEN, 1, C3EN, 1, C6EN, 1, C7EN, 1, MWOS, 1, PSEN, 1, EMCA, 1, HWAL, 2, KPRS, 1, MPRS, 1, TSEN, 1, FGTS, 1, OSCX, 1, RESX, 1, // RAS CPHP, 8, IIOP, 8, IIOH, 64, PRBM, 32, P0ID, 32, P1ID, 32, P2ID, 32, P3ID, 32, P4ID, 32, P5ID, 32, P6ID, 32, P7ID, 32, P0BM, 64, P1BM, 64, P2BM, 64, P3BM, 64, P4BM, 64, P5BM, 64, P6BM, 64, P7BM, 64, MEBM, 16, MEBC, 16, CFMM, 32, TSSY, 32, // TODO: This is TSSZ in system booted from production FW M0BS, 64, M1BS, 64, M2BS, 64, M3BS, 64, M4BS, 64, M5BS, 64, M6BS, 64, M7BS, 64, M0RN, 64, M1RN, 64, M2RN, 64, M3RN, 64, M4RN, 64, M5RN, 64, M6RN, 64, M7RN, 64, SMI0, 32, SMI1, 32, SMI2, 32, SMI3, 32, SCI0, 32, SCI1, 32, SCI2, 32, SCI3, 32, MADD, 64, CUU0, 128, CUU1, 128, CUU2, 128, CUU3, 128, CUU4, 128, CUU5, 128, CUU6, 128, CUU7, 128, CPSP, 8, ME00, 128, ME01, 128, ME10, 128, ME11, 128, ME20, 128, ME21, 128, ME30, 128, ME31, 128, ME40, 128, ME41, 128, ME50, 128, ME51, 128, ME60, 128, ME61, 128, ME70, 128, ME71, 128, MESP, 16, LDIR, 64, PRID, 32, AHPE, 8, // VTD DHRD, 192, ATSR, 192, RHSA, 192, // SR-IOV WSIC, 8, WSIS, 16, WSIB, 8, WSID, 8, WSIF, 8, WSTS, 8, WHEA, 8, // BIOS Guard BGMA, 64, BGMS, 8, BGIO, 16, BGIL, 8, CNBS, 8, // USB3 XHMD, 8, SBV1, 8, SBV2, 8, // HWPM HWEN, 2, ACEN, 1, HWPI, 1, RES1, 4, // IIO BB00, 8, BB01, 8, BB02, 8, BB03, 8, BB04, 8, BB05, 8, BB06, 8, BB07, 8, BB08, 8, BB09, 8, BB10, 8, BB11, 8, BB12, 8, BB13, 8, BB14, 8, BB15, 8, BB16, 8, BB17, 8, BB18, 8, BB19, 8, BB20, 8, BB21, 8, BB22, 8, BB23, 8, BB24, 8, BB25, 8, BB26, 8, BB27, 8, BB28, 8, BB29, 8, BB30, 8, BB31, 8, BB32, 8, BB33, 8, BB34, 8, BB35, 8, BB36, 8, BB37, 8, BB38, 8, BB39, 8, BB40, 8, BB41, 8, BB42, 8, BB43, 8, BB44, 8, BB45, 8, BB46, 8, BB47, 8, SGEN, 8, SG00, 8, SG01, 8, SG02, 8, SG03, 8, SG04, 8, SG05, 8, SG06, 8, SG07, 8, // Performance CLOD, 8, // XTU XTUB, 32, XTUS, 32, XMBA, 32, DDRF, 8, RT3S, 8, RTP0, 8, RTP3, 8, // FPGA FBB0, 8, FBB1, 8, FBB2, 8, FBB3, 8, FBB4, 8, FBB5, 8, FBB6, 8, FBB7, 8, FBL0, 8, FBL1, 8, FBL2, 8, FBL3, 8, FBL4, 8, FBL5, 8, FBL6, 8, FBL7, 8, P0FB, 8, P1FB, 8, P2FB, 8, P3FB, 8, P4FB, 8, P5FB, 8, P6FB, 8, P7FB, 8, FMB0, 32, FMB1, 32, FMB2, 32, FMB3, 32, FMB4, 32, FMB5, 32, FMB6, 32, FMB7, 32, FML0, 32, FML1, 32, FML2, 32, FML3, 32, FML4, 32, FML5, 32, FML6, 32, FML7, 32, FKPB, 32, FKB0, 8, FKB1, 8, FKB2, 8, FKB3, 8, FKB4, 8, FKB5, 8, FKB6, 8, FKB7, 8 } /* SMI I/O Trap */ Method (TRAP, 1, Serialized) { Store (Arg0, SMIF) // SMI Function Store (0, TRP0) // Generate trap Return (SMIF) // Return value of SMI handler } /* * The _PIC method is called by the OS to choose between interrupt * routing via the i8259 interrupt controller or the APIC. * * _PIC is called with a parameter of 0 for i8259 configuration and * with a parameter of 1 for Local Apic/IOAPIC configuration. */ Method (_PIC, 1) { /* Remember the OS' IRQ routing choice. */ Store (Arg0, PICM) } /* * The _PTS method (Prepare To Sleep) is called before the OS is * entering a sleep state. The sleep state number is passed in Arg0 */ Method (_PTS, 1) { } /* The _WAK method is called on system wakeup */ Method (_WAK, 1) { Return (Package (){ 0, 0 }) }