Jump to content

BCM5722, BCM5754/M, BCM5755/M, BCM5787/M and BCM5906/M NIC driver (32/64-bit)


adlan
 Share

251 posts in this topic

Recommended Posts

Do you know help me for my Broadcom Wifi ?

V: 14e4

D: 4365

Theoretically it is posible. I need to know where do you have your WiFi at your DSDT.

I think you should use AirPortBrcm4331 and edid plist. Perhaps to do bin-patch as well(3143->6543). And correct your DSDT.

This is example of my DSDT.

before


Device (RP01)
{
Name (_ADR, 0x001C0000)
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 (PXSX)
{
Name (_ADR, Zero)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR04 ())
}
Return (PR04 ())
}
}
[/codeBOX]

after

[codeBOX]
Device (RP01)
{
Name (_ADR, 0x001C0000)
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 (ARPT)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0C)
{
"AAPL,slot-name",
Buffer (0x09)
{
"Built In"
},
"device-id",
Unicode ("*"),
"device_type",
Buffer (0x08)
{
"AirPort"
},
"model",
Buffer (0x28)
{
"Atheros AR5B95 Wireless Network Adapter"
},
"subsystem-id",
Buffer (0x04)
{
0x16, 0xE0, 0x00, 0x00
},
"subsystem-vendor-id",
Buffer (0x04)
{
0x5B, 0x10, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR04 ())
}
Return (PR04 ())
}
}
[/codeBOX]

without amending DSDT, my wifi didn't work.

Link to comment
Share on other sites

I think it's the final version. Drivers supports 15 models. I can do nothing more. Driver became twice or four times stable.

A month of testing my BCM5722D stops only two time. But now it stops not at one. While those cessation I could't go to the internet through the Google Chrome, but my uTorrent was working although it lost part of speed.

But nevertheless BCM5722D became really more stable as I can download 10Gb and more. Before it had stopped three or four times.

I think that it was even more better we should study data-sheets and influence of it on chipset. And it already is hard problem.

{ DEVICEID_BCM5722, "BCM5722 NetXtreme Server Gigabit Ethernet" },
{ DEVICEID_BCM5754, "BCM5754 NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5754M, "BCM5754M NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5755, "BCM5755 NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5755M, "BCM5755M NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5787, "BCM5787 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5787M, "BCM5787M NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5906, "BCM5906 NetLink (TM) Fast Ethernet" },
{ DEVICEID_BCM5906M, "BCM5906M NetLink (TM) Fast Ethernet" },
{ DEVICEID_BCM57788, "BCM57788 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5784, "BCM5784 NetLink Gigabit Ethernet" },
{ DEVICEID_BCM57785, "BCM57785 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM57781, "BCM57781 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM57780, "BCM57780 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5752, "BCM5752 NetLink (TM) Gigabit Ethernet" },

#define DEVICEID_BCM5722 0x165A
#define DEVICEID_BCM5754 0x167A
#define DEVICEID_BCM5754M 0x1672
#define DEVICEID_BCM5755 0x167B
#define DEVICEID_BCM5755M 0x1673
#define DEVICEID_BCM5787 0x169B
#define DEVICEID_BCM5787M 0x1693
#define DEVICEID_BCM5906 0x1712
#define DEVICEID_BCM5906M 0x1713
#define DEVICEID_BCM57788 0x1691
#define DEVICEID_BCM5784 0x1698
#define DEVICEID_BCM57785 0x16b5
#define DEVICEID_BCM57781 0x16b1
#define DEVICEID_BCM57780 0x1692
#define DEVICEID_BCM5752 0x1600

Lion_BCM5722D.kext.zip

ML_BCM5722D.kext.zip

SL_BCM5722D.kext.zip

v2.3.1soursesBCM5722D-master.zip

Link to comment
Share on other sites

Hi Alex,

 

First of all, thank you for your work.

I use your driver for my Dell T3500 network card (BCM5761) - it is not in the list, so I add PID to the kext manually (0x1681).

It has freezes on early version, but now it works perfectly.

Except one thing: if I try to connect to AFP file share, I have a kernel panic with IONetworkingFamily.kext appearing on the screen less than for a second, and then reboot. SMB works okay. System is Mountain Lion.

What are you think about this?

Link to comment
Share on other sites

 

 


Hi Alex,

First of all, thank you for your work.
I use your driver for my Dell T3500 network card (BCM5761) - it is not in the list, so I add PID to the kext manually (0x1681).
It has freezes on early version, but now it works perfectly.
Except one thing: if I try to connect to AFP file share, I have a kernel panic with IONetworkingFamily.kext appearing on the screen less than for a second, and then reboot. SMB works okay. System is Mountain Lion.
What are you think about this?

Thank you that you told me BCM5761 works with this driver.
I added your model to the code.
Do Appstore and iCloud work on your computer?
Was Ethernet-card detected as "Built-In"?
I recommend to made some cosmetic to DSDT as well.
For my case it is
before
            Device (RP06)
            {
                Name (_ADR, 0x001C0005)
                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 (PXSX)
                {
                    Name (_ADR, Zero)
                    Name (_PRW, Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR09)
                    }

                    Return (PR09)
                }
            }

after

           Device (RP06)
            {
                Name (_ADR, 0x001C0005)
                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)
                    Method (_DSM, 4, NotSerialized)
                    {
                        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)
                    {
                        0x09, 
                        0x05
                    })
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR09)
                    }

                    Return (PR09)
                }
            }

