diff --git a/.vuepress/config.js b/.vuepress/config.js index 534f4ff3..5edee045 100755 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -177,16 +177,26 @@ module.exports = { ] }, ['/Universal/plug', 'CPU Power Management'], - { - title: 'Methods', - collapsable: true, - sidebarDepth: 2, - children: [ - ['/Universal/plug-methods/prebuilt', 'Prebuilt'], - ['/Universal/plug-methods/ssdttime', 'SSDTTime'], - ['/Universal/plug-methods/manual', 'Manual'], - ] - }, + { + title: 'Methods', + collapsable: true, + sidebarDepth: 2, + children: [ + ['/Universal/plug-methods/prebuilt', 'Prebuilt'], + ['/Universal/plug-methods/ssdttime', 'SSDTTime'], + ['/Universal/plug-methods/manual', 'Manual'], + ] + }, + ['/Universal/plug-alt', 'CPU Power Management and Processor Definition'], + { + title: 'Methods', + collapsable: true, + sidebarDepth: 2, + children: [ + ['/Universal/plug-alt-methods/prebuilt', 'Prebuilt'], + ['/Universal/plug-alt-methods/manual', 'Manual'], + ] + }, ['/Universal/awac', 'AWAC vs RTC'], { title: 'Methods', @@ -242,14 +252,23 @@ module.exports = { ] }, ['/Universal/smbus', 'Fixing SMBus Support'], - { - title: 'Methods', - collapsable: true, - sidebarDepth: 2, - children: [ - ['/Universal/smbus-methods/manual', 'Manual'], - ] - }, + { + title: 'Methods', + collapsable: true, + sidebarDepth: 2, + children: [ + ['/Universal/smbus-methods/manual', 'Manual'], + ] + }, + ['/Universal/brg0', 'Fixing Property Injection'], + { + title: 'Methods', + collapsable: true, + sidebarDepth: 2, + children: [ + ['/Universal/brg0-methods/ssdttime', 'SSDTTime'], + ] + }, ['/Universal/irq', 'IRQ Fix'], ['/Universal/spoof', 'GPU Spoof'], ] diff --git a/Universal/brg0-methods/ssdttime.md b/Universal/brg0-methods/ssdttime.md new file mode 100644 index 00000000..a572a967 --- /dev/null +++ b/Universal/brg0-methods/ssdttime.md @@ -0,0 +1,16 @@ +# Fixing Property Injection: SSDTTime + +This method involves using SSDTTime which automates most of the process. See here on how to use it: [SSDTs: Easy Way](/ssdt-methods/ssdt-easy.md) + +To get SSDT-BRG0, run the following: + +* `7. Dump DSDT` then run `9. PCI Bridge` + +This will provide you with some files, the main one you care about is SSDT-BRG0.**aml**. The DSDT and .dsl are only left for referencing or verification. + + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/brg0.md b/Universal/brg0.md new file mode 100644 index 00000000..1d97248b --- /dev/null +++ b/Universal/brg0.md @@ -0,0 +1,17 @@ +# Fixing Property Injection (SSDT-BRG0) + +* [Fixing Property Injection (SSDT-BRG0)](#fixing-property-injection-ssdt-brg0) + * [What this SSDT does](#what-this-ssdt-does) + * [Methods to make this SSDT](#methods-to-make-this-ssdt) + +## What this SSDT does + +On some platforms, the PCI bridge your GPU is connected to is not defined. +This can prevent Device Properties being added to these devices from your config.plist. +This SSDT fixes that by defining the bridge device (BRG0) and your GPU under that bridge. + +## Methods to make this SSDT + +For SSDT-BRG0, there's currently only one option: + +* [SSDTTime](/Universal/brg0-methods/ssdttime.md) diff --git a/Universal/plug-alt-methods/manual.md b/Universal/plug-alt-methods/manual.md new file mode 100644 index 00000000..a7b1fb5d --- /dev/null +++ b/Universal/plug-alt-methods/manual.md @@ -0,0 +1,19 @@ +# Fixing Power Management and Processor Definition: Manual + +* [Grabbing the SSDT](#grabbing-the-ssdt) +* [Compiling the SSDT](#compiling-the-ssdt) +* [Wrapping up](#wrapping-up) + +## Grabbing the SSDT + +[Download SSDT-PLUG-ALT.dsl from here.](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-PLUG-ALT.dsl) + +## Compiling the SSDT + +This SSDT requires no editing, so you're now [ready to compile the SSDT!](/Manual/compile.md) + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/plug-alt-methods/prebuilt.md b/Universal/plug-alt-methods/prebuilt.md new file mode 100644 index 00000000..5220e9c8 --- /dev/null +++ b/Universal/plug-alt-methods/prebuilt.md @@ -0,0 +1,18 @@ +# Fixing Power Management and Processor Definition: Prebuilt + +By far the easiest way to get SSDT-PLUG-ALT is just downloading the below file: + +* [SSDT-PLUG-ALT.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-PLUG-ALT.aml) + +This prebuilt file is just a precompiled version of [SSDT-PLUG-ALT.dsl](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-PLUG-ALT.dsl) provided by Acidanthera. + +The main things to note with this method: + +* Doesn't really teach you anything + * For most, this doesn't matter. But to some knowing what makes your hackintosh tick is part of the journey + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/plug-alt.md b/Universal/plug-alt.md new file mode 100644 index 00000000..c685ee39 --- /dev/null +++ b/Universal/plug-alt.md @@ -0,0 +1,16 @@ +# Fixing Power Management and Processor Definition (SSDT-PLUG-ALT) + +* [Fixing Power Management and Processor Definition (SSDT-PLUG-ALT)](#fixing-power-management-and-processor-definition-ssdt-plug-alt) + * [What this SSDT does](#what-this-ssdt-does) + * [Methods to make this SSDT](#methods-to-make-this-ssdt) + +## What this SSDT does + +The purpose of SSDT-PLUG-ALT is to allow the kernel's XCPM (XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this. In addition to that, newer boards such as the Intel 600 series define CPU objects as `Device` according to the new ACPI 5.0 specification, but macOS expects them to be defined as `Processor`. This SSDT fixes this issue by defining `Processor` objects for macOS. + +## Methods to make this SSDT + +For SSDT-PLUG-ALT, there are 3 methods you can choose from: + +* [Prebuilt](/Universal/plug-alt-methods/prebuilt.md) +* [Manual](/Universal/plug-alt-methods/manual.md) diff --git a/Universal/plug.md b/Universal/plug.md index 55a54f6b..9265a878 100644 --- a/Universal/plug.md +++ b/Universal/plug.md @@ -6,7 +6,7 @@ ## What this SSDT does -The purpose of SSDT-PLUG is to allow the kernel's XCPM(XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this. +The purpose of SSDT-PLUG is to allow the kernel's XCPM (XNU's CPU Power Management) to manage our CPU's power management. It's pretty self explanatory why you'd want this. **Note**: SSDT-PLUG is only compatible with Intel's Haswell and newer CPUs, Sandy Bridge and Ivy Bridge will need to follow the [ssdtPRgen method](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management)(in post-install) while AMD users should not use this(unless attempting to attach AGPM which is outside the scope of Dortania's guides) diff --git a/Universal/usbw-methods/prebuilt-manual.md b/Universal/usbw-methods/prebuilt-manual.md new file mode 100644 index 00000000..8591426d --- /dev/null +++ b/Universal/usbw-methods/prebuilt-manual.md @@ -0,0 +1,31 @@ +# Fixing USB Wake: Prebuilt and Manual + +* [Prebuilt](#prebuilt) +* [Manual](#manual) + * [Grabbing the sample SSDT](#grabbing-the-sample-ssdt) + * [Compiling the SSDT](#compiling-the-ssdt) +* [Wrapping up](#wrapping-up) + +## Prebuilt + +By far the easiest way to get SSDT-USBW is just downloading the below file: + +* [SSDT-USBW.aml](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-USBW.aml) + +This prebuilt file is just a precompiled version of [SSDT-USBW](https://raw.githubusercontent.com/osy/USBWakeFixup/master/SSDT-USBW.dsl). + +## Manual + +### Grabbing the sample SSDT + +[Download SSDT-USBW.dsl here.](https://raw.githubusercontent.com/osy/USBWakeFixup/master/SSDT-USBW.dsl) + +### Compiling the SSDT + +This SSDT requires no modification, so you're now [ready to compile the SSDT!](/Manual/compile.md) + +## Wrapping up + +Once you're done making your SSDT, either head to the next page to finish the rest of the SSDTs or head here if you're ready to wrap up: + +* [**Cleanup**](/cleanup.md) diff --git a/Universal/usbw.md b/Universal/usbw.md new file mode 100644 index 00000000..32206a60 --- /dev/null +++ b/Universal/usbw.md @@ -0,0 +1,15 @@ +# Fixing USB Wake (SSDT-USBW) + +* [Fixing USB Wake (SSDT-USBW)](#fixing-usb-wake-ssdt-usbw) + * [What this SSDT does](#what-this-ssdt-does) + * [Methods to make this SSDT](#methods-to-make-this-ssdt) + +## What this SSDT does + +SSDT-USBW is a companion to the [USBWakeFixup kext](https://github.com/osy/USBWakeFixup), which addresses USB wake issues on certain Intel platforms. Do not use this SSDT unless you have the USBWakeFixup kext. + +## Methods to make this SSDT + +For SSDT-USBW, there are 2 methods you can choose from, both on one page: + +* [Prebuilt and Manual](/Universal/usbw-methods/prebuilt-manual.md) diff --git a/extra-files/compiled/SSDT-PLUG-ALT.aml b/extra-files/compiled/SSDT-PLUG-ALT.aml new file mode 100644 index 00000000..e58a960d Binary files /dev/null and b/extra-files/compiled/SSDT-PLUG-ALT.aml differ diff --git a/extra-files/compiled/SSDT-USBW.aml b/extra-files/compiled/SSDT-USBW.aml new file mode 100644 index 00000000..b59af33f Binary files /dev/null and b/extra-files/compiled/SSDT-USBW.aml differ diff --git a/extra-files/decompiled/SSDT-PLUG-ALT.dsl b/extra-files/decompiled/SSDT-PLUG-ALT.dsl new file mode 100644 index 00000000..322568a3 --- /dev/null +++ b/extra-files/decompiled/SSDT-PLUG-ALT.dsl @@ -0,0 +1,1122 @@ +/* + * XCPM power management compatibility table with Darwin method + * for Alder Lake CPUs and possibly others with CPU objects + * declared as Device instead of Processor. + * + * Note 1: Just like Rocket Lake CPUs, Alder Lake CPUs require + * custom CPU profile via CPUFriend. + * REF: https://github.com/dortania/bugtracker/issues/190 + * + * Note 2: PBlockAddress (0x00000510 here) can be corrected + * to match MADT and may vary across the boards and vendors. + * This field is ignored by macOS and read from MADT instead, + * so it is purely cosmetic. + */ +DefinitionBlock ("", "SSDT", 2, "ACDT", "CpuPlugA", 0x00003000) +{ + External (_SB_, DeviceObj) + + Scope (\_SB) + { + Processor (CP00, 0x00, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID + Name (_UID, Zero) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + + Method (_DSM, 4, NotSerialized) + { + If (LEqual (Arg2, Zero)) { + Return (Buffer (One) { 0x03 }) + } + + Return (Package (0x02) + { + "plugin-type", + One + }) + } + } + + Processor (CP01, 0x01, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 1) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP02, 0x02, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 2) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP03, 0x03, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 3) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP04, 0x04, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 4) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP05, 0x05, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 5) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP06, 0x06, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 6) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP07, 0x07, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 7) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP08, 0x08, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 8) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP09, 0x09, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 9) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP10, 0x0A, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 10) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP11, 0x0B, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 11) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP12, 0x0C, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 12) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP13, 0x0D, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 13) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP14, 0x0E, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 14) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP15, 0x0F, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 15) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP16, 0x10, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 16) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP17, 0x11, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 17) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP18, 0x12, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 18) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP19, 0x13, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 19) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP20, 0x14, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 20) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP21, 0x15, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 21) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP22, 0x16, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 22) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP23, 0x17, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 23) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP24, 0x18, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 24) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP25, 0x19, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 25) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP26, 0x1A, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 26) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP27, 0x1B, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 27) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP28, 0x1C, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 28) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP29, 0x1D, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 29) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP30, 0x1E, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 30) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP31, 0x1F, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 31) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP32, 0x20, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 32) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP33, 0x21, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 33) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP34, 0x22, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 34) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP35, 0x23, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 35) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP36, 0x24, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 36) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP37, 0x25, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 37) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP38, 0x26, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 38) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP39, 0x27, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 39) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP40, 0x28, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 40) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP41, 0x29, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 41) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP42, 0x2A, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 42) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP43, 0x2B, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 43) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP44, 0x2C, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 44) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP45, 0x2D, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 45) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP46, 0x2E, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 46) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP47, 0x2F, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 47) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP48, 0x30, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 48) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP49, 0x31, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 49) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP50, 0x32, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 50) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP51, 0x33, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 51) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP52, 0x34, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 52) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP53, 0x35, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 53) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP54, 0x36, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 54) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP55, 0x37, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 55) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP56, 0x38, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 56) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP57, 0x39, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 57) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP58, 0x3A, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 58) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP59, 0x3B, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 59) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP60, 0x3C, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 60) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP61, 0x3D, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 61) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP62, 0x3E, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 62) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Processor (CP63, 0x3F, 0x00000510, 0x06) + { + Name (_HID, "ACPI0007" /* Processor Device */) + Name (_UID, 63) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (_OSI ("Darwin")) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + } +} diff --git a/extra-files/decompiled/SSDT-USBW.dsl b/extra-files/decompiled/SSDT-USBW.dsl new file mode 100644 index 00000000..85eb74a5 --- /dev/null +++ b/extra-files/decompiled/SSDT-USBW.dsl @@ -0,0 +1,23 @@ +/** + * USB wakeup virtual device + */ +DefinitionBlock ("", "SSDT", 2, "OSY86 ", "USBW", 0x00001000) +{ + External (\_SB.PCI0.XHC._PRW, MethodObj) + + // We only enable the device for OSX + If (CondRefOf (\_OSI, Local0) && _OSI ("Darwin")) + { + Device (\_SB.USBW) + { + Name (_HID, "PNP0D10") // _HID: Hardware ID + Name (_UID, "WAKE") // _UID: Unique ID + + Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake + { + Return (\_SB.PCI0.XHC._PRW ()) // Replace with path to your USB device + } + } + } +} + diff --git a/images/Universal/brg0-md/after-edit.png b/images/Universal/brg0-md/after-edit.png new file mode 100644 index 00000000..b6012421 Binary files /dev/null and b/images/Universal/brg0-md/after-edit.png differ diff --git a/images/Universal/brg0-md/before-edit.png b/images/Universal/brg0-md/before-edit.png new file mode 100644 index 00000000..6841cc98 Binary files /dev/null and b/images/Universal/brg0-md/before-edit.png differ diff --git a/images/Universal/brg0-md/bridge-ioreg.png b/images/Universal/brg0-md/bridge-ioreg.png new file mode 100644 index 00000000..e9cd928a Binary files /dev/null and b/images/Universal/brg0-md/bridge-ioreg.png differ diff --git a/images/Universal/brg0-md/no-bridge-ioreg.png b/images/Universal/brg0-md/no-bridge-ioreg.png new file mode 100644 index 00000000..54169507 Binary files /dev/null and b/images/Universal/brg0-md/no-bridge-ioreg.png differ diff --git a/ssdt-platform.md b/ssdt-platform.md index 5f33a36c..13decab2 100644 --- a/ssdt-platform.md +++ b/ssdt-platform.md @@ -10,20 +10,22 @@ Please see the **specific ACPI section of your config.plist**, all SSDTs needed ## Desktop -| Platforms | **CPU** | **EC** | **AWAC** | **NVRAM** | **USB** | -| :-------: | :-----: | :----: | :------: | :-------: | :-----: | -| Penryn | N/A | [SSDT-EC](./Universal/ec-fix) | N/A | N/A | N/A | -| Lynnfield and Clarkdale | ^^ | ^^ | ^^ | ^^ | ^^ | -| SandyBridge | [CPU-PM](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management) (Run in Post-Install) | ^^ | ^^ | ^^ | ^^ | -| Ivy Bridge | ^^ | ^^ | ^^ | ^^ | ^^ | -| Haswell | [SSDT-PLUG](./Universal/plug) | ^^ | ^^ | ^^ | ^^ | -| Broadwell | ^^ | ^^ | ^^ | ^^ | ^^ | -| Skylake | ^^ | [SSDT-EC-USBX](./Universal/ec-fix) | ^^ | ^^ | ^^ | -| Kaby Lake | ^^ | ^^ | ^^ | ^^ | ^^ | -| Coffee Lake | ^^ | ^^ | [SSDT-AWAC](./Universal/awac) | [SSDT-PMC](./Universal/nvram) | ^^ | -| Comet Lake | ^^ | ^^ | ^^ | N/A | [SSDT-RHUB](./Universal/rhub) | -| AMD (15/16h) | N/A | ^^ | N/A | ^^ | N/A | -| AMD (17h) | [SSDT-CPUR for B550 and A520](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml) | ^^ | ^^ | ^^ | ^^ | +| Platforms | **CPU** | **EC** | **AWAC** | **NVRAM** | **USB** | **Misc** | +| :-------: | :-----: | :----: | :------: | :-------: | :-----: | :------: +| Penryn | N/A | [SSDT-EC](./Universal/ec-fix) | N/A | N/A | N/A | N/A | +| Lynnfield and Clarkdale | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | +| SandyBridge | [CPU-PM](https://dortania.github.io/OpenCore-Post-Install/universal/pm.html#sandy-and-ivy-bridge-power-management) (Run in Post-Install) | ^^ | ^^ | ^^ | ^^ | ^^ | +| Ivy Bridge | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | +| Haswell | [SSDT-PLUG](./Universal/plug) | ^^ | ^^ | ^^ | ^^ | ^^ | +| Broadwell | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | +| Skylake | ^^ | [SSDT-EC-USBX](./Universal/ec-fix) | ^^ | ^^ | ^^ | ^^ | +| Kaby Lake | ^^ | ^^ | ^^ | ^^ | ^^ | ^^ | +| Coffee Lake | ^^ | ^^ | [SSDT-AWAC](./Universal/awac) | [SSDT-PMC](./Universal/nvram) | ^^ | ^^ | +| Comet Lake | ^^ | ^^ | ^^ | N/A | [SSDT-RHUB](./Universal/rhub) | ^^ | +| Rocket Lake | ^^ | ^^ | ^^ | ^^ | [SSDT-USBW](./Universal/usbw) | [SSDT-BRG0](./Universal/brg0) | +| Alder Lake | [SSDT-PLUG-ALT](./Universal/plug-alt) | ^^ | ^^ | ^^ | ^^ | ^^ | +| AMD (15/16h) | N/A | ^^ | N/A | ^^ | ^^ | N/A | +| AMD (17h/19h) | [SSDT-CPUR for B550 and A520](https://github.com/dortania/Getting-Started-With-ACPI/blob/master/extra-files/compiled/SSDT-CPUR.aml) | ^^ | ^^ | ^^ | ^^ | ^^ | ## High End Desktop