Restart instead Shutdown B650M Pro RS Wifi with BIOS 3.08 / AGESA 1.2.02

SchmockLord

Member
AMD OS X Member
May 22, 2020
40
7
8
I have an ASRock B650M Pro RS Wifi with BIOS 3.08 and AGESA 1.2.02 and have the issue, that the PC Restarts instead of Shutdown. PC shuts down for a second and then immediately turns on again. But it's not defaulting BIOS settings, so it's not a safe-mode restart.

But sleep works fine.

I tried many different ways to map my USB-Ports. Now I am doing that via SSDT and am pretty sure it's not the USB-config. It looks good to me and all Ports work fine.

I also tried setting up SSDT-FixShutdown. My USB-Hubs are:
\_SB.PCI0.GPP7.UP00.DP60.XH00
\_SB.PCI0.GPP17.XHC0
\_SB.PCI0.GPP17.XHC1
\_SB.PCI0.GPP19.XHC0

They all have an RHUB underneath. In my SSDT I only changed XH00 (because this one had more than 15 ports). I used _STA to disable the RHUB and replace it with my own port configuration as XHUB.

I noticed this behavior basically on all BIOS after 1.30 AS05 and some user on my Github Page reported the same.

Maybe someone has the same issues with B650.
 

Attachments

I have an ASRock B650M Pro RS Wifi with BIOS 3.08 and AGESA 1.2.02 and have the issue, that the PC Restarts instead of Shutdown. PC shuts down for a second and then immediately turns on again. But it's not defaulting BIOS settings, so it's not a safe-mode restart.

But sleep works fine.

I tried many different ways to map my USB-Ports. Now I am doing that via SSDT and am pretty sure it's not the USB-config. It looks good to me and all Ports work fine.

I also tried setting up SSDT-FixShutdown. My USB-Hubs are:
\_SB.PCI0.GPP7.UP00.DP60.XH00
\_SB.PCI0.GPP17.XHC0
\_SB.PCI0.GPP17.XHC1
\_SB.PCI0.GPP19.XHC0

They all have an RHUB underneath. In my SSDT I only changed XH00 (because this one had more than 15 ports). I used _STA to disable the RHUB and replace it with my own port configuration as XHUB.

I noticed this behavior basically on all BIOS after 1.30 AS05 and some user on my Github Page reported the same.

Maybe someone has the same issues with B650.
Hi @SchmockLord . I looked at your USB Port mapping and noticed 4 USB C ports enabled, one type 10 which is unusual and three type 9. Asrock says you have two on that board. Also there are 3 internal type 255 ports enabled, I am pretty sure you should only have 2. One for Bluetooth and one for the LED controller. That by itself would be enough to cause the restart.

I stole the below from @Edhawk but use it as my guide to mapping USB ports, it has served me well.

To discover the correct connector type for each Type-C port/header you need to do the following:

  • Plug in a Type-C device to a type-c port and a specific port will be highlighted.
  • Eject the Type-C device, flip it 180° and reinsert the device in the same port.
    • If the same port is highlighted then the connector is Type-c+switch (9)
    • If a different port is highlighted then the connector is Type-c without switch (10).
  • Any virtual USB2 ports served by the Type-C port or header would need to match the physical attribute of the port or header when a Type-C device is used.
  • You may not activate or use the virtual USB2 ports on the Type-C ports/header, in which case you can ignore them and leave them out of your USB configuration.
  • Your PC case may not have a front Type-C port, in which case the Type-C header would not be used and can be ignored.
You need to remember the following when undertaking the USB port discovery,

  1. Only Type-A USB2 physical ports (black tang) should be set with connector type USB2 (0).
  2. Any Type-A USB3 physical port (red or Blue tang) should be set with connector type USB3 (3), no matter which Gen.
  3. Any USB2 virtual port served from a Physical USB3 port should be set with the connector type USB3 (3) to match the physical port characteristics.
  4. Any USB3 or USB2 ports served from a USB3 motherboard header should be set with connector type USB3 (3).
  5. Any port or device served from a USB2 motherboard header should be set with connector type 'Internal' (255), never as USB2 (0).
