-
-
Notifications
You must be signed in to change notification settings - Fork 2
SSDT Table
SSDT table defines the hardware topology of your computer. Your firmware typically comes with one or more SSDTs, which have already defined your CPU, PCIe devices, disks, USB controllers, etc. To make DRIPS work, you need to insert one more SSDT containing the definition of the Intel PEP device. The PEP device also need some configuration because it manages the power state of other components, these configuration also resides in the SSDT. Your final goal is to implement Microsoft's platform requirements for modern standby.
It's recommended that you start with an example file. In best cases you only need to change the devices' name and their quantities depending on what you have on your computer. Every device have some constraints following it, the format of which can be found at INTEL ACPI LOW POWER S0 IDLE table 7, 8 and 9.
If you are using Windows, you can find the device name of a device in devmgmt.msc -> device properties -> Details -> BIOS device name. Under macOS, use /usr/sbin/ioreg. You can also look up device names in ACPI SSDT/DSDT tables. Full name is not always needed; for example my SSD's full device name is \\_SB.PCI0.RP06.SSD0; only \\_SB.PCI0.RP06 is needed in SSDT.
For DEVY section, you need to find the device name of the following devices:
- Every of your non-HT CPU cores
- GPU
- USB controller (might not needed)
- HDD/SSD
- WiFi, Camera and other PCIe connected devices
For BCCD section, you need to define your system disk device.
Other parts usually work without any changes.
Resources:
- ACPI Source Language reference
- FreeBSD Wiki have a lot ACPI table dumps for different devices; you can find one with the same generation CPU of your hardware to start with
- rweverything let you view and dump ACPI tables easily under Windows
- Directed power management for PCIe devices: Information on PCIe devices
There are a few things that you need to check to make sure your SSDT is correct.
The very first step is to get Windows to boot. If Windows resets itself during boot animation, your SSDT is probably wrong. (On next boot Windows might ask you if you want to reset the system; you can ignore it and click "turn off".)
In Device Manager (devmgmt.msc), check if Intel(R) Power Engine Plug-in shows up in System devices catagory. This is the first sign your SSDT is working.
See SleepStudy.