Solved Sleep issues on B550

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
Hello, so I got a new B550 Gaming X V2 board recently to replace my B450M DS3H (which sleep worked perfectly on!) but I am unable to get sleep to properly work. Every time I sleep it, my peripherals are staying on along with the fan until around 1 minute later, when they stop but then they start again 5 seconds later, and this loop continues forever. Looking into the pmset log, I can see this:
2023-02-22 23:20:51 +0200 Sleep Entering Sleep state due to 'Maintenance Sleep':TCPKeepAlive=active Using AC (Charge:0%) 23 secs
2023-02-22 23:21:14 +0200 DarkWake DarkWake from Normal Sleep [CDNP] : due to GPP0 PT21 PT22 PT23/ Using AC (Charge:0%) 20 secs
2023-02-22 23:21:34 +0200 Wake DarkWake to FullWake from Normal Sleep [CDNVA] : due to HID Activity Using AC (Charge:0%) 6 secs
I have tried using SSDT-GPRW, manually editing _PRW methods to no avail, the same problem remains. Attached are my IOReg and EFI folder. Everything else appears to work so sleep is basically the last issue.
 

Attachments

  • OC.zip
    4.8 MB · Views: 2
  • ExtremeXT’s Mac Pro (2).zip
    4.8 MB · Views: 1
Last edited:
Solution
Can't open the IOReg, says it appears to be corrupted.

View attachment 9796

Can you use the version of IORegistryExplorer attached in this link to save a copy.

I used the newest version, 3.something, which I attached below, I prefer it since it has a dark mode.
Your SSDT-USBMap.aml table appears to be missing a few USB ports and contain too many USB2 physical ports.

These are the USB ports available from the Gigabyte B550 Gaming X V2 (1.3) motherboard.

Chipset:
  1. 1 x USB 3.2 Gen 2 Type-A port (red) on the back panel
  2. 3 x USB 3.2 Gen 1 ports on the back panel
Chipset:
  1. 1 x USB Type-C™ port with USB 3.2 Gen 1 support, available through the internal USB header
  2. 2 x...

Lorys89

Active member
AMD OS X Member
Joined
Dec 16, 2022
Messages
192
Add this ssdt And see if it fixes
 

Attachments

  • SSDT-DISABLE-GPP0.zip
    883 bytes · Views: 15

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843

Lorys89

Active member
AMD OS X Member
Joined
Dec 16, 2022
Messages
192
In my b550i aorus pro ax, nvme gen4 is under gpp0, so I solved sleep/wake
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
Can't open the IOReg, says it appears to be corrupted.

Screenshot 2023-02-24 at 15.19.46.png

Can you use the version of IORegistryExplorer attached in this link to save a copy.

 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
Your SSDT-USBMap.aml table appears to be missing a few USB ports and contain too many USB2 physical ports.

These are the USB ports available from the Gigabyte B550 Gaming X V2 (1.3) motherboard.

Chipset:
  1. 1 x USB 3.2 Gen 2 Type-A port (red) on the back panel
  2. 3 x USB 3.2 Gen 1 ports on the back panel
Chipset:
  1. 1 x USB Type-C™ port with USB 3.2 Gen 1 support, available through the internal USB header
  2. 2 x USB 3.2 Gen 1 ports available through the internal USB header
  3. 6 x USB 2.0/1.1 ports (2 ports on the back panel, 4 ports available through the internal USB headers)
This means your system should contain the following ports in your SSDT-USBMap.aml, assuming all are activated:

2 x Type-C ports - 1 x Physical Type-c and one USB2 Type-c (from Type-C motherboard header, via case front port if present)
2 x USB2 physical ports set with connector type '0' (Rear I/O plate ports)
4 x USB2 header ports set with connector type '255' (2 x Motherboard header ports)
6 x USB3 physical ports set with connector type '3' (4 x USB3 physical ports on rearI/O plate & 2 x USB3 ports from motherboard header)
6 x USB2 virtual ports (from USB3 ports and header) set with connector type '3' (4 x USB3 physical ports on rear I/O plate & 2 x USB3 ports from motherboard header)

Maximum of 20 x USB ports if all ports were active. Your SSDT-USBMAp.aml table is activating the following:

PCI0.GPP1.XHC0 controller
HS01 - HS05 all set as USB2 physical with connector type '0'

PCI0.GP13.XHC0 controller
No ports attached

PCI0.GP13.XHC1 controller
HS01, HS02 & HS03 - all set with connector type '3'
SS01, SS02, SS03 & SS04 - all set with connector type '3'

Total of 12 ports active in the system.