Type-C ports and headers have been explained above
 
  • Like
Reactions: SchmockLord
Thanks. Will try that again. Have done something in the past 24h but I am at work, so the EFI is not my most current one.

At home I already have made a map of my board and wrote down all port names to each physical port.

And I have also noticed that ports that are defined by ASROCK as USB2 are in fact USB3 etc.
 
  • Like
Reactions: leesurone
So @leesurone I am back home and tried to apply your recommendations.

I have the config as SSDT and Kext.
I noticed, that when I use the SSDT, on the second boot there come duplicates of e.g. POT1 and POT3.


This is after the first boot with the SSDT:

Looks totally ok to me. All utilized. The 4 USBC is because one is for the USBC speeds and one for USB2. So its 4 virtual Ports but two physical.

Screenshot 2024-10-02 at 18.23.55.png


And this after the second:

You see double ports with different location-ID. E.g. POT1 and POT3.
Screenshot 2024-10-02 at 18.29.36.png

And this with the Kext:

Which is ok too, not all ports are utilized because I usually don't use them all.

Screenshot 2024-10-02 at 19.28.37.png
 

Attachments

Last edited:
So @leesurone I am back home and tried to apply your recommendations.

I have the config as SSDT and Kext.
I noticed, that when I use the SSDT, on the second boot there come duplicates of e.g. POT1 and POT3.


This is after the first boot with the SSDT:

Looks totally ok to me. All utilized. The 4 USBC is because one is for the USBC speeds and one for USB2. So its 4 virtual Ports but two physical.

View attachment 15233


And this after the second:

You see double ports with different location-ID. E.g. POT1 and POT3.
View attachment 15234

And this with the Kext:

Which is ok too, not all ports are utilized because I usually don't use them all.

View attachment 15235

So @leesurone I am back home and tried to apply your recommendations.

I have the config as SSDT and Kext.
I noticed, that when I use the SSDT, on the second boot there come duplicates of e.g. POT1 and POT3.


This is after the first boot with the SSDT:

Looks totally ok to me. All utilized. The 4 USBC is because one is for the USBC speeds and one for USB2. So its 4 virtual Ports but two physical.

View attachment 15233


And this after the second:

You see double ports with different location-ID. E.g. POT1 and POT3.
View attachment 15234

And this with the Kext:

Which is ok too, not all ports are utilized because I usually don't use them all.

View attachment 15235
I can't say I understand why using the SSDT causes your ports to duplicate after a reboot. I will say I don't trust Hackintool anymore to map USB ports anymore on later generation hardware though. I don't know what your experience has been but I rarely use it anymore and have resorted to USBToolBox to make the first pass and then edit the kext as needed.
 
@leesurone I am pretty sure it's something they messed up with the BIOS over time.

As soon as I go back to v1.30 A05 shutdown works again, no matter if it is with the SSDT or Kext based USB Mapping.

So I will just stick to 1.30 A05 now.

I thought about trying with v3.03 but injecting the DSDT.aml of v1.30 A05, but I don't if that messes up something else.
 

Attachments

  • Like
Reactions: leesurone
@SchmockLord i think you know that some new bioses with new CPU supports may need of some DSDT patches (or better ACPI patches)
Asus is affected for many its motherboards
Asrock is not sure
HAve you sent your bios updated dsdt to AMD Discord server @corpGhost to check it
He is helping many people to use only few ACPi patches in config.plist instead to use old DSDT or patch an entire new one
 
  • Like
Reactions: SchmockLord
  • Like
Reactions: SchmockLord
If you do not need acpi patches in your dsdt
No usuful to use others dsdt
I think your problem is in an hidden options in your new bios
@tomnic has an asrock with is 7950x and he also has sone problem with latest bios (with wifi and different problem from yours)
He solved as you using and old patched dsdt
 
@fabiosun @tomnic I think I solved it.

I could enable all USB3/USB3.1 Ports in BIOS and Shutdown works. But as soon as I enable the USB 2 Ports, shutdown ends in restart. Funny thing is, if I disable USB2 Ports in BIOS, they still work in macOS.

