Jump to content

BrcmPatchRAM2 for 10.15 Catalina (Broadcom bluetooth firmware upload)


headkaze
429 posts in this topic

Recommended Posts

I have upgraded to my Latitude E6410 to Catalina 10.15.4.  Bluetooth continues to work well with my Broadcom BCM 94352HMB and the kext installation listed below.  I am running CLOVER (Legacy) r5109.

  • CLOVER r5109 (Legacy): Inject Kexts = YES (not DETECT)
  • Kexts in E/C/k/O
    • BrcmFirmwareData.kext v2.5.1
    • BrcmPatchRAM3.kext v2.5.1
  • Kexts in /L/E
    • Lilu.kext v1.4.2
    • BrcmBluetoothInjector.kext v2.5.1
    • AirportBrcmFixup.kext v2.0.6
    • FakeSMC.kext v6.26
    • IntelMausiEthernet.kext v2.5.0
    • USBInjectAll.kext v0.7.1
    • VoodooPS2Controller.kext (Bronxteck) v6.0.0
    • ACPIBatteryManager.kext v1.90.1
    • FakeSMC_CPUSensor.kext v6.26
    • FakeSMC_GPUSensor.kext v6.26
Edited by tonyx86
Link to comment
Share on other sites

There's a new release of Brcm Bluetooth kexts: https://github.com/acidanthera/BrcmPatchRAM/releases

 

I did not experiment with the bpr_handshake boot argument, but I did try using BrcmPatchRAM3 / BrcmFirmwareRepo in /L/E and my BCM 94352HMB firmware does not update.  With the updated kexts, I still need BrcmPatchRAM3 / BrcmFirmwareData in E/C/k/O (with Clover Inject Kexts = YES) in order for bluetooth firmware to update properly.

Edited by tonyx86
  • Like 1
Link to comment
Share on other sites

@Hervé

I have the 6414 device (lenovo). I tried your process, using the same firmware Windows is loading, uncompressed Hex in the Repo resources, and changed the plist in patchRAM3.


However, upon reboot I got the v4096 under Bluetooth in System Information, and I'm still getting "cannot open device" in the logs. In the logs I see that it tried to open the hex I specified and it's found and it seems to be valid, not sure what the "device cannot be opened" is about.

 

uHF5d77.pngxmKUPcr.png

 

2020-04-19 15:43:10.530878-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: init
2020-04-19 15:43:10.530893-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: probe
2020-04-19 15:43:10.530897-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: Version 2.5.2 starting on OS X Darwin 19.4.
2020-04-19 15:43:10.530910-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: Device supports handshake.
2020-04-19 15:43:10.799712-0400 0x49b      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: Firmware store start
2020-04-19 15:43:10.799960-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: getFirmware
2020-04-19 15:43:10.799963-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: loadFirmware from disk data 0a5c-6414_v5764
2020-04-19 15:43:10.800485-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource: 00000000
2020-04-19 15:43:11.006736-0400 0x236      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource Callback: dc008006.
2020-04-19 15:43:11.006807-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource: 00000000
2020-04-19 15:43:11.044155-0400 0x236      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource Callback: dc008006.
2020-04-19 15:43:11.044223-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource: 00000000
2020-04-19 15:43:11.062801-0400 0x236      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource Callback: dc008006.
2020-04-19 15:43:11.062861-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource: 00000000
2020-04-19 15:43:11.082013-0400 0x236      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: OSKextRequestResource Callback: 14920 bytes of data.
2020-04-19 15:43:11.082039-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: Loaded firmware "0a5c-6414_v5764.hex" from resources.
2020-04-19 15:43:11.082045-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: Non-compressed firmware.
2020-04-19 15:43:11.082173-0400 0x437      Default     0x0                  0      0    kernel: (BrcmFirmwareRepo) BrcmPatchRAM: Firmware is valid IntelHex firmware.
2020-04-19 15:43:11.082192-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: start
2020-04-19 15:43:11.082260-0400 0x166      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: setPowerState: which = 0x1
2020-04-19 15:43:11.183704-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: uploadFirmware could not open the device!
2020-04-19 15:43:11.183710-0400 0x437      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: Processing time 0.101 seconds.

 