But if with corection of dsdt it seems dificult.
1) Chameleon, EthernetBuiltIn=Yes
2) XPC

<key>InjectEthernet</key>
<dict>
<key>Vendor</key>
<string>0x8086</string>
<key>Device</key>
<string>0x100f</string>
</dict>
3) Clover(It just sample, you must be assued that it has fix for LAN, see more details in the manual)
<key>FixDsdtMask</key>
<string>0xB5BF</string>
Now driver support sixteen models
{ DEVICEID_BCM5722, "BCM5722 NetXtreme Server Gigabit Ethernet" },
{ DEVICEID_BCM5754, "BCM5754 NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5754M, "BCM5754M NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5755, "BCM5755 NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5755M, "BCM5755M NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5787, "BCM5787 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5787M, "BCM5787M NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5906, "BCM5906 NetLink (TM) Fast Ethernet" },
{ DEVICEID_BCM5906M, "BCM5906M NetLink (TM) Fast Ethernet" },
{ DEVICEID_BCM57788, "BCM57788 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5784, "BCM5784 NetLink Gigabit Ethernet" },
{ DEVICEID_BCM57785, "BCM57785 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM57781, "BCM57781 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM57780, "BCM57780 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5752, "BCM5752 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5761, "BCM5761 NetLink (TM) Gigabit Ethernet" },
#define DEVICEID_BCM5722 0x165A
#define DEVICEID_BCM5754 0x167A
#define DEVICEID_BCM5754M 0x1672
#define DEVICEID_BCM5755 0x167B
#define DEVICEID_BCM5755M 0x1673
#define DEVICEID_BCM5787 0x169B
#define DEVICEID_BCM5787M 0x1693
#define DEVICEID_BCM5906 0x1712
#define DEVICEID_BCM5906M 0x1713
#define DEVICEID_BCM57788 0x1691
#define DEVICEID_BCM5784 0x1698
#define DEVICEID_BCM57785 0x16b5
#define DEVICEID_BCM57781 0x16b1
#define DEVICEID_BCM57780 0x1692
#define DEVICEID_BCM5752 0x1600
#define DEVICEID_BCM5761 0x1681
post-974387-0-39445700-1369766332_thumb.png

 


What are you think about this?

If I won't be able to help you in the letter. You can write about your problem here.
Maybe apianti will help us to improve driver to a greater extent else.
http://www.projectosx.com/forum/index.php?showtopic=2665&pid=29694&mode=threaded&show=0&st=0&do=findComment&comment=29694

 


Hi Alex,

First of all, thank you for your work.
I use your driver for my Dell T3500 network card (BCM5761) - it is not in the list, so I add PID to the kext manually (0x1681).
It has freezes on early version, but now it works perfectly.
Except one thing: if I try to connect to AFP file share, I have a kernel panic with IONetworkingFamily.kext appearing on the screen less than for a second, and then reboot. SMB works okay. System is Mountain Lion.
What are you think about this?

Is your card Fast Ethernet, Gigabit Ethernet, or System Gigabit Ethernet maybe we should edit Register.h a little.
Eh. If adlan came back, it would be cool!

ML_BCM5722D.kext.zip

Lion_BCM5722D.kext.zip

SL_BCM5722D.kext.zip

v2.3.2soursesBCM5722D-master.zip

MyDSDT.aml.zip

MyIOReg.zip

Link to comment
Share on other sites

Thank you that you told me BCM5761 works with this driver. I added your model to the code.

 

Thanks, no need to insert id manually, cool :)

 

Do Appstore and iCloud work on your computer?

 

Yes, full working, and I use them. iMessage also activated and working.

 

Was Ethernet-card detected as "Built-In"?

 

Seems to be no - in PCI Cards I have only videoadapter, and in Ethernet Cards there is not built-in string. But Time Machine is working and I enable LAN fix in clover (I attached my config.plist, FixDsdtMask=0x2087, bit 13 set to 1). I do not use custom dsdt, only Clover fixes.

 