Now I am on BIOS 3.03 with AGESA 1.2.02 and the 7800X3D and my Shutdown works as well as Sleep.

IMG_0899 Large.jpeg


Screenshot 2024-10-03 at 13.11.55.png
 

Attachments

  • Like
Reactions: fabiosun
Ok I found another solution than just disabling the USB2 Ports in BIOS, because its also not nice to have no USB2 support on Windows.

I have removed the XHC0-XHC2 definition from the DSDT.aml of the BIOS 3.03. And then injected the SSDT-11 which was the XHC0-XHC2 definition from the BIOS 1.30.

And now it works fine.
 
  • Like
Reactions: fabiosun
Found an even better solution, which somehow didn't work before: Disabling XHC0-XHC2 via SSDT. It somehow didn't work when it was in the same SSDT as the XH00 USB-Port config, but now as a separate SSDT-Disable-XHC.aml it somehow works.

So now everything works and I don't need a modified DSDT.aml anymore. And the SSDT-based approach always has the advantage (with the Darwin ifs), that it doesn't affect how the hardware behaves in Windows.
 

Attachments

Hey there SchmockLord, i use your EFI, and i can install the macos untill it finished, but when booting after installation Finished.
It only shows BlackScreen and no display Signal, can you help me ?

My MotherBoard is the Same Except it didnt have Wifi or the non WIFI version and i use RX 6600
and my cpu is R7 8700F
 
Remove th
Hey there SchmockLord, i use your EFI, and i can install the macos untill it finished, but when booting after installation Finished.
It only shows BlackScreen and no display Signal, can you help me ?

My MotherBoard is the Same Except it didnt have Wifi or the non WIFI version and i use RX 6600
and my cpu is R7 8700F

It's probably because the SSDT-6950XT.aml is still active and tries to mock a 6950XT for your 6600. And installation works because in installation no GPU-acceleration is enabled.
 
@fabiosun I still have one issue left, and I had this on all my systems even though I changed my monitors a lot: It always takes me 2 keypresses to wake display. The system wakes after the first, but display needs the second.

And also USB-sticks attached to the XH00 where also Keyboard&Mouse is on are still connected after sleep, so I guess USB-wise everything is fine.

I know about the basics USBWakefixup.kext, acpi-wake-type=1 for each USB-device, fake-device via SSDT etc. but it doesn't work on my B650.

Do you have any idea?
 

Attachments

In my case problem was due ASMEdia controller
Disabling it i have had one click wake without problems
I need my 4 ASMedia USB 3 so i prefer to wake my system pushing on case power button
 
  • Like
Reactions: SchmockLord
@SchmockLord hei there, i follow your instruction and im happy that i can boot into sequoia, many thanks
But now i cant use my Fenvi t919, wifi and bluetooth both not working, it works on Sonoma, any helps ?
 
You need to use the correct/latest kexts for OCLP v2.0.2 to patch your Broadcom WiFi/BT card in Sequoia.
  • AMFIPass.kext v1.4.1
  • IO80211FamilyLegacy.kext v1.0.0
  • IOSkywalkFamily.kext v1.2.0
You also need to use the latest BrcmPatchRam kexts v 2.6.9

Copies of these kexts are attached below.

Make sure you edit your config.plist as follows:
  1. Enable the IOSkywalkFamily patch in the Kernel > Block section.
    1. Screenshot 2024-10-11 at 00.30.39.png
  2. Set Misc > Security > SecureBootModel to Disabled.
    1. Screenshot 2024-10-11 at 00.28.58.png
  3. Set NVRAM > Add > csr-active-config to partially disabled, so the kexts can load, <03080000>
    1. Screenshot 2024-10-11 at 00.29.34.png
Once all this is in place, reboot your system and use the ResetNvram option from the OC boot screen. If you can;t see the ResetNvram entry you may have to press the 'Spacebar' to unhide the driver. That is of course assuming you have included the ResetNvramEntry.efi option in your /EFI/OC/Drivers folder and enabled it in your config.plist.

When you next boot your system, after the ResetNvram, you should see both your Bluetooth and WiFi modules working.

Well that's what worked for me, in Sequoia 15.0.1.
 

Attachments

  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.