Contribute
Register

Broadcom WiFi/Bluetooth [Guide]

Here is my efi folder.
And as you can see from the screenshot, there is no bt device hs14 port listed in ioreg explorer.
Thanks in advance
View attachment 443512

Hi there.

It's clear from your screengrab that the SSDT-UIAC.aml you have installed is not working at all.

What's more there is no "space" for HS14. If you look you can just about make out - although the pop-up is blocking it - that HS11 = 14b, HS12 = 14c, HS13 = 14d (probably), SS01 = 14e. (You can verify this for us), SS02 = 14f. HS14 will never show up in this scenario.

As far as I can see your SSDT-UIAC.aml is correct.

What to do?

For completeness correct mistakes in config.plist :

1) No need for EHC renames in the ACPI section. Your Z370 does not have any EHCI controllers.

2) Check if you actually need an XHC1 rename. Disable the rename, reboot and run IORegistryExplorer. If XHC1 shows up then yes you do, BUT, check what you are renaming. That looks wrong. Otherwise if it's XHC already then it isn't needed.

3) Change CsrActiveConfig on the RtVariables tab from 0x3 to 0x67. This should allow USBInjectAll.kext to work if Catalina is blocking it.

4) Your PLRP's are correct for Catalina.

Also:

Make sure there are no duplicated USB-related kexts from EFI over in Library/Extensions but with different versions.

:)
 
Hi there.

It's clear from your screengrab that the SSDT-UIAC.aml you have installed is not working at all.

What's more there is no "space" for HS14. If you look you can just about make out - although the pop-up is blocking it - that HS11 = 14b, HS12 = 14c, HS13 = 14d (probably), SS01 = 14e. (You can verify this for us), SS02 = 14f. HS14 will never show up in this scenario.

As far as I can see your SSDT-UIAC.aml is correct.

What to do?

For completeness correct mistakes in config.plist :

1) No need for EHC renames in the ACPI section. Your Z370 does not have any EHCI controllers.

2) Check if you actually need an XHC1 rename. Disable the rename, reboot and run IORegistryExplorer. If XHC1 shows up then yes you do, BUT, check what you are renaming. That looks wrong. Otherwise if it's XHC already then it isn't needed.

3) Change CsrActiveConfig on the RtVariables tab from 0x3 to 0x67. This should allow USBInjectAll.kext to work if Catalina is blocking it.

4) Your PLRP's are correct for Catalina.

Also:

Make sure there are no duplicated USB-related kexts from EFI over in Library/Extensions but with different versions.

:)
Thank you for your suggestion.
After following your steps, I figured I no longer need xhc1 rename, since it is already in XHC.
Changed 0x67, and rebooted
then I found that the hs ports and ss ports are exactly the same as you mentioned, hs13 is 14d, ss1 is 14e and so on.

I remember once pastry chef helped to force the hs14 port to be enabled, and with that file I was able to reconfigure the SSDT and it worked on my Mojave.
but with the same file, I upgrade to Catalina and the SSDT stopped working.
I guess the issue is hs14 port does not shows up. but it works on win10. so should be injection problem,

is there any way I can do force inject the hs14 port to my Catalina and then proceed the brcm bluetooth fixup?

thanks in advance
 
Thank you for your suggestion.
After following your steps, I figured I no longer need xhc1 rename, since it is already in XHC.
Changed 0x67, and rebooted
then I found that the hs ports and ss ports are exactly the same as you mentioned, hs13 is 14d, ss1 is 14e and so on.

I remember once pastry chef helped to force the hs14 port to be enabled, and with that file I was able to reconfigure the SSDT and it worked on my Mojave.
but with the same file, I upgrade to Catalina and the SSDT stopped working.
I guess the issue is hs14 port does not shows up. but it works on win10. so should be injection problem,

is there any way I can do force inject the hs14 port to my Catalina and then proceed the brcm bluetooth fixup?

thanks in advance

Hi there. Good work :thumbup:

Okay, I would ask @pastrychef what technique he used to get HS14 working on Mojave. This should still work for Catalina, the only problem, as I hinted at before, is that Catalina is stricter about 3rd-party kexts. If you have any installed in Library/Extensions then I would try moving them to EFI/CLOVER/kexts/Other and rebuilding kext-caches to remove traces of the originals. Hopefully @pastrychef can pop by and help :thumbup:
 
Hi there. Good work :thumbup:

Okay, I would ask @pastrychef what technique he used to get HS14 working on Mojave. This should still work for Catalina, the only problem, as I hinted at before, is that Catalina is stricter about 3rd-party kexts. If you have any installed in Library/Extensions then I would try moving them to EFI/CLOVER/kexts/Other and rebuilding kext-caches to remove traces of the originals. Hopefully @pastrychef can pop by and help :thumbup:

I don't remember what I did in that instance... But it couldn't have been anything special...

Standard stuff:
Make sure system definition is compatible with USBInjectAll.
Make sure KextsToPatch match macOS version.
Get rid of GenericUSBXHCI kext.
 
Hi there. Good work :thumbup:

Okay, I would ask @pastrychef what technique he used to get HS14 working on Mojave. This should still work for Catalina, the only problem, as I hinted at before, is that Catalina is stricter about 3rd-party kexts. If you have any installed in Library/Extensions then I would try moving them to EFI/CLOVER/kexts/Other and rebuilding kext-caches to remove traces of the originals. Hopefully @pastrychef can pop by and help :thumbup:
Hi there,

do you mind sharing how to rebuilding the kext caches? I am a newbie and not too sure how to do it..
Since you mentioned the rlpl is correct for Catalina, I didn't change anything.
I replace the working usbinjectall.kext provided by pastrychef, (worked with my Mojave before), no luck. So I might try rebuild cache and see if it will work. If not, I guess I will roll back to Mojave first, then modify the SSDT and then upgrade to Catalina again to see if it will work. If not I will keep in Mojave for a while until I found the solution.
Thanks in advance
 
Last edited:
Hi there,

do you mind sharing how to rebuilding the kext caches? I am a newbie and not too sure how to do it..
Thanks in advance

Launch Terminal and enter the following:
Code:
sudo kextcache -i /
 
Yes, usually in a case when the port enumeration misses one out, there is a duplication of addresses in the SSDT. This didn't appear to be the case. A Z370 XHC definitely has an HS14 though so it is certainly something along those lines. If you post an IORegistryExplorer export when the port is missing we can explore in more depth. :)
 
Yes, usually in a case when the port enumeration misses one out, there is a duplication of addresses in the SSDT. This didn't appear to be the case. A Z370 XHC definitely has an HS14 though so it is certainly something along those lines. If you post an IORegistryExplorer export when the port is missing we can explore in more depth. :)
Here is my ioreg explorer
 

Attachments

  • frzzzk’s iMac.ioreg
    8.9 MB · Views: 76
Here is my ioreg explorer

Hello.

Okay, with the SSDT in place you need to *disable* the port-limit removal patches. In your latest EFI upload they are enabled, overriding the SSDT.

So first step is to disable the two patches, save, reboot and then check if HS14 is still absent.

:)
 
Hello.

Okay, with the SSDT in place you need to *disable* the port-limit removal patches. In your latest EFI upload they are enabled, overriding the SSDT.

So first step is to disable the two patches, save, reboot and then check if HS14 is still absent.

:)
Good morning
I rebooted with rplp disabled, and I still cannot see the hs14 port. The port is listed from hs1 to hs13, then ss01 and ss02
here is a screen shot:
1578322831287.png
 
Back
Top