Is your card Fast Ethernet, Gigabit Ethernet, or System Gigabit Ethernet maybe we should edit Register.h a little.

 

Yes, it is Gigabit Ethernet. Whan should I edit and where? I have XCode installed so I can try to compile it on my machine and send you any diagnostic information you need. Also feel free to contact me on email, Skype or ICQ (or in this thread, of course) at any time.

 

Upd. Yep, it compiles succesfully on xCode 4.4

post-36269-0-09496700-1370038181_thumb.jpg

config.plist.zip

Link to comment
Share on other sites

Year. This is a hard problem.

We need to do driver over as our cards are not technically supported wholly by driver.

To amend it we need dig the broadcom's instruction for developers. http://www.broadcom.com/support/ethernet_nic/open_source.php

And each of these are about 660 pages. I'm know programming a little. And it will took me for several mounths to try to solve it.

And nothig can guarantee that it will be sucsefful. But I don't give up from it.

Does kernel panic occur during the connection or transmission of some files?

Does uttrent stops at the time of intense traffic?

Please, describe your problem here as well.

http://www.projectosx.com/forum/index.php?showtopic=2665&pid=29702&mode=threaded&start=#entry29702

Apianti can give me a hint how to solve this problem as it was in the case of problem of inttence traffic.

Link to comment
Share on other sites

We need to do driver over as our cards are not technically supported wholly by driver.

To amend it we need dig the broadcom's instruction for developers. http://www.broadcom....open_source.php

And each of these are about 660 pages. I'm know programming a little. And it will took me for several mounths to try to solve it.

And nothig can guarantee that it will be sucsefful. But I don't give up from it.

I understand how it can be difficult. May be kext can be debugged into an XCode? May be I can somehow trace it and locate the problem?

Upd: Seems to be kernel debugging is too complicated for me and required working network. Anyway, I can try add Log, use kextload, and see log messages in system.log after reboot.

 

 

Does kernel panic occur during the connection or transmission of some files?

Does uttrent stops at the time of intense traffic?

It occurs when I connecting to the AFP file share - sometimes immediately, sometimes after opening volume, folder - no downloading required to reproduce.

Please, describe your problem here as well.

http://www.projectos...art=?do=findComment&comment=29702

Done.

Link to comment
Share on other sites

I understand how it can be difficult. May be kext can be debugged into an XCode? May be I can somehow trace it and locate the problem?

Upd: Seems to be kernel debugging is too complicated for me and required working network. Anyway, I can try add Log, use kextload, and see log messages in system.log after reboot.

 

 

 

It occurs when I connecting to the AFP file share - sometimes immediately, sometimes after opening volume, folder - no downloading required to reproduce.

 

Done.

Year debug version can help what part of code consist error.

And I also replaced Stall to Dropped in BCM5722D.cpp Maybe it will help.

BCM5722D.kext.zip

Link to comment
Share on other sites

Hi!

I've tried an old Version of adlan's kext on SL and got it working by adding device PID 1680 to Info.plist.

 

On ML that doesn't work!

I got failed to load kext message after a while.

 

So could you please be so kind and add BCM5761E with device ID 1680 to the ML define kext?

 

Refering to Moritron's post I think that should work, because it is close to BCM5761.

 

Thanks for your efforts!

Link to comment
Share on other sites

Hi!

I've tried an old Version of adlan's kext on SL and got it working by adding device PID 1680 to Info.plist.

 

On ML that doesn't work!

I got failed to load kext message after a while.

 

So could you please be so kind and add BCM5761E with device ID 1680 to the ML define kext?

 

Refering to Moritron's post I think that should work, because it is close to BCM5761.

 

Thanks for your efforts!

Ok, please try this one. It's debug version. If it works, I'll made a release version that does not spam kernel log

BCM5722D.kext.zip

Link to comment
Share on other sites

Hi Alex!

 

First of all I want to thank you for your great work on the kext and your quick reply.

 

I've tried the debug version and now I don't get any error that the kext can't load when I place it in /S/L/E.

 

When I boot up in verbose-mode I see "BCM5722D..." but I can't see something like "link established, 100M, full duplex" like I saw it in SL.

 

When I look into the systeminfo under the point Ethernet I can't see my card.

 

Do you have any idea how I should go on from now?

 

 

Thank You!

Link to comment
Share on other sites

For example, I have this at verbose mode