Link to comment
Share on other sites

On 4/20/2020 at 9:54 PM, headkaze said:

For those experiencing the "Failed to Open Device" error there has been a patch by @mishurov. Discussion is here.

 

I've uploaded BrcmPatchRAM v2.5.3 here.

 

Please let us know if it fixes things for you.

 

 

 

 

EDIT: I just reread the GitHub discussion thread and saw @vit9696's comment to @Hervé that BrcmFirmwareRepo.kext will no longer be supported, so I'm withdrawing my question about the kext.  Leaving my post below just to indicate that I tested the 2.5.3 kexts as indicated and they work with BCM 94352HMB Wi-Fi/Bluetooth combo card.

 

--------------------------------------------------------------------

 

@headkaze Thank you for posting the updated kexts!

I was no longer experiencing the "Failed to Open Device" problem after switching from BrcmFirmwareRepo.kext in /L/E to BrcmFirmwareData.kext in E/C/k/O, but I did test with the v2.5.3 Bluetooth kexts and they work fine for the Broadcom BCM 94352HMB Wi-Fi/Bluetooth combo card with the following kext configuration.  

  • CLOVER r5112 (Legacy): Inject Kexts = YES (not DETECT)
  • Kexts in E/C/k/O
    • BrcmFirmwareData.kext v2.5.3
    • BrcmPatchRAM3.kext v2.5.3
  • Kexts in /L/E
    • Lilu.kext v1.4.3
    • BrcmBluetoothInjector.kext v2.5.3
    • AirportBrcmFixup.kext v2.0.6
    • FakeSMC.kext v6.26
Edited by tonyx86
Link to comment
Share on other sites

I would get rid of DW1560 or any with BCM94352Z chipset if favour of BCM94360NG which is natively supported without the need for kext. That seems like a much slicker solution. Basically if motherboard has NGFF M.2 interface go with BCM94360NG card.

Link to comment
Share on other sites

Hi @sash11 thanks for your feedback, it is not a bad idea but.... BCM94360NG costs on eBay an average of 50 USD (!) compared to BCM94352HMB (also called Azurewave AW-CE123H) that is older, yes (can be found around 20 USD on eBay) and used also to be "totally vanilla" in previous macOS versions.... like the BCM94360NG today...

 

So I hope the developers will be in the mood and energy to keep improving the kexts to well support our WLAN modules (BCM94352HMB or other) on Catalina because the next macOS is coming soon... Thanks again to everyone for all your efforts.

Link to comment
Share on other sites

I'm working in this issue since few days ago, but I couldn't make to work in my 10.15.4 fresh installation w/ Opencore.

I had DW1560 [0489:e07a] (Lenovo) and I've installed in EFI/OC/Kexts the three files needed BrcmBluetoothInjector.kext, BrcmFirmwareData.kext, BrcmPatchRAM3.kext (v2.5.0) to make bluetooth works following the OC documentation

I've tried a lot combinations with kext versions but my bluetooth does not work. It seems to be the FW loaded:

 

log show --last boot|grep -i brcmpatch
2020-04-25 03:41:19.242172+0200 0x187      Default     0x0                  0      0    kernel: (BrcmFirmwareData) BrcmPatchRAM: Loaded compressed embedded firmware for key "BCM20702A1_001.002.014.1483.1651_v5747".
2020-04-25 03:41:19.243045+0200 0x187      Default     0x0                  0      0    kernel: (BrcmFirmwareData) BrcmPatchRAM: Decompressed firmware (29732 bytes --> 70201 bytes).
2020-04-25 03:41:19.243871+0200 0x187      Default     0x0                  0      0    kernel: (BrcmFirmwareData) BrcmPatchRAM: Firmware is valid IntelHex firmware.
2020-04-25 03:41:19.344121+0200 0x187      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: [0489:e07a]: USB [48E244E1DF32 v274] "BCM20702A0" by "Broadcom Corp"
2020-04-25 03:41:19.350618+0200 0x187      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: [0489:e07a]: Firmware upgrade not needed.
2020-04-25 03:41:19.350676+0200 0x187      Default     0x0                  0      0    kernel: (BrcmPatchRAM3) BrcmPatchRAM: Processing time 0.106 seconds.

 

