Alex009988 Posted September 25, 2013 Share Posted September 25, 2013 Hello. I decided to create a new topic in order to check and compare how well will it work with the native driver. Many users have problems with BCM57781. And even the BCM5722D(2.3.5) doesn't help for them. For me, BCM5722D works excellently, but I am also keenly interested to try the novelty out. To fix this in BCM5722D.kext you must have wide experience in programming so as to study datasheets and to make necessary changes in code. Having patched the native driver, it should be easier. As was previously started, I think patches are different a little. So I'm gonna write it for each card soon and suggest methods of patches. You know, modern Duet-bootloaders such as Clover, XPC, bareBoot can do patches. Also, we can patch info.plist of its drive if we do create a special kext.(Just as for AppleHDA, and AGMP, for instance). In short, I wanna gather all of necessary information to the one message. I hope it will work well. Patches BCM57780(pci14e4,1692) BCM57781(pci14e4,16b1) This messages will be always updated after we come to know the exact particulars of it. 4 Link to comment Share on other sites More sharing options...
Mieze Posted September 26, 2013 Share Posted September 26, 2013 The patching method I described in http://www.insanelymac.com/forum/topic/292117-broadcom-bcm57781-how-do-i-patch-the-kext-for-ml-1085/ should work for all members of the BCM57785 family. The only thing you'll have to keep in mind is that you need to add the chip's name to the match list in Info.plist, for example "pci14e4,16b5" for the BCM57785. Mieze 1 Link to comment Share on other sites More sharing options...
Alex009988 Posted September 26, 2013 Author Share Posted September 26, 2013 The patching method I described in http://www.insanelymac.com/forum/topic/292117-broadcom-bcm57781-how-do-i-patch-the-kext-for-ml-1085/ should work for all members of the BCM57785 family. The only thing you'll have to keep in mind is that you need to add the chip's name to the match list in Info.plist, for example "pci14e4,16b5" for the BCM57785. Mieze Thank you very much. Look forward to try it out when I get home. Link to comment Share on other sites More sharing options...
Alex009988 Posted September 26, 2013 Author Share Posted September 26, 2013 Unfortunately, for some reason, I couldn't find this stuff in my kext. e8 89 ad ff ff e8 6e ad ff ff e8 65 ae ff ff I attached the driver where I was trying to find it in. What Do I do wrong? AppleBCM5701Ethernet.kext.zip Link to comment Share on other sites More sharing options...
Mieze Posted September 26, 2013 Share Posted September 26, 2013 Unfortunately, for some reason, I couldn't find this stuff in my kext. e8 89 ad ff ff e8 6e ad ff ff e8 65 ae ff ff I attached the driver where I was trying to find it in. What Do I do wrong? Although the version number is still 3.6.9 you are using a newer build so that the instructions to patch have changed: 706b: ba 2c 00 00 00 mov $0x2c,%edx 7070: e8 7b a8 ff ff callq 18f0 <__ZN11BCM5701Enet10superClassE-0x1f7e8> 7075: 66 89 83 1a 05 00 00 mov %ax,0x51a(%rbx) 7086: ba 2e 00 00 00 mov $0x2e,%edx 708b: e8 60 a8 ff ff callq 18f0 <__ZN11BCM5701Enet10superClassE-0x1f7e8> 7090: 66 89 83 1c 05 00 00 mov %ax,0x51c(%rbx) 6f8f: ba 02 00 00 00 mov $0x2,%edx 6f94: e8 57 a9 ff ff callq 18f0 <__ZN11BCM5701Enet10superClassE-0x1f7e8> 6f99: 66 89 83 18 05 00 00 mov %ax,0x518(%rbx) Mieze 1 Link to comment Share on other sites More sharing options...
Alex009988 Posted September 26, 2013 Author Share Posted September 26, 2013 Thank you for your answer, but unfortunately it still doesn't work for me. Here what I've done. Added this line to the plist <string>pci14e4,1692</string> Looked at Broadcom NetLink BCM57780 Gigabit Ethernet Controller: Name: ethernet Type: ethernet Bus: PCI Slot: Built In Vendor ID: 0x14e4 Device ID: 0x1692 Subsystem Vendor ID: 0x1025 Subsystem ID: 0x0308 Revision ID: 0x0001 Link Width: x1 BSD name: en0 Kext name: BCM5722D.kext Location: /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/BCM5722D.kext Version: 2.3.5 And did so Patches 1) subsystem-vendor-id from e8 7b a8 ff ff to b8 25 10 00 00 2) subsystem-id from e8 60 a8 ff ff to b8 08 03 00 00 3) device-id from e8 57 a9 ff ff to b8 92 16 00 00 --------- After I fixed permissoins and rebooted my laptop At "Ethernet cards" I saw This computer does not appear to have any PCI Ethernet cards installed. At console 26/09/13 19:35:05,582 com.apple.kextd[14]: WARNING - Invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext "/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM5701Ethernet.kext" 26/09/13 19:35:13,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 0 1692 initConfig - unknown chip 26/09/13 19:35:13,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 1fe 80 initConfig - configuration error - RX descriptor count > RX receive count 26/09/13 19:35:13,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 0 0 getAdaptorInfo - error setting up configuration data 26/09/13 19:35:13,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 0 0 start - getAdapterInfo failed, giving up It seems to be a famous mistake with getAdapterInfo. Some information is written at this article, but unfortunately it's enoght old for my case. http://translate.google.ru/translate?hl=ru&sl=ru&tl=en&u=http%3A%2F%2Fwww.applelife.ru%2Fthreads%2Fpatching-applebcm5701ethernet-kext.27866%2F Unfortunately, I still don't gain an understanding of what to change. I would really apreciate it if you could give me a hint for it. I also attached my patched driver. Thanks in advance! Patched_AppleBCM5701Ethernet.kext.zip Link to comment Share on other sites More sharing options...
Mieze Posted September 26, 2013 Share Posted September 26, 2013 I will analyze your patched kext tonight when I have more time but the fact that you get that "unknown chip" error messages shows that you made a mistake while patching it. In case of success your NIC would be reported as BCM57765. Mieze Thank you for your answer, but unfortunately it still doesn't work for me. Here what I've done. 3) device-id from e8 57 a9 ff ff to b8 92 16 00 00 --------- This is wrong, it should be b8 b4 16 00 00 mov $0x16b4,%eax in order to fake a BCM57765 which is natively supported. Mieze 1 Link to comment Share on other sites More sharing options...
Alex009988 Posted September 26, 2013 Author Share Posted September 26, 2013 Thank you. It still doesn't work but card is detected. Ethernet Cards Broadcom 57765-A0: Name: ethernet Type: ethernet Bus: PCI Slot: Built In Vendor ID: 0x14e4 Device ID: 0x1692 Subsystem Vendor ID: 0x1025 Subsystem ID: 0x0308 Revision ID: 0x0001 Link Width: x1 BSD name: en0 Kext name: AppleBCM5701Ethernet.kext Location: /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM5701Ethernet.kext mDNS offload capable: 00:26:9e:b9:14:96 Version: 3.6.9b9 PCI Cards Broadcom 57765-A0: Name: ethernet Type: ethernet Driver Installed: Yes MSI: Yes Bus: PCI Slot: Built In Vendor ID: 0x14e4 Device ID: 0x1692 Subsystem Vendor ID: 0x1025 Subsystem ID: 0x0308 Revision ID: 0x0001 Link Width: x1 Link Speed: 2.5 GT/s Console 26/09/13 21:13:40,407 com.apple.kextd[14]: WARNING - Invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext "/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM5701Ethernet.kext" 26/09/13 21:13:44,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 0 ffffffff ReadInRom: no 2nd code header found But it says that my card is unplugged every time even if I put it out and plug it up again. When I had switched off my wifi in order to watch if the driver would transmit any pockets, I did make sure that it got totally stuck. Zero packets. I attached the kext with the correction of mistake. EDIT1 I forgot to add. Device (RP06) { Name (_ADR, 0x001C0005) // _ADR: Address OperationRegion (PXCS, PCI_Config, 0x40, 0xC0) Field (PXCS, AnyAcc, NoLock, WriteAsZeros) { Offset (0x12), , 13, LASX, 1, Offset (0x1A), ABPX, 1, , 2, PDCX, 1, , 2, PDSX, 1, Offset (0x1B), LSCX, 1, Offset (0x20), Offset (0x22), PSPX, 1, Offset (0x98), , 30, HPEX, 1, PMEX, 1, , 30, HPSX, 1, PMSX, 1 } Device (LAN0) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x0A) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "model", Buffer (0x36) { "Broadcom NetLink BCM57780 Gigabit Ethernet Controller" }, "built-in", Buffer (One) { 0x01 }, "location", Buffer (0x02) { "1" }, "device-type", Buffer (0x09) { "Ethernet" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x05 }) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR09) } Return (PR09) } } This is my part of DSDT which was working perfectly with BCM5722D. I said about it just in case if it could help. V2Patched_AppleBCM5701Ethernet.kext.zip Link to comment Share on other sites More sharing options...
Mieze Posted September 26, 2013 Share Posted September 26, 2013 The subsystem-vendor-id, which should be 0x14e4, and the subsystem-id, which should be 0x16b4, are still incorrect. They need to be valid or the driver will reject the device. Mieze Link to comment Share on other sites More sharing options...
Alex009988 Posted September 26, 2013 Author Share Posted September 26, 2013 The subsystem-vendor-id, which should be 0x14e4, and the subsystem-id, which should be 0x16b4, are still incorrect. They need to be valid or the driver will reject the device. Mieze Unfortunately, still doesn't work. 26/09/13 21:54:20,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 0 ffffffff ReadInRom: no 2nd code header found The information about driver is the same as in eighth message. My patch 1) subsystem-vendor-id from e8 7b a8 ff ff to b8 e4 14 00 00 2) subsystem-id from e8 60 a8 ff ff to b8 b4 16 00 00 3) device-id from e8 57 a9 ff ff to b8 b4 16 00 00 V3PatchAppleBCM5701Ethernet.kext.zip Link to comment Share on other sites More sharing options...
Mieze Posted September 26, 2013 Share Posted September 26, 2013 26/09/13 21:54:20,000 kernel[0]: AppleBCM5701Ethernet [1000001e6, LAN0]: 0 ffffffff ReadInRom: no 2nd code header found The members of the BCM57785 family use an internal or external flash memory to load configuration data and firmware. According to the error message the content of this memory is not as expected by the driver. As the patch is confirmed to work for Asrock boards with the BCM57781(I received positive reports for ML and Mavericks beta.) I don't know if the problem is related to the different NIC or an inappropriate firmware in the flash memory. Which board do you use? Mieze Link to comment Share on other sites More sharing options...
Alex009988 Posted September 27, 2013 Author Share Posted September 27, 2013 Good morning. I have laptop. Boards for each laptop are different. Motherboard Properties: Motherboard ID <DMI> Motherboard Name Acer Aspire 8942G I also attached IOReg with BCM5701Enet and report from AIDA. Maybe it will help. Just for your information, some old AppleBCM5701Ethernet worked for me. But I refused from it as it often stopped and didn't work after sleep. I can't find that kext to show you as it was on OSX86 but they changed their site and all of the links disappeared. IOReg.zip Report8942.htm.zip Link to comment Share on other sites More sharing options...
bretticus Posted October 6, 2013 Share Posted October 6, 2013 Hi guys. I have an Asrock Z77 Extreme4 board, and I just updated from ML to Mavericks. Everything seems to be working except ethernet. I have the BCM57781, and the old kext does not seem to work anymore. I have searched extensively and found this thread as well as the previous. Consequently, I have attempted to patch the AppleBCM5701Ethernet.kext file as explained, but I still cannot see any devices listed in System Report. I did make sure to add the info to the Info.plist as well, so that shouldn't be the problem. When I look at Console, I seem to be getting errors regarding "no compatible dependency" with com.apple.iokit.IOEthernetAVBController. I'm not sure exactly what this means. Any help would be much appreciated. I have attached my current patch. It's version 3.6.9b9, I believe. I also opened it in disassembler, and the calls seem to be patched as described. Thank you! AppleBCM5701.zip Link to comment Share on other sites More sharing options...
bretticus Posted October 6, 2013 Share Posted October 6, 2013 Nevermind, got it working. See post at http://www.insanelymac.com/forum/topic/292388-109-gm-released/?p=1951276. Thanks! 1 Link to comment Share on other sites More sharing options...
donmotumbo Posted October 6, 2013 Share Posted October 6, 2013 Nevermind, got it working. See post at http://www.insanelymac.com/forum/topic/292388-109-gm-released/?p=1951276. Thanks! Thanks, it worked with my BCM57785, I only had to add the dev-id to the info.plist, although is 3.6.9b2 it works awesome EDIT: Looks like the driver losses connection when doing heavy activity ( Wi-Fi tethering, torrent downloads, etc) Link to comment Share on other sites More sharing options...
Alex009988 Posted October 8, 2013 Author Share Posted October 8, 2013 Thanks, it worked with my BCM57785, I only had to add the dev-id to the info.plist, although is 3.6.9b2 it works awesome EDIT: Looks like the driver losses connection when doing heavy activity ( Wi-Fi tethering, torrent downloads, etc) Also it should not work after sleep? I afraid it is almost impossible to solve. Did you try this driver if you want not to lost the connecting during the heavy traffic.http://www.insanelymac.com/forum/files/file/79-bcm5722d/ Link to comment Share on other sites More sharing options...
Mieze Posted October 8, 2013 Share Posted October 8, 2013 Also it should not work after sleep? I afraid it is almost impossible to solve. Did you try this driver if you want not to lost the connecting during the heavy traffic. http://www.insanelymac.com/forum/files/file/79-bcm5722d/ Well, it's a known weakness of Apple's Broadcom driver after wakeup. Even my 2011 iMac is affected. At least it recovers the connection after 5 seconds. I'm not sure if this is a hardware problem or related to the driver. Mieze Link to comment Share on other sites More sharing options...
donmotumbo Posted October 9, 2013 Share Posted October 9, 2013 Well, it's a known weakness of Apple's Broadcom driver after wakeup. Even my 2011 iMac is affected. At least it recovers the connection after 5 seconds. I'm not sure if this is a hardware problem or related to the driver. Mieze It seems that I've solved the problem, I manually configured the interface so I disabled AVB/EAV mode and selected the other parameters to 100baseTX and duplex, it solved the problem for me and after sleep it continued working fine, and I tested this on the internet connection of my university campus (100mbps upload and download) Hope this helps, and thanks for the driver! Link to comment Share on other sites More sharing options...
Recommended Posts