BCM5722D (Build date/time: Jun 7 2013 13:26:07)
com.apple.AppleFSCompressionTypeZlib kmod start
com.apple.AppleFSCompressionTypeDataless kmod start
com.apple.AppleFSCompressionTypeZlib load succeeded
com.apple.AppleFSCompressionTypeDataless load succeeded
AppleIntelCPUPowerManagementClient: ready
VoodooPS2SynapticsTouchPad Version 1.8.1 loaded...
my_name_adlan_BCM5722D: Model: BCM57780 NetLink (TM) Gigabit Ethernet
my_name_adlan_BCM5722D: Loaded successfully

I understand so that you don't see correct information in systeminfo.

Mine is

post-974387-0-67470300-1370627160_thumb.png

post-974387-0-64824800-1370627190_thumb.png

If you have problems with that I think you should do some cosmetics

http://www.insanelym...00#entry1918594

 

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

ver 2.3.3

Added support of BCM5761E

I replaced Stall to Dropped as my intuition tell me that it can stop driver

UInt32 BCM5722D::outputPacket(mbuf_t m, void *param)
{
if (txFreeSlot == 0) {
return kIOReturnOutputStall;
}

{ DEVICEID_BCM5722, "BCM5722 NetXtreme Server Gigabit Ethernet" },
{ DEVICEID_BCM5754, "BCM5754 NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5754M, "BCM5754M NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5755, "BCM5755 NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5755M, "BCM5755M NetXtreme Gigabit Ethernet" },
{ DEVICEID_BCM5787, "BCM5787 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5787M, "BCM5787M NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5906, "BCM5906 NetLink (TM) Fast Ethernet" },
{ DEVICEID_BCM5906M, "BCM5906M NetLink (TM) Fast Ethernet" },
{ DEVICEID_BCM57788, "BCM57788 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5784, "BCM5784 NetLink Gigabit Ethernet" },
{ DEVICEID_BCM57785, "BCM57785 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM57781, "BCM57781 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM57780, "BCM57780 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5752, "BCM5752 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5761, "BCM5761 NetLink (TM) Gigabit Ethernet" },
{ DEVICEID_BCM5761E, "BCM5761E NetLink (TM) Gigabit Ethernet" },

#define DEVICEID_BCM5722				 0x165A
#define DEVICEID_BCM5754				 0x167A
#define DEVICEID_BCM5754M				 0x1672
#define DEVICEID_BCM5755				 0x167B
#define DEVICEID_BCM5755M				 0x1673
#define DEVICEID_BCM5787				 0x169B
#define DEVICEID_BCM5787M				 0x1693
#define DEVICEID_BCM5906				 0x1712
#define DEVICEID_BCM5906M				 0x1713
#define DEVICEID_BCM57788				 0x1691
#define DEVICEID_BCM5784				 0x1698
#define DEVICEID_BCM57785				 0x16b5
#define DEVICEID_BCM57781				 0x16b1
#define DEVICEID_BCM57780				 0x1692
#define DEVICEID_BCM5752				 0x1600
#define DEVICEID_BCM5761				 0x1681
#define DEVICEID_BCM5761E				 0x1680

sourses_BCM5722D-master.zip

Lion_BCM5722D.kext.zip

ML_BCM5722D.kext.zip

SL_BCM5722D.kext.zip

Link to comment
Share on other sites

Hi!

 

I had some time now to try to patch my dsdt.

 

I got "Can't find Method DTGP" than, so I copied it from this thread: http://www.insanelym...vice-id-eg-usb/

I got it compiled than, but I still can't see my ethernet device.

 

6hg6qdy7.png

 

In verbose mode I see

BCM5722D (Build date/time: Jun 7 2013 13:26:07)

 

but I can't see

my_name_adlan_BCM5722D: Model: BCM5761E NetLink (TM) Gigabit Ethernet
my_name_adlan_BCM5722D: Loaded successfully

 

For a better overview I've attached a screenshot of my devices in my Dell Latitude E5500 I made with a programm called System Info:

xeeclzuz.png

 

I'll upload my original and patched dsdt file too, so maybe someone can take a look at it and say what might be wrong.

 

 

Thank you for your help!

original.dsl.txt

LANPatch.dsl.txt

Link to comment
Share on other sites

Message for everybody. Unfortunately driver still stops during working of torrents. But not so often how it was in the past.

I think it is problem with queue of pakets and we should create extra condition. Namely restaring queue in the case of stalling

}

 

if (dirty_tx != ldirty_tx)

{

DLog("R1000TxInterrupt cleaned up %d Tx packets\n", ldirty_tx - dirty_tx);

dirty_tx = ldirty_tx;

// restart transmit queue in case we had been stalled

transmitQueue->start();

}

}

https://github.com/paxswill/RealtekR1000SL/...ltekR1000SL.cpp

I took this part of code from here.

But I don't know how to make it correctly for BCM5722D.cpp. What should dirty_tx and inirty_tx be for the case of BCM5722D.

Later I'll try to solve it or maybe apianti will help me if he is not so busy.

 

Link to comment
Share on other sites

I´m using this driver for my BCM5761, it´s working but i have still the same problem then on the old versions.

 

If i have to restart, i´ve to wait 10 - 30 seconds until i power on the machine again.

If i restart without waiting, the kext will not detect a mac address for this device and the networkcard will not work.

 

It would be really great if someone can have a look on this problem.

 

Thanks....

Link to comment
Share on other sites

Hello Alex,

 

please try the attached code. As I don't have access to the hardware the code is completely untested. Therefore I would like you to run some tests for me with the debug build and report back.

 

  1. Check if the kext loads properly and that the adapter gets assigned an IP address.
  2. Ping to another machine in your LAN to verify basic operation.
  3. Use iperf to another machine in your LAN to verify that TCP and UDP are working.

While running the tests keep an eye on the network statistics using Network Utility. Please send me your complete kernel log after the tests so that I can check if everything is working as expected or in case of problems to give me some hints in order to track down the issue. Instead of posting them in the forum you can mail them directly to me. My mail address can be found in the source code of my Realtek driver. I guess you have already noticed that.

 

Good luck!

 

Mieze

BCM5722D-Mieze.zip

  • Like 1
Link to comment
Share on other sites

Thank you so much! I seems that driver doesn't stop as it was before.

I made a debug version and use L2TP connection as my ethernet has 70M/bit of speed. And I've downloaded torrent which size was 11GB and velosity was 8MB/sec(Mbite)

 Darwin Kernel Version 12.4.0: Wed May  1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64vm_page_bootstrap: 2011200 free pages and 69568 wired pageskext submap [0xffffff7f80737000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff8000737000]zone leak detection enabledstandard timeslicing quantum is 10000 usstandard background quantum is 2500 usmig_table_max_displ = 74corecrypto kext started!Running kernel space in FIPS MODEPlist hmac value is    735d392b68241ef173d81097b1c8ce9ba283521626d1c973ac376838c466757dComputed hmac value is 735d392b68241ef173d81097b1c8ce9ba283521626d1c973ac376838c466757dcorecrypto.kext FIPS integrity POST test passed!corecrypto.kext FIPS AES CBC POST test passed!corecrypto.kext FIPS TDES CBC POST test passed!corecrypto.kext FIPS SHA POST test passed!corecrypto.kext FIPS HMAC POST test passed!corecrypto.kext FIPS ECDSA POST test passed!corecrypto.kext FIPS DRBG POST test passed!corecrypto.kext FIPS POST passed!AppleACPICPU: ProcessorId=0 LocalApicId=0 EnabledAppleACPICPU: ProcessorId=1 LocalApicId=2 EnabledAppleACPICPU: ProcessorId=2 LocalApicId=4 EnabledAppleACPICPU: ProcessorId=3 LocalApicId=6 EnabledAppleACPICPU: ProcessorId=4 LocalApicId=1 EnabledAppleACPICPU: ProcessorId=5 LocalApicId=3 EnabledAppleACPICPU: ProcessorId=6 LocalApicId=5 EnabledAppleACPICPU: ProcessorId=7 LocalApicId=7 Enabledcalling mpo_policy_init for TMSafetyNetSecurity policy loaded: Safety net for Time Machine (TMSafetyNet)calling mpo_policy_init for SandboxSecurity policy loaded: Seatbelt sandbox policy (Sandbox)calling mpo_policy_init for QuarantineSecurity policy loaded: Quarantine policy (Quarantine)Copyright (c) 1982, 1986, 1989, 1991, 1993	The Regents of the University of California. All rights reserved.MAC Framework successfully initializedusing 16384 buffer headers and 10240 cluster IO buffer headersIOAPIC: Version 0x20 Vectors 64:87ACPI: System State [S0 S3 S4 S5]AppleSmartBatteryManager: Version 1.32 startingAppleSmartBattery: Using ACPI regular battery information method _BIFAppleIntelCPUPowerManagement: Turbo Ratios 1169AppleIntelCPUPowerManagement: (built 00:59:42 Aug 25 2012) initialization completePFM64 (36 cpu) 0xf80000000, 0x80000000RTC: Only single RAM bank (128 bytes)[ PCI configuration begin ]HWSensors Project Copyright 2013 netkas, slice, usr-sse2, kozlek, navi, THe KiNG, RehabMan. All rights reserved.FakeSMCDevice: 15 preconfigured keys addedSMC: successfully initializedCPUSensors: CPU family 0x6, model 0x1e, stepping 0x5, cores 4, threads 8, TJmax 100CPUSensors: setting platform to k74ACPISensors: 1 temperature sensor addedACPISensors: startedconsole relocated to 0xf80000000PCI configuration changed (bridge=4 device=1 cardbus=0)[ PCI configuration end, bridges 7 devices 18 ][ PCI configuration begin ]PCI configuration changed (bridge=4 device=1 cardbus=0)[ PCI configuration end, bridges 8 devices 33 ]mbinit: done [96 MB total pool size, (64/32) split]Pthread support ABORTS when sync kernel primitives misusedrooting via boot-uuid from /chosen: ADE8849C-03E4-364D-A82C-62E6EBADD3C7Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>RadeonSensors (pci1@0): found ATI Radeon 0x68a1RadeonSensors (pci1@0): ATOMBIOS detectedRadeonSensors (pci1@0): ATOM BIOS: BROADWAYRadeonSensors (pci1@0): using device-id to resolve temperature sensor typeRadeonSensors (pci1@0): adding EverGreen thermal sensorARPT cannot assert wake from D3coldBCM5722D (Build date/time: Jun 12 2013 09:25:17)com.apple.AppleFSCompressionTypeZlib kmod startcom.apple.AppleFSCompressionTypeDataless kmod startcom.apple.AppleFSCompressionTypeZlib load succeededcom.apple.AppleFSCompressionTypeDataless load succeededAppleIntelCPUPowerManagementClient: readyVoodooPS2SynapticsTouchPad Version 1.8.1 loaded...BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterationsmy_name_adlan_BCM5722D: Model: BCM57780 NetLink (TM) Gigabit Ethernetmy_name_adlan_BCM5722D: Loaded successfullyath_get_caps[4038] rx chainmask mismatch actual 1 sc_chainmak 00.849412: ath_get_caps[4013] tx chainmask mismatch actual 1 sc_chainmak 00.854836: Atheros: mac 192.2 phy 14.0 radio 12.00.854852: Use hw queue 0 for WME_AC_BE traffic0.854863: Use hw queue 1 for WME_AC_BK traffic0.854874: Use hw queue 2 for WME_AC_VI traffic0.854886: Use hw queue 3 for WME_AC_VO traffic0.854897: Use hw queue 8 for CAB traffic0.854907: Use hw queue 9 for beacons0.855027: wlan_vap_create : enter. devhandle=0xd1bcc6b8, opmode=IEEE80211_M_STA, flags=0x10.855102: wlan_vap_create : exit. devhandle=0xd1bcc6b8, opmode=IEEE80211_M_STA, flags=0x1.VoodooPS2Mouse Version 1.8.1 loaded...VoodooPS2Trackpad starting: Synaptics TouchPad reports type 0x47, version 7.2No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000USBMSC Identifier (non-unique): 10000000000044C8 0x1221 0x3234 0x0Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SAT0@1F,2/AppleIntelPchSeriesAHCI/PRT5@5/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/WDC WD6400BEVT-22A0RT0 Media/IOFDiskPartitionScheme/Untitled 1@1BSD root: disk0s1, major 1, minor 1Kernel is LP64macx_swapon SUCCESSmy_name_adlan_BCM5722D: Ethernet address 00:26:9e:b9:14:96AirPort_AtherosNewma40: Ethernet address c4:17:fe:4a:2c:56IO80211Controller::dataLinkLayerAttachComplete():  adding AppleEFINVRAM notificationIO80211Interface::efiNVRAMPublished():  Waiting for DSMOS...AtherosNewma40P2PInterface::init name <p2p0> role 1 this 0xffffff80130cc000AtherosNewma40P2PInterface::init() <p2p> role 1BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterationsBCM5722D (setMedium:356): Change medium: kIOMediumEthernetAutoBCM5722D (setMedium:381): Change medium: kLinkDuplexNegotiateBCM5722D (configureLinkAdvertisement:557): advertiseFe: 5E1BCM5722D (configureLinkAdvertisement:558): advertiseGe: 300BCM5722D (startAutoNegotiation:580): Adv reg: 5E1AirPort: Link Down on en0. Reason 1 (Unspecified).en0::IO80211Interface::postMessage bssid changedPrevious Shutdown Cause: 5Sound assertion in AppleMikeyI2C at line 173Sound assertion in AppleMikeyI2C_CD3275 at line 127Sound assertion in AppleMikeyI2C_CD3275 at line 167Sound assertion in AppleMikeyI2C_CD3275 at line 82DSMOS has arrived[IOBluetoothHCIController][start] -- completedAMDJuniperGraphicsAccelerator: ** Device in slot: SLOT-1 **[AGPM Controller] build GPUDict by Vendor1002Device68a123.454686: setWOW_PARAMETERS:wowevents = 2(1)BCM5722D (setupPHY:96): Auxillary status: F537BCM5722D (setupFlowControl:457): flowControl: 3my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: symmetricNTFS driver 3.10 [Flags: R/W].NTFS volume name SYSTEM RESERVED, version 3.1.NTFS-fs error (device /dev/disk1s3, pid 95): ntfs_restart_page_header_is_valid(): $LogFile version 2.0 is not supported.  (This driver supports version 1.1 only.)NTFS-fs error (device /dev/disk1s3, pid 95): ntfs_restart_page_header_is_valid(): $LogFile version 2.0 is not supported.  (This driver supports version 1.1 only.)NTFS-fs error (device /dev/disk1s3, pid 95): ntfs_logfile_check(): Did not find any restart pages in $LogFile and it was not empty.NTFS-fs warning (device /dev/disk1s3, pid 95): ntfs_system_inodes_get(): $LogFile is not clean.  Will not be able to remount read-write.  Mount in Windows.NTFS volume name Acer, version 3.1.NTFS-fs error (device /dev/disk1s5, pid 98): ntfs_restart_page_header_is_valid(): $LogFile version 2.0 is not supported.  (This driver supports version 1.1 only.)NTFS-fs error (device /dev/disk1s5, pid 98): ntfs_restart_page_header_is_valid(): $LogFile version 2.0 is not supported.  (This driver supports version 1.1 only.)NTFS-fs error (device /dev/disk1s5, pid 98): ntfs_logfile_check(): Did not find any restart pages in $LogFile and it was not empty.NTFS-fs warning (device /dev/disk1s5, pid 98): ntfs_system_inodes_get(): $LogFile is not clean.  Will not be able to remount read-write.  Mount in Windows.NTFS-fs warning (device /dev/disk1s5, pid 98): ntfs_system_inodes_get(): Windows is hibernated.  Will not be able to remount read-write.  Run chkdsk.NTFS volume name Files, version 3.1.NTFS-fs error (device /dev/disk0s2, pid 85): ntfs_restart_page_header_is_valid(): $LogFile version 2.0 is not supported.  (This driver supports version 1.1 only.)NTFS-fs error (device /dev/disk0s2, pid 85): ntfs_restart_page_header_is_valid(): $LogFile version 2.0 is not supported.  (This driver supports version 1.1 only.)NTFS-fs error (device /dev/disk0s2, pid 85): ntfs_logfile_check(): Did not find any restart pages in $LogFile and it was not empty.NTFS-fs warning (device /dev/disk0s2, pid 85): ntfs_system_inodes_get(): $LogFile is not clean.  Will not be able to remount read-write.  Mount in Windows.29.369190: setDISASSOC from ATH_INTERFACE_CLASS disconnectVap29.369234: switchVap from 1 to 1 CODE SIGNING: cs_invalid_page(0x1000): p=237[GoogleSoftwareUp] clearing CS_VALIDNo interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000No interval found for . Using 8000000CODE SIGNING: cs_invalid_page(0x1000): p=269[ksadmin] clearing CS_VALIDCODE SIGNING: cs_invalid_page(0x1000): p=278[ksadmin] clearing CS_VALIDSandbox: sandboxd(292) deny mach-lookup com.apple.coresymbolicationdmy_name_adlan_BCM5722D: Link downBCM5722D (setupPHY:96): Auxillary status: F534BCM5722D (setupFlowControl:457): flowControl: 0my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: disabledmy_name_adlan_BCM5722D: Link downBCM5722D (setupPHY:96): Auxillary status: F534BCM5722D (setupFlowControl:457): flowControl: 0my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: disabledL2TP domain initL2TP domain init completeBCM5722D (serviceRxInterrupt:1025): replaceOrCopyPacket returns 0

 

 6/12/13 9:17:21.000 AM kernel[0]: BCM5722D (Build date/time: Jun  7 2013 13:26:07)6/12/13 9:17:21.000 AM kernel[0]: my_name_adlan_BCM5722D: Model: BCM57780 NetLink (TM) Gigabit Ethernet6/12/13 9:17:21.000 AM kernel[0]: my_name_adlan_BCM5722D: Loaded successfully6/12/13 9:17:22.000 AM kernel[0]: my_name_adlan_BCM5722D: Ethernet address 00:26:9e:b9:14:966/12/13 9:17:25.000 AM kernel[0]: my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: symmetric6/12/13 9:25:17.410 AM Xcode[320]: warning: ignoring operator ':rfc1034Identifier' on 'BCM5722D' for macro 'PRODUCT_NAME'6/12/13 9:30:50.000 AM kernel[0]: BCM5722D (Build date/time: Jun 12 2013 09:25:17)6/12/13 9:30:50.000 AM kernel[0]: BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations6/12/13 9:30:50.000 AM kernel[0]: my_name_adlan_BCM5722D: Model: BCM57780 NetLink (TM) Gigabit Ethernet6/12/13 9:30:50.000 AM kernel[0]: my_name_adlan_BCM5722D: Loaded successfully6/12/13 9:30:51.000 AM kernel[0]: my_name_adlan_BCM5722D: Ethernet address 00:26:9e:b9:14:966/12/13 9:30:52.000 AM kernel[0]: BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 0 iterations6/12/13 9:30:52.000 AM kernel[0]: BCM5722D (setMedium:356): Change medium: kIOMediumEthernetAuto6/12/13 9:30:52.000 AM kernel[0]: BCM5722D (setMedium:381): Change medium: kLinkDuplexNegotiate6/12/13 9:30:52.000 AM kernel[0]: BCM5722D (configureLinkAdvertisement:557): advertiseFe: 5E16/12/13 9:30:52.000 AM kernel[0]: BCM5722D (configureLinkAdvertisement:558): advertiseGe: 3006/12/13 9:30:52.000 AM kernel[0]: BCM5722D (startAutoNegotiation:580): Adv reg: 5E16/12/13 9:30:54.000 AM kernel[0]: BCM5722D (setupPHY:96): Auxillary status: F5376/12/13 9:30:54.000 AM kernel[0]: BCM5722D (setupFlowControl:457): flowControl: 36/12/13 9:30:54.000 AM kernel[0]: my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: symmetric6/12/13 9:33:42.000 AM kernel[0]: my_name_adlan_BCM5722D: Link down6/12/13 9:33:52.000 AM kernel[0]: BCM5722D (setupPHY:96): Auxillary status: F5346/12/13 9:33:52.000 AM kernel[0]: BCM5722D (setupFlowControl:457): flowControl: 06/12/13 9:33:52.000 AM kernel[0]: my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: disabled6/12/13 9:33:52.000 AM kernel[0]: my_name_adlan_BCM5722D: Link down6/12/13 9:33:53.000 AM kernel[0]: BCM5722D (setupPHY:96): Auxillary status: F5346/12/13 9:33:53.000 AM kernel[0]: BCM5722D (setupFlowControl:457): flowControl: 06/12/13 9:33:53.000 AM kernel[0]: my_name_adlan_BCM5722D: Link up: 100 MBps, full duplex. Flow control: disabled6/12/13 9:45:29.000 AM kernel[0]: BCM5722D (serviceRxInterrupt:1025): replaceOrCopyPacket returns 0

 

But to be sure I must test driver over one week at least that It discontinued stopping.

Link to comment
Share on other sites

Later I will make kexts for ML,L, and SL when driver will be ready.

 

In order to achieve 100% stable operation we will have to add a watchdog that resets the chip in case of randomly occurring transmitter deadlocks. We also need some synchronization between transmitter and receiver to prevent outputPacket() from accessing the hardware while the NIC gets reset to recover from a deadlock.

 

Another point is that there is still some room for improvement left. As far as I can see all NICs of the BCM5722 series, with exception of the 5906(M), also support checksum offload for TCP/IPv6 and UDP/IPv6 and it shouldn't be a big deal to implement that. TCP segmentation offload would also be a nice feature.  :)

 

Mieze

  • Like 2
Link to comment
Share on other sites

In order to achieve 100% stable operation we will have to add a watchdog that resets the chip in case of randomly occurring transmitter deadlocks. We also need some synchronization between transmitter and receiver to prevent outputPacket() from accessing the hardware while the NIC gets reset to recover from a deadlock.

 

Another point is that there is still some room for improvement left. As far as I can see all NICs of the BCM5722 series, with exception of the 5906(M), also support checksum offload for TCP/IPv6 and UDP/IPv6 and it shouldn't be a big deal to implement that. TCP segmentation offload would also be a nice feature.  :)

 

Mieze

Would it be possible to have a look on my problem.

I´ve to wait after a shutdown about 10 - 30 Seconds until i can restart the computer, otherwise the driver doesn´t detects the MAC Address of the network card. ( a restart is not possible if i want to have a working network)

Link to comment
Share on other sites

Would it be possible to have a look on my problem.

I´ve to wait after a shutdown about 10 - 30 Seconds until i can restart the computer, otherwise the driver doesn´t detects the MAC Address of the network card. ( a restart is not possible if i want to have a working network)

It is necessary mull over deeply why does it happen?. Do you have BIOS or UEFI?

And try last debug version for ML, maybe it will give a hint.

Look at kernel.log and Kernel boot messages

BCM5722D.kext.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...