732784580_Capturadepantalla2020-04-25alas3_55_23.thumb.png.4eae94cd4eeabf5bab29d43ab075e6d8.pngand it's appears in IORegistryExplorer

 

267303816_Capturadepantalla2020-04-25alas3_56_38.thumb.png.6e7268df68a94331a681b8bac810a752.png

 

And it also appear in System Information > USB > BCM20702A0. But it seem that it bcould not load the bluetooth driver in Catalina 10.15.4

Any suggestion what could be fail???

 

Link to comment
Share on other sites

Yes, I've tested 2.5.0/1/2/3. In v2.5.3 case there is no log about uploading firmware but in 2.5 it does:

 

v2.5.3:

log show --predicate 'processID==0' --last boot | grep -i brcmpatch

Nothing results but the device is detected in IOReg as always.

 

Bluetooth is working fine in WIndows, I've tested multiple times. I've attached de .hex file that is used in windows BCM20702A1_001.002.014.1483.1651.hex.

Maybe the process of uploading firmware that is placed in the data kext does not work correctly in Catalina 10.15.4 or the FW is not the same (WINDOWS), but I cannot confirm since I don't know how to change the existing one _v5747 by the one attached (used in windows) in kext.

 

EDIT: I've used the hex file below from Windows, zlib and xxd to info.plist, compiled the new Kexts but there's no difference. Bluetooth does not work, BCM20702A0 (HS07 USB) is detected, FW is uploaded but bluetooth is unavailable.

 

BCM20702A1_001.002.014.1483.1651.hex

 

The thing is in v2.5.0 the firmware is uploaded as reflectected in logs but BrcmBluetoothInjector.kext doesn't do anything next. 

 

> log show --predicate 'processID==0' --last boot | grep -i Transport
2020-04-26 09:43:36.697934+0200 0x176      Default     0x0                  0      0    kernel: (IOBluetoothFamily) **** [IOBluetoothFamily][SearchForTransportEventTimeOutHandler] -- 'Broadcom USB Host Controller' does not exist in IORegistry causing this missing Bluetooth Controller Transport problem

 

 

image.png

image.png

Link to comment
Share on other sites

Again, not familiar with OC, so hopefully someone else can chime in.  Have you confirmed that your kext loading order is correct?  From this page:

 

Make sure to have kexts like Lilu and VoodooPS2Controller are to be injected first before kexts that require them like WhateverGreen, VirtualSMC, keyboard/Mouse/Trackpad and etc.

Link to comment
Share on other sites

Read Herve's post and I believe you'll find what you're looking for toward the end of the post.

 

Also, if you read this GitHub discussion thread you'll see that BrcmFirmwareRepo.kext will no longer be supported.

Link to comment
Share on other sites

I know you were looking for BrcmFirmwareData.kext, but hopefully you can test with BrcmFirmwareRepo and PatchRAM3 in /L/E just to confirm it works according to Herve's post.

Link to comment
Share on other sites

well, not sure about Herve's version, but i had to confirm that 2.5.3 are working well on my side. bluetooth on/off working, also pairing/ connecting after cold boot/ reboot works. maybe something else still need to be checked? i have only os x on that pc. catalina 19E287.
DW1820a 0VW3T3 0a5c:6412
thanks

Link to comment
Share on other sites

  • 2 weeks later...

Does the bluetooth driver support Handsfree Profile v1.6? I am trying to get Wideband speech (HD audio) during phone calls to work with my DW1830 but no luck.

 

In Audio MIDI setup, bluetooth microphone shows up as Format: 8 KHz whereas on a new MacBook Pro it shows up as 16 KHz and offers much better sound quality.

 

