Tubardus Posted April 19, 2020 Author Share Posted April 19, 2020 Hello! I tried different firmwares to try to fix it. Some of them just don't load while others effectively change the version of the firmware. Among them the 5799 seems to be compatible (but BT doesn't work). However, I found strange to read BCM2045A0 since the card is a BCM4350C50. Could it explain some of the issues? Maybe there's a link between BT and USB? How can I see if USB is well configured (from Hackintool?)? @Hervé, can you tell me what do you see in SysInfo? I see BCM2045A0 : Identifiant du produit : 0x6412 ,Identifiant du fournisseur : 0x0a5c (Broadcom Corp.). It should be BCM4350C50 no? Spoiler 2020-04-19 15:06:18.014611+0200 0x4e2 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: Version 2.5.2 starting on OS X Darwin 19.4. 2020-04-19 15:06:18.636338+0200 0x4e2 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Loaded firmware "0a5c-6412_v5799.hex" from resources. 2020-04-19 15:06:18.638933+0200 0x4e2 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Non-compressed firmware. 2020-04-19 15:06:18.813378+0200 0x4e2 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Firmware is valid IntelHex firmware. 2020-04-19 15:06:18.922334+0200 0x4e2 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: uploadFirmware could not open the device! 2020-04-19 15:06:18.923745+0200 0x4e2 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: Processing time 0.103 seconds. 2020-04-19 15:06:18.928231+0200 0x608 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: Version 2.5.2 starting on OS X Darwin 19.4. 2020-04-19 15:06:19.028789+0200 0x608 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: [0a5c:6412]: USB [3052CBE79732 v274] "BCM2045A0" by "Broadcom Corp" 2020-04-19 15:06:19.391180+0200 0x608 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: [0a5c:6412]: Firmware upgrade completed successfully. 2020-04-19 15:06:19.411191+0200 0x608 Default 0x0 0 0 kernel: (BrcmPatchRAM3) BrcmPatchRAM: Processing time 0.482 seconds. Link to comment Share on other sites More sharing options...
wsh Posted April 19, 2020 Share Posted April 19, 2020 I think it’s normal to see BCM2045A0, I see the same in windows before installing drivers with the Lenovo version. Herve, I will try this with my 6414, I’m on my phone now and I don’t quite understand what you did right now, but I’m hoping that when I’m in front of the computer browsing in Xcode I’ll be able to follow. I have a 1560 coming in the mail but if I can get this Lenovo one working then that’s $25 cheaper. if the 1560 is way more stable I might just do the jump and forget about it, but I really want this one to work since it’s been such a pain. Link to comment Share on other sites More sharing options...
swatchie-1 Posted April 19, 2020 Share Posted April 19, 2020 Hi Herve, I've been silently following your posts and been spending 3 days trying to figure out how to make my bluetooth work but to no avail. I can connect to my bluetooth headphones the first time. After it sleeps or reboots, the bluetooth will no longer connect. I have updated to the latest C5974 as shown. Am using the CN-0VW3T3. Can you advise what else I should try? I am currently using your latest 3 Kexts from your few posts above in my L/E injected and rebuilt: BrcmBluetoothInject.kext BrcmFirmwareRepo.kext BrcmPatchRAM3.kext. Also having FakePCIID.kext in my E/C/K/O Link to comment Share on other sites More sharing options...
Tubardus Posted April 19, 2020 Author Share Posted April 19, 2020 Happy to see that I'm not alone with this issue (and hoping we'll all find solutions!). I don't know how this can be important but I noticed that in in.plist of BRCM bluetoothInjector the IOProbeScore is 3000 and is 4000 in BrcmPatchRam all two for our 0a5c_6412. Shouldn't it be the same, say 4000? Link to comment Share on other sites More sharing options...
Administrators Hervé Posted April 20, 2020 Administrators Share Posted April 20, 2020 @Tubardus, those cards are combo: they have a wireless chip (BCM4350) and a Bluetooth chip (BCM2045A0). The two are totally separate things. 1 Link to comment Share on other sites More sharing options...
swatchie-1 Posted April 20, 2020 Share Posted April 20, 2020 Dear @Tubardus and @Hervé after another sleepness night, I've managed to get my bluetooth working now. After sleeping, waking up, rebooting, it still works. I followed the solution by @swede420 and Herve's at https://osxlatitude.com/forums/topic/12392-solved-7490-catalina-dw1820a-bluetooth-problem/ I used Swede420's kexts and put them in E/C/K/O and it's working now. Apart from these 3 Kexts, I also have FakePCIID.kext and FakeSMC.kext in there. Inject Kexts in Clover is set to Yes. Now airdrop, handoff, bluetooth speakers, bluetooth hotspot with iPhone is working. What is not working is the Apple Watch Auto Unlock and iPhone Personal hotspot via the Wifi. For some reason it always say Fail to connect. I also have to select it twice for it to respond. I also followed @Hervé 's advice on rebooting to windows, then the bluetooth driver will update it back from c5974 to c4689 which works for me now. I hope this guide will help other DW1820a users too. @Hervé do you know if setting pci-aspm-default to 1 is a good idea and saves more power? Cheers. Link to comment Share on other sites More sharing options...
Administrators Hervé Posted April 20, 2020 Administrators Share Posted April 20, 2020 I've never really looked into this PCIe auto power setting matter so I'm afraid I don't know. It's not a boolean parameter if that's what you thought. I found that some cards on some laptops require this to be disabled (value 0). But, on my 7490 for instance, I didn't have to touch this with the 2 x DW1820a 0VW3T3 cards I initially bought. On the other hand, it was required with other DW1820a models... Anyway, that's off-topic. Link to comment Share on other sites More sharing options...
Tubardus Posted April 20, 2020 Author Share Posted April 20, 2020 I just tried the solution proposed by @swatchie-1 that is inject 4 additional kexts which are the 3 of this thread and PCIID version 1.3.15 (old one). And it worked! I confirm that the version of BT shows now v_4689. Mouse, keyboard, speakers earphones all connected and fully working. Now we know that the proper way to use kext is to install them in L/E rebuild and repair. So maybe we should try to load them from L/E and see if it works keeping in mind that BRCMFirmwareData is not made to be in L/E. Repo is. Thanks! Link to comment Share on other sites More sharing options...
swatchie-1 Posted April 20, 2020 Share Posted April 20, 2020 @Tubardus good to know. Now check and see if you can get Apple watch's auto unlock feature to work. Link to comment Share on other sites More sharing options...
Tubardus Posted April 21, 2020 Author Share Posted April 21, 2020 Ok, after several tests I can tell you that I haven't found a way to have a good behavior of BT when caching kexts. No matter which BRCM kexts (2.5.2 or 2.2.10) Data or Repo. All with fakePCIID of course. None of those configuration gave back to me BT. For now the only way is to inject from E/C/k/O I order to have BT. The associated firmware is then 4689 (= 8785 - 4096). It seems that a "mini driver" is loaded which corresponds to BCM4350C5_003.006.007.0222.4689_v8785 by brcmpatchram2. Maybe I should load it from Repo in L/E? Spoiler 2020-04-21 14:10:00.922997+0200 0x73 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Firmware store start 2020-04-21 14:10:04.627062+0200 0x240 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource Callback: dc008006. 2020-04-21 14:10:04.627113+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource: 00000000 2020-04-21 14:10:04.757306+0200 0x240 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource Callback: dc008006. 2020-04-21 14:10:04.757360+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource: 00000000 2020-04-21 14:10:04.816034+0200 0x240 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource Callback: dc008006. 2020-04-21 14:10:04.816070+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource: 00000000 2020-04-21 14:10:04.836481+0200 0x240 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: OSKextRequestResource Callback: dc008006. 2020-04-21 14:10:04.836520+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Loaded compressed embedded firmware for key "BCM4350C5_003.006.007.0222.4689_v8785". 2020-04-21 14:10:04.836739+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Decompressed firmware (12582 bytes --> 31740 bytes). 2020-04-21 14:10:04.836922+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Firmware is valid IntelHex firmware. 2020-04-21 14:10:04.836946+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: USB [3052CBE79732 v274] "BCM2045A0" by "Broadcom Corp" 2020-04-21 14:10:05.237080+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Available composite configurations: 1. 2020-04-21 14:10:05.238360+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Set device configuration to configuration index 0 successfully. 2020-04-21 14:10:05.238365+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: USBDeviceShim::findFirstInterface 2020-04-21 14:10:05.238370+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: getValidatedInterface returns <private> 2020-04-21 14:10:05.238374+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Interface 0 (class ff, subclass 01, protocol 01) located. 2020-04-21 14:10:05.238390+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: set configuration and interface opened 2020-04-21 14:10:05.238393+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: findPipe: direction = 1, type = 3 2020-04-21 14:10:05.238396+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: endpoint found: epDirection = 1, epType = 3 2020-04-21 14:10:05.238399+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: found matching endpoint 2020-04-21 14:10:05.238577+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: findPipe: direction = 0, type = 2 2020-04-21 14:10:05.238580+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: endpoint found: epDirection = 1, epType = 3 2020-04-21 14:10:05.238583+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: endpoint found: epDirection = 1, epType = 2 2020-04-21 14:10:05.238587+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: endpoint found: epDirection = 0, epType = 2 2020-04-21 14:10:05.238589+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: found matching endpoint 2020-04-21 14:10:05.238762+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: got pipes 2020-04-21 14:10:05.438794+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: State "Unknown" --> "Initialize". 2020-04-21 14:10:05.440138+0200 0x165 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: READ VERBOSE CONFIG complete (status: 0x00, length: 10 bytes). 2020-04-21 14:10:05.440143+0200 0x165 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Firmware version: v4096. 2020-04-21 14:10:05.440150+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: State "Initialize" --> "Firmware version". 2020-04-21 14:10:05.440155+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: getFirmware 2020-04-21 14:10:05.440158+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Retrieved cached firmware for "BCM4350C5_003.006.007.0222.4689_v8785". 2020-04-21 14:10:05.441109+0200 0x165 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: DOWNLOAD MINIDRIVER complete (status: 0x00, length: 4 bytes). 2020-04-21 14:10:05.441117+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: State "Firmware version" --> "Mini-driver complete". 2020-04-21 14:10:05.799130+0200 0x165 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: END OF RECORD complete (status: 0x00, length: 4 bytes). 2020-04-21 14:10:05.799138+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: State "Instruction write" --> "Firmware written". 2020-04-21 14:10:06.051283+0200 0x165 Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Unknown event code (0xff). 2020-04-21 14:10:06.051305+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: State "Firmware written" --> "Reset complete". 2020-04-21 14:10:06.051444+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Device status 0x00000003. 2020-04-21 14:10:06.051453+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: State "Reset complete" --> "Update complete". 2020-04-21 14:10:06.051462+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: Firmware upgrade completed successfully. 2020-04-21 14:10:06.051521+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: Processing time 5.709 seconds. 2020-04-21 14:10:06.055522+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: probe 2020-04-21 14:10:06.055537+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: Version 2.2.10 starting on OS X Darwin 19.4. 2020-04-21 14:10:08.055684+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: [0a5c:6412]: BrcmPatchRAMResidency does not appear to be available. 2020-04-21 14:10:08.055690+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: getFirmware 2020-04-21 14:10:08.055695+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM: Retrieved cached firmware for "BCM4350C5_003.006.007.0222.4689_v8785". 2020-04-21 14:10:08.055723+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: uploadFirmware could not open the device! 2020-04-21 14:10:08.055726+0200 0x1ab Default 0x0 0 0 kernel: (kernel) BrcmPatchRAM2: Processing time 2.0 seconds. Sorry @swatchie-1, I don't have an apple watch to perform your test. Link to comment Share on other sites More sharing options...
Recommended Posts