At least 3 of these 12 ports are set with the wrong connector type, as your motherboard only has 2 x physical USB2 ports, but the SSDT is activating 5 x USB2 physical ports.

I assume the 3 x ports should be set with connector type '255' as they are served from the USB2 motherboard headers, not USB2 physical ports (Black tang)
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
Config.plist queries:

Your config.plist should have the Kernel > Emulate > DummyPowerManagement option set as 'True' it is set as 'False'

Screenshot 2023-02-24 at 15.48.01.png You need to set this entry to 'True' for an AMD CPU.

Normally the Misc > Debug > AppleDebug, ApplePanic & DisableWatchDog entries are set as 'True' all three are set as 'False' in your config.

Screenshot 2023-02-24 at 15.52.08.png Change highlighted entries from 'False' to'True'
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
How have you configured your Systemwide Power setttings?

If you enter 'sudo pmset -g' in to a Terminal window what does your system show?

Example below from my Intel Haswell iMacPro hack.

Screenshot 2023-02-24 at 15.57.56.png Terminal output from sudo pmset -g command

Screenshot 2023-02-24 at 16.00.48.png Hackintool output on Power tab.

ttyskeepawake being enabled, i.e. set as '1', can prevent systems from sleeping.

Using sudo pmset -a tyykeepawake 0 terminal command can disable this option.

There are other Hibernate and power options that can be enabled/disabled in Terminal, using the commands below. Use '0' to disable, '1' to enable.

Disable Hibernation
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage

Disable other hibernation/power options
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
sudo pmset -a tcpkeelalive 0
sudo pmset -a tyykeepawake 0
sudo pmset -a womp 0

Enable Sleep
sudo pmset -a sleep 1
 

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
Can't open the IOReg, says it appears to be corrupted.

View attachment 9796

Can you use the version of IORegistryExplorer attached in this link to save a copy.

I used the newest version, 3.something, which I attached below, I prefer it since it has a dark mode.
Your SSDT-USBMap.aml table appears to be missing a few USB ports and contain too many USB2 physical ports.

These are the USB ports available from the Gigabyte B550 Gaming X V2 (1.3) motherboard.

Chipset:
  1. 1 x USB 3.2 Gen 2 Type-A port (red) on the back panel
  2. 3 x USB 3.2 Gen 1 ports on the back panel
Chipset:
  1. 1 x USB Type-C™ port with USB 3.2 Gen 1 support, available through the internal USB header
  2. 2 x USB 3.2 Gen 1 ports available through the internal USB header
  3. 6 x USB 2.0/1.1 ports (2 ports on the back panel, 4 ports available through the internal USB headers)
This means your system should contain the following ports in your SSDT-USBMap.aml, assuming all are activated:

2 x Type-C ports - 1 x Physical Type-c and one USB2 Type-c (from Type-C motherboard header, via case front port if present)
2 x USB2 physical ports set with connector type '0' (Rear I/O plate ports)
4 x USB2 header ports set with connector type '255' (2 x Motherboard header ports)
6 x USB3 physical ports set with connector type '3' (4 x USB3 physical ports on rearI/O plate & 2 x USB3 ports from motherboard header)
6 x USB2 virtual ports (from USB3 ports and header) set with connector type '3' (4 x USB3 physical ports on rear I/O plate & 2 x USB3 ports from motherboard header)

Maximum of 20 x USB ports if all ports were active. Your SSDT-USBMAp.aml table is activating the following:

PCI0.GPP1.XHC0 controller
HS01 - HS05 all set as USB2 physical with connector type '0'

PCI0.GP13.XHC0 controller
No ports attached

PCI0.GP13.XHC1 controller
HS01, HS02 & HS03 - all set with connector type '3'
SS01, SS02, SS03 & SS04 - all set with connector type '3'

Total of 12 ports active in the system.

At least 3 of these 12 ports are set with the wrong connector type, as your motherboard only has 2 x physical USB2 ports, but the SSDT is activating 5 x USB2 physical ports.

I assume the 3 x ports should be set with connector type '255' as they are served from the USB2 motherboard headers, not USB2 physical ports (Black tang)
My map is fine, I custom made it and double checked it a few times, a lot of the headers are NOT populated. It was broken in the attached EFI, but a new one is attached.
Config.plist queries:

Your config.plist should have the Kernel > Emulate > DummyPowerManagement option set as 'True' it is set as 'False'

View attachment 9797 You need to set this entry to 'True' for an AMD CPU.

Normally the Misc > Debug > AppleDebug, ApplePanic & DisableWatchDog entries are set as 'True' all three are set as 'False' in your config.

