Contribute
Register

BrcmPatchRAM - Upload firmware into Broadcom Bluetooth USB devices

Status
Not open for further replies.
Hi Rehabman,

I have OSX10.11.5 on Asrock Z170 Gaming I7 and I have installed it with the help of this thread (although this thread is for the similar model Z170 Gaming ITX with bundled BCM94352): https://www.tonymacx86.com/threads/...e-skylake-fatal1ty-z170-gaming-itx-ac.180383/

I have installed a BCM94352HMB into the Mini PCI-E slot.
WLAN is working perfect.
I have placed "BrcmFirmwareRepo.kext" and "BrcmPatchRAM2.kext" into /L/E and Bluetooth-Symbol is active, but the search for Bluetooth-devices doesn't find any devices.
There is an excerpt from the syslog (2 times of restart):

Code:
Feb  3 16:09:46 localhost kernel[0]: BrcmPatchRAM2: Version 2.2.7 starting on OS X Darwin 15.5.
Feb  3 16:09:46 localhost kernel[0]: BrcmPatchRAM2: Published new IOKit personality for BrcmFirmwareStore.
Feb  3 16:09:46 localhost kernel[0]: BrcmPatchRAM2: Published new IOKit personality for BrcmPatchRAMResidency.
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM: Loaded firmware "BCM20702A1_001.002.014.1443.1449_v5545.zhx" from resources.
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM: Decompressed firmware (29701 bytes --> 70101 bytes).
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM: Firmware is valid IntelHex firmware.
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: USB [3052CBEA9A76 v274] "BCM20702A0" by "Broadcom Corp"
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: Firmware upgrade completed successfully.
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Feb  3 16:09:47 localhost kernel[0]: BrcmPatchRAM2: Processing time 1.80 seconds.
Feb  3 16:09:47 Voyager4 kernel[0]: BrcmPatchRAM2: Version 2.2.7 starting on OS X Darwin 15.5.
Feb  3 16:09:47 Voyager4 kernel[0]: BrcmPatchRAM2: uploadFirmware could not open the device!
Feb  3 16:09:47 Voyager4 kernel[0]: BrcmPatchRAM2: [413c:8143]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Feb  3 16:09:47 Voyager4 kernel[0]: BrcmPatchRAM2: Processing time 0.7 seconds.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: Version 2.2.7 starting on OS X Darwin 15.5.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: Published new IOKit personality for BrcmFirmwareStore.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: Published new IOKit personality for BrcmPatchRAMResidency.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM: Loaded firmware "BCM20702A1_001.002.014.1443.1449_v5545.zhx" from resources.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM: Decompressed firmware (29701 bytes --> 70101 bytes).
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM: Firmware is valid IntelHex firmware.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: USB [3052CBEA9A76 v274] "BCM20702A0" by "Broadcom Corp"
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: Firmware upgrade not needed.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: Processing time 0.273 seconds.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: Version 2.2.7 starting on OS X Darwin 15.5.
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: uploadFirmware could not open the device!
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: [413c:8143]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Feb  3 16:28:34 localhost kernel[0]: BrcmPatchRAM2: Processing time 0.15 seconds.

One time the firmware-upgrade was successful, the second time not needed, but in all 2 cases there is the message "uploadFirmware could not open the device".
What I'm doing wrong?

I have attached a zip with ioreg, console-commands and CLOVER-folder.

There is also an image of System->Information showing BT is there:

View attachment 234397

Hope you can have a look at it.

Regards mimo

Looks normal. May be a hardware problem or antenna issue...
 
Mh, I have no external antenna, thought the card have internal antennas as the WIFI is also working w/o external antenna?
Sure it has U-FL antenna connectors...
Do I need external antenna for BT?

Regards mimo
 
Mh, I have no external antenna, thought the card have internal antennas as the WIFI is also working w/o external antenna?
Sure it has U-FL antenna connectors...
Do I need external antenna for BT?

Regards mimo

Antennas required.
 
I'm having problems using BRCMpatchRAM. I'm using an IOgear GBU521 (recommended bluetooth dongle) and worked without BCRMpatchRAM but keyboard sometimes was not recognised after wake from sleep, and takes 30-60 seconds to become active. I installed latest version of the firmware utility and the firmware of the dongle updated from 4096 to 5860, so the utility is working, but my problem is that if i put the computer to sleep it automatically wakes up after about 10 seconds in sleep. If I disconnect bluetooth dongle the system does not wake from sleep.

Attached an IOReg file and a dmesg info after sleep.

Thank you!
 

Attachments

  • ioreg.ioreg
    2.4 MB · Views: 139
  • Screen Shot 2017-05-15 at 20.56.04.png
    Screen Shot 2017-05-15 at 20.56.04.png
    150.3 KB · Views: 217
I'm having problems using BRCMpatchRAM. I'm using an IOgear GBU521 (recommended bluetooth dongle) and worked without BCRMpatchRAM but keyboard sometimes was not recognised after wake from sleep, and takes 30-60 seconds to become active. I installed latest version of the firmware utility and the firmware of the dongle updated from 4096 to 5860, so the utility is working, but my problem is that if i put the computer to sleep it automatically wakes up after about 10 seconds in sleep. If I disconnect bluetooth dongle the system does not wake from sleep.

