Contribute
Register

BrcmPatchRAM - Upload firmware into Broadcom Bluetooth USB devices

Status
Not open for further replies.
Joined
Dec 16, 2013
Messages
82
Motherboard
Rampage 6 Extreme
CPU
i9-7900X
Graphics
Aorus 1080ti xTreme
Mac
  1. iMac
Mobile Phone
  1. Android
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.[/FONT][FONT=Helvetica]BrcmPatchRAM2: Published new IOKit personality for BrcmFirmwareStore.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: Published new IOKit personality for BrcmPatchRAMResidency.[/FONT]
[FONT=Helvetica]BrcmPatchRAM: Loaded compressed embedded firmware for key "BCM20703A1_001.001.005.0214.0422_v4518".[/FONT]
[FONT=Helvetica]BrcmPatchRAM: Decompressed firmware (43444 bytes --> 109080 bytes).[/FONT]
[FONT=Helvetica]BrcmPatchRAM: Firmware is valid IntelHex firmware.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: [0a5c:6410]: USB [184F32F7F9BE v274] "BCM2045A0" by "Broadcom Corp"[/FONT]
[FONT=Helvetica][COLOR=#ff0000]BrcmPatchRAM2: [0a5c:6410]: device request failed ("0xe0005000 (UNDEFINED)" 0xe0005000).[/COLOR][/FONT]
[FONT=Helvetica]BrcmPatchRAM2: [0a5c:6410]: Firmware upgrade completed successfully.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: [0a5c:6410]: Published new IOKit personality.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: Processing time 0.949 seconds.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: Version 2.2.3 starting on OS X Darwin 15.3.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: [0a5c:6410]: USB [184F32F7F9BE v274] "BCM2045A0" by "Broadcom Corp"[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: [0a5c:6410]: Firmware upgrade not needed.[/FONT]
[FONT=Helvetica]BrcmPatchRAM2: [0a5c:6410]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".[/FONT]

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


Cheers :)
 

RehabMan

Moderator
Joined
May 2, 2012
Messages
184,103
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Yes, I noticed that too.

So we have these symptoms:
* when I boot with the GMYLE bluetooth in any USB2 port, my screen goes black. When I go blind, I can type my password, hit enter and it continues the boot. I press Command-Ctrl-EjectMedia and it closes the apps, logs off and restarts the computer - clearly it's not frozen.
* when I boot with the GMYLE in any USB3 port it boots and I have display. The PC can go to sleep and when it wakes bluetooth device is still found.
* when I boot without the GMYLE, I have display. When I insert the GMYLE in the USB2 port, it's not discovered/enabled in the menubar (I can open the system preferences but cannot switch it on), neither is it when I then insert it in a USB3 port. However, after a reboot and I insert it in the USB3 port first, then the GMYLE is discovered (but as soon as it's been in a USB2 port it's not working anymore).

The USB3 ports are provided by this board, Inatek with a FL1100 chipset. The USB2 ports are from the motherboard and are ICH10

I never experienced any problems with USB before this and haven't got a clue why it won't accept the GMYLE...


How can I check that? It's this board, in the description they write "Package include: 2x Dupand Cable(Connect Bluetooth)". In a linux forum I read someone confirming t
As you know, the GMYLE is BT4LE.

http://www.tonymacx86.com/el-capitan-laptop-support/173616-guide-10-11-usb-changes-solutions.html
 

RehabMan

Moderator
Joined
May 2, 2012
Messages
184,103
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Wifi works natively, without dsdt mods etc...

You will probably need FakePCIID+FakePCIID_Broadcom_WiFi for Airport branding (to fix subvendor/subdevice).

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

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


Cheers :)