View attachment 9798 Change highlighted entries from 'False' to'True'
DummyPowerManagement is not needed on macOS Ventura because the kext it disables (AppleIntelCPUPowerManagement is not here anymore). AppleDebug and others are only for the first time setup for debugging purposes.
How have you configured your Systemwide Power setttings?

If you enter 'sudo pmset -g' in to a Terminal window what does your system show?

Example below from my Intel Haswell iMacPro hack.

View attachment 9802 Terminal output from sudo pmset -g command

View attachment 9803 Hackintool output on Power tab.

ttyskeepawake being enabled, i.e. set as '1', can prevent systems from sleeping.

Using sudo pmset -a tyykeepawake 0 terminal command can disable this option.

There are other Hibernate and power options that can be enabled/disabled in Terminal, using the commands below. Use '0' to disable, '1' to enable.

Disable Hibernation
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage

Disable other hibernation/power options
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
sudo pmset -a tcpkeelalive 0
sudo pmset -a tyykeepawake 0
sudo pmset -a womp 0

Enable Sleep
sudo pmset -a sleep 1
I ran all of Dortania's commands.
USB 2 ports are from my case.
Add this ssdt And see if it fixes
Thanks, that worked, but it disabled my NVMe controller, so I managed to fix it without needing to disable it by replacing the _PRW method with a custom one with 0x09, 0x04 instead of 0x04, 0x04. Attached is the SSDT I used, ACPI patch is in the config.plist of the attached EFI.
 

Attachments

  • IORegistryExplorer.zip
    248.5 KB · Views: 2
  • SSDT-GPP0-PRW.aml.zip
    754 bytes · Views: 14
  • OC.zip
    4.8 MB · Views: 7
  • ExtremeXT’s Mac Pro.zip
    4.8 MB · Views: 6
Solution

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
Your USB ports may be served from your case, that doesn't mean they are configured correctly.

HS05 on the XHC0 controller is serving the INTERNAL ITE device. It should not be set as a physical USB2 port.

Same goes for HS03 & HS04. All three of these ports, whether they are connected to a Case USB2 port, the ITE device or a Bluetooth module should be set with connector type Internal '255'.

Only HS01 & HS02 should be set as Physical USB2 ports with the connector type '0'. As these physical USB2 ports serve your keyboard and mouse.
 

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
Your USB ports may be served from your case, that doesn't mean they are configured correctly.

HS05 on the XHC0 controller is serving the INTERNAL ITE device. It should not be set as a physical USB2 port.

Same goes for HS03 & HS04. All three of these ports, whether they are connected to a Case USB2 port, the ITE device or a Bluetooth module should be set with connector type Internal '255'.

Only HS01 & HS02 should be set as Physical USB2 ports with the connector type '0'. As these physical USB2 ports serve your keyboard and mouse.
The ITE device is set to 0xFF (Internal, 255).
Are you sure? I thought even front panel USBs had to be their respective type.
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
The type is Internal Header, it shouldn't be set to match the case port. Same as it would be if you had a Bluetooth module from a PCIe adapter connected to an internal motherboard header.

Must have missed/mistaken the ITE device port type, Doh!
 

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
The type is Internal Header, it shouldn't be set to match the case port. Same as it would be if you had a Bluetooth module from a PCIe adapter connected to an internal motherboard header.

Must have missed/mistaken the ITE device port type, Doh!
They're mapped like normal ports in Dortania's guide though...
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
Yeah, I've seen that. guide. It isn't the one I use, as it was quite late to the party.

I've been using the Internal '255' connector type for all USB2 motherboard header connections since El Capitan. This has worked for me on my mainly Intel Hacks for years. Worked on the Ryzen Hacks I have built too.

If you find the system works/sleeps/wakes etc. using USB2 '0' connector type for these USB2 header ports then that is fine too.
 

Lorys89

Active member
AMD OS X Member
Joined
Dec 16, 2022
Messages
192
On gigabytes if you delete from the mapping the port ite breaks the sleep / wake, and important to have it in the usb mapping, if set internal 255 or on ssdt 0xff is better
 

atanvarno

Donator
Donator
AMD OS X Member
Joined
May 2, 2020
Messages
228
I've been using the Internal '255' connector type for all USB2 motherboard header connections since El Capitan. This has worked for me on my mainly Intel Hacks for years. Worked on the Ryzen Hacks I have built too.

This is new to me; you're saying that all chassis ports which are connected to motherboard headers (USB 2 or 19/20-pin USB 3 headers) should be marked as 255 connector type?
 
Last edited:

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,513
No, the USB3 header ports are set as USB3. I only set the USB2 header ports as 'Internal' with connector type '255'.
 
Back
Top Bottom
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.