Attached an IOReg file and a dmesg info after sleep.

Thank you!

"instant wake" can be solved with ACPI patches.
See laptop ACPI guide:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
 
Hi,

(I was incorrect. Turns out BrcmPatchRAM is actually still needed for best results--see the next several posts.)


Don't think this has been mentioned anywhere (sorry if it has), but adding the device ID of this card into BrcmBluetoothInjector.kext allows it to work seemingly 100% natively (Wifi = OOB, Bluetooth allows such things as hotspot. Not sure about Handoff yet, but I'd guess it would work based off using the native drivers):

Update

BCM943602BAED (Dell DW1830)
NGFF Key A+E, 14e4:43ba, 3x3:3 MIMO
Bluetooth: BCM20703A1 (BCM2045A0), 0a5c:6410

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

Wifi works natively, without dsdt mods etc...

Bluetooth works with BrcmPatchRAM
Maybe it can work native, if we can change dev:ven id to 05ac:8290...

However, here is a log from BrcmPatchRAM:
Code:
[FONT=Helvetica]BrcmPatchRAM2: Version 2.2.3 starting on OS X Darwin 15.3.BrcmPatchRAM2: Published new IOKit personality for BrcmFirmwareStore.
BrcmPatchRAM2: Published new IOKit personality for BrcmPatchRAMResidency.
BrcmPatchRAM: Loaded compressed embedded firmware for key "BCM20703A1_001.001.005.0214.0422_v4518".
BrcmPatchRAM: Decompressed firmware (43444 bytes --> 109080 bytes).
BrcmPatchRAM: Firmware is valid IntelHex firmware.
BrcmPatchRAM2: [0a5c:6410]: USB [184F32F7F9BE v274] "BCM2045A0" by "Broadcom Corp"
[COLOR=#FF0000]BrcmPatchRAM2: [0a5c:6410]: device request failed ("0xe0005000 (UNDEFINED)" 0xe0005000).[/COLOR]
BrcmPatchRAM2: [0a5c:6410]: Firmware upgrade completed successfully.
BrcmPatchRAM2: [0a5c:6410]: Published new IOKit personality.
BrcmPatchRAM2: Processing time 0.949 seconds.
BrcmPatchRAM2: Version 2.2.3 starting on OS X Darwin 15.3.
BrcmPatchRAM2: [0a5c:6410]: USB [184F32F7F9BE v274] "BCM2045A0" by "Broadcom Corp"
BrcmPatchRAM2: [0a5c:6410]: Firmware upgrade not needed.
BrcmPatchRAM2: [0a5c:6410]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".[/FONT]

[FONT=Helvetica]BrcmPatchRAM2: Processing time 0.20 seconds.[/FONT]


Cheers :)

Relevant addition to Injector:

Code:
        <key>0a5c_6410</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport</string>
            <key>IOClass</key>
            <string>BroadcomBluetoothHostControllerUSBTransport</string>
            <key>IOProviderClass</key>
            <string>IOUSBHostDevice</string>
            <key>idProduct</key>
            <integer>25616</integer>
            <key>idVendor</key>
            <integer>2652</integer>
        </dict>

Loads with Clover/kexts just fine on Sierra 10.12.5. No PatchRAM/NonPatchRAM kexts needed.
 
Last edited:
Hi,

Don't think this has been mentioned anywhere (sorry if it has), but adding the device ID of this card into BrcmBluetoothInjector.kext allows it to work seemingly 100% natively (Wifi = OOB, Bluetooth allows such things as hotspot. Not sure about Handoff yet, but I'd guess it would work based off using the native drivers):



Relevant addition to Injector:

Code:
        <key>0a5c_6410</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport</string>
            <key>IOClass</key>
            <string>BroadcomBluetoothHostControllerUSBTransport</string>
            <key>IOProviderClass</key>
            <string>IOUSBHostDevice</string>
            <key>idProduct</key>
            <integer>25616</integer>
            <key>idVendor</key>
            <integer>2652</integer>
        </dict>

Loads with Clover/kexts just fine on Sierra 10.12.5. No PatchRAM/NonPatchRAM kexts needed.

Certain functions work without firmware upload (and you should make sure you're running from a cold boot),
but not all features will work...

Unless you're saying it is not a PatchRAM device... and has built-in firmware.
For those devices, I try to add them to BrcmNonPatchRAM.kext and BrcmNonPatchRAM2.kext.
My data shows 0a5c:6410 is a PatchRAM device (there is a Windows firmware uploader driver for it)
 
What should I test?
So far, "certain functions" seems to be all of them. I'm not using either PatchRAM or NonPatchRAM.
 

Attachments

  • Screen Shot 2017-05-27 at 2.48.23 PM.png
    Screen Shot 2017-05-27 at 2.48.23 PM.png
    1.4 MB · Views: 223
What should I test?
So far, "certain functions" seems to be all of them. I'm not using either PatchRAM or NonPatchRAM.

NonPatchRAM is an injector kext just like BrcmBluetoothInjector.kext...
But your device is a PatchRAM device.
Seems likely handoff won't work without proper firmware (of course, lately it doesn't work that well anyway)
 
Status
Not open for further replies.
Back
Top