Any insight into this would be much appreciated!

Link to comment
Share on other sites

  • 4 weeks later...

Hey does your kext support my Bluetooth device?

Here is my info:

 Apple Bluetooth-Softwareversion:	7.0.5f6
  Hardware, Funktionen und Einstellungen:
  Name:	iMac
  Adresse:	00-16-A4-58-B6-2F
  Bluetooth Low Energy wird unterstützt:	Ja
  Handoff wird unterstützt:	Ja
  Instant Hotspot unterstützt:	Ja
  Hersteller:	Unknown
  Transport:	USB
  Firmwareversion:	9.4298 (9.8715)
  Bluetooth-Signal:	Ein
  Sichtbar:	Ein
  Verfügbar:	Ja
  Zeigegerät automatisch suchen:	Ein
  Entferntes Beenden des Ruhezustands:	Ein
  Hersteller-ID:	0x04B4
  Produkt-ID:	0xF901
  Bluetooth-Kernspezifikation:	5.0 (0x9)
  HCI-Revision:	0x10CA
  LMP-Version:	5.0 (0x9)
  LMP-Unterversion:	0x220B
  Gerätetyp (Obergruppe):	Computer
  Gerätetyp (komplett):	Mac Desktop
  Composite-Klasse des Geräts:	0x380104
  Geräteklasse (Obergruppe):	0x01
  Geräteklasse (Untergruppe):	0x01
  Dienstklasse:	0x1C0
  Tastatur automatisch suchen:	Ein

Without kext it functions (handoff) but i cant deactivate bluetooth and apple watch unlock doesnt function

Link to comment
Share on other sites

With my DW1820A card 0a56 6412, I found bluetooth firmware 4688 to be the most stable, which a lot of drivers don't seem to use for some reason. 4689 and 5776 definitely have unreliable connections whereas 4688 is solid as a solid thing. (that's when connected to 5ghz wifi as co-ex with 2.4ghz is still an issue as far as I can tell). If you can't see 5ghz wifi, try changing the channel to 44 and not 36 (or auto) on your router)
So I think I have recompiled acidanthera's with 4688 incorporated. All of the info.plists list this so I'm hoping it's ok. I've test on my Mojave 10.14.6 with BrcmFirmwareData.kext and BrcmPatchRAM2.kext in Clover/kexts/other and also BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext in L/E and it seems fine in both instances.
I'm not on Catalina so can't test but if someone with the same card wants to try the files are here but please do so at your own risk.

Thanks again to all you brain boxes.

Brcm.zip

Edited by Julz
Link to comment
Share on other sites

On 4/21/2020 at 2:54 AM, headkaze said:

For those experiencing the "Failed to Open Device" error there has been a patch by @mishurov. Discussion is here.

 

I've uploaded BrcmPatchRAM v2.5.3 here.

 

Please let us know if it fixes things for you.

 

 

 

This version worked perfectly for me. Previously I have not been able to use BRCMRAMPatch3 only BRCMRAMPatch2. Thanks for this update :)

 

I do notice that audio through my BT headphones Cowin E7Pros is stuttering. :(

 

Any chance you can place links to updated kexts in your first post?

Edited by sonicthehedgehog2
Link to comment
Share on other sites

Is there a way in this world to add support for Atheros chipsets that need the firmware uploaded?

 

I believe the first kext was IOath3kfrmwr but worked up to High Sierra. I wish there could be a way to allow the AR3011 to work on Mojave/Catalina.

 

What can be done?

Link to comment
Share on other sites

I've been using BRCMRAMPatch3 for my dw1820a adapter. But there is problem when wake from sleep. The bluetooth stops working when I am using Apple magic keyboard 2 w/ number pad in wireless mode upon wake. But if the keyboard is wired and waking the machine, no problem at all.

 

So I guess the keyboard is messing bluetooth at wake somehow? The kext I use is from acidanthera latest 2.5.3 build.

Link to comment
Share on other sites

×
×
  • Create New...