You might check the debug version logs as those logs may help determine which code called hciCommand (that's where the "device request failed" log comes from).
 

Big

Joined
Jan 11, 2013
Messages
156
Motherboard
Gigabyte GA-Z170X-Gaming 3
CPU
i5-6400
Graphics
GTX 750
Mobile Phone
  1. iOS

RehabMan

Moderator
Joined
May 2, 2012
Messages
184,103
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
I studied that guide meticulously but can't find anything that would be helping me.
For example in my DSDT is no EHC1 or EHC2 (but there is a device type EHCI for device EUSB and USBE).
This is my patched DSDT.aml and the non-patched version attached to this post View attachment 181051.
Could you take a look please?

Most DSDTs use EHC1/EHC2, but not all (so it requires that we use our brains).

You need to rename EUSB->EH01, USBE->EH02. Then you can use USBInjectAll.kext.
 

Big

Joined
Jan 11, 2013
Messages
156
Motherboard
Gigabyte GA-Z170X-Gaming 3
CPU
i5-6400
Graphics
GTX 750
Mobile Phone
  1. iOS
Most DSDTs use EHC1/EHC2, but not all (so it requires that we use our brains).
Ah, I didn't know that. Learned something useful today :)

You need to rename EUSB->EH01, USBE->EH02. Then you can use USBInjectAll.kext.
Both instances of each? "Device (EUSB)" and "Notify (\_SB.PCI0.EUSB, 0x02)", "Device (USBE)" and "Notify (\_SB.PCI0.USBE, 0x02)", right?
 

RehabMan

Moderator
Joined
May 2, 2012
Messages
184,103
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Both instances of each? "Device (EUSB)" and "Notify (\_SB.PCI0.EUSB, 0x02)", "Device (USBE)" and "Notify (\_SB.PCI0.USBE, 0x02)", right?

All references to a renamed symbol must be changed. The compiler will tell you if you miss one, and a config.plist patch will change all automatically.
 

Big

Joined
Jan 11, 2013
Messages
156
Motherboard
Gigabyte GA-Z170X-Gaming 3
CPU
i5-6400
Graphics
GTX 750
Mobile Phone
  1. iOS
All references to a renamed symbol must be changed. The compiler will tell you if you miss one, and a config.plist patch will change all automatically.
Ok, I ran a complete set of scenarios --all possible combinations of on and off:
* repatched/recompiled/clover patched DSDT USBE -> EHC1
* enabled/disabled FixUSB_1000 in clover
* with/without installed USBInjectAll.kext (either clover and /s/l/e)
* with/without handoff clover patch
* with/without BrcmPatchRAM2.kext (either clover and /s/l/e versions)
* with/without FakePCIID_XHCIMux.kext and FakePCIID.kext

And Bluetooth handoff stays off, but my initial objective was to get the bluetooth device working in USB2 ports, and that gets the same result every time: whenever BrcmPatchRAM2 is used, inserting the GMYLE in a USB2 port at boot time give a black screen (but still the computer accepts keyboard input) and inserting the GMYLE in a USB2 port after booting results in a non-working bluetooth.
:banghead:

Is it also possible -as with the BCM4322 by booting ubuntu and patching it so it sticks forever- to rebrand on a hardware level it as a native Apple device? Or upgrade the firmware?

Back to the handoff topic: I've read that handoff requires the loading of Brcm4360.kext, and that just won't happen with a BCM4322... moving the device id from Brcm4331.kext to Brcm4360.kext causes KP, would it be possible to use the Brcm4360.kext from Yosemite, as I've read that people got it working back then?
 

RehabMan

Moderator
Joined
May 2, 2012
Messages
184,103
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Ok, I ran a complete set of scenarios --all possible combinations of on and off:
* repatched/recompiled/clover patched DSDT USBE -> EHC1
* enabled/disabled FixUSB_1000 in clover
* with/without installed USBInjectAll.kext (either clover and /s/l/e)
* with/without handoff clover patch
* with/without BrcmPatchRAM2.kext (either clover and /s/l/e versions)
* with/without FakePCIID_XHCIMux.kext and FakePCIID.kext

USB questions are off-topic in this thread.

Please open a separate thread in the appropriate forum.
 

Big

Joined
Jan 11, 2013
Messages
156
Motherboard
Gigabyte GA-Z170X-Gaming 3
CPU
i5-6400
Graphics
GTX 750
Mobile Phone
  1. iOS
USB questions are off-topic in this thread.

Please open a separate thread in the appropriate forum.
Oh, I thought our discussion centers around BrcmPatchRAM? But ok, I'll continue here.

On topic: Is it also possible --as with the BCM4322 by booting ubuntu and patching it so it sticks forever-- to rebrand on a hardware level it as a native Apple device? Or upgrade the firmware?
 
Status
Not open for further replies.
Top