Add complete guide and all config variants
This commit is contained in:
54
hackintosh-guide/docs/AcpiSamples/Source/SSDT-PMC.dsl
Executable file
54
hackintosh-guide/docs/AcpiSamples/Source/SSDT-PMC.dsl
Executable file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Intel 300-series PMC support for macOS
|
||||
*
|
||||
* Starting from Z390 chipsets PMC (D31:F2) is only available through MMIO.
|
||||
* Since there is no standard device for PMC in ACPI, Apple introduced its
|
||||
* own naming "APP9876" to access this device from AppleIntelPCHPMC driver.
|
||||
* To avoid confusion we disable this device for all other operating systems,
|
||||
* as they normally use another non-standard device with "PNP0C02" HID and
|
||||
* "PCHRESV" UID.
|
||||
*
|
||||
* On certain implementations, including APTIO V, PMC initialisation is
|
||||
* required for NVRAM access. Otherwise it will freeze in SMM mode.
|
||||
* The reason for this is rather unclear. Note, that PMC and SPI are
|
||||
* located in separate memory regions and PCHRESV maps both, yet only
|
||||
* PMC region is used by AppleIntelPCHPMC:
|
||||
* 0xFE000000~0xFE00FFFF - PMC MBAR
|
||||
* 0xFE010000~0xFE010FFF - SPI BAR0
|
||||
* 0xFE020000~0xFE035FFF - SerialIo BAR in ACPI mode
|
||||
*
|
||||
* PMC device has nothing to do to LPC bus, but is added to its scope for
|
||||
* faster initialisation. If we add it to PCI0, where it normally exists,
|
||||
* it will start in the end of PCI configuration, which is too late for
|
||||
* NVRAM support.
|
||||
*/
|
||||
DefinitionBlock ("", "SSDT", 2, "ACDT", "PMCR", 0x00001000)
|
||||
{
|
||||
External (_SB_.PCI0.LPCB, DeviceObj)
|
||||
|
||||
Scope (_SB.PCI0.LPCB)
|
||||
{
|
||||
Device (PMCR)
|
||||
{
|
||||
Name (_HID, EisaId ("APP9876")) // _HID: Hardware ID
|
||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
||||
{
|
||||
If (_OSI ("Darwin"))
|
||||
{
|
||||
Return (0x0B)
|
||||
}
|
||||
Else
|
||||
{
|
||||
Return (Zero)
|
||||
}
|
||||
}
|
||||
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
|
||||
{
|
||||
Memory32Fixed (ReadWrite,
|
||||
0xFE000000, // Address Base
|
||||
0x00010000, // Address Length
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user