Duvel300 Posted April 26, 2008 Share Posted April 26, 2008 Add the following source code in order to get the "Network Link down" fixed for certain cards. Some chipsets need the ledstatus included in the reset. Â void com_nvidia_ethernet::saveLEDstats() { UInt32 reg=0; UInt32 value=0; int i=0; reg = 22; value = 3; miiRW(phyAddr,reg,value); IODelay(5); reg = 16; for(i=0;i<3;i++){ led_stats[i]=miiRW(phyAddr,reg+i,MII_READ); } reg = 22; value = 0; miiRW(phyAddr,reg,value); IODelay(5); } void com_nvidia_ethernet::restoreLEDstats() { UInt32 reg=0; UInt32 value=0; int i=0; reg = 22; value = 3; miiRW(phyAddr,reg,value); IODelay(5); reg = 16; for(i=0;i<3;i++){ miiRW(phyAddr,reg+i,led_stats[i]); IODelay(1); } reg = 22; value = 0; miiRW(phyAddr,reg,value); IODelay(5); } bool com_nvidia_ethernet::phyReset(UInt32 bmcr_setup) { UInt32 miiControl; unsigned int tries = 0; saveLEDstats(); miiControl = BMCR_RESET | bmcr_setup; if( miiRW(phyAddr, MII_BMCR, miiControl) ) { return false; } IOSleep(500); while( miiControl & BMCR_RESET ) { IOSleep(10); miiControl = miiRW(phyAddr, MII_BMCR, MII_READ); if (tries++ > 100) return false; } restoreLEDstats(); return true; } Â Of course update your header file with the two new ledstatus methods and change the PhyReset method to accept a new parameter. You also will have to add the correct parameters to the reset call in the source file: Â miiControl = miiRW(phyAddr, MII_BMCR, MII_READ); miiControl |= BMCR_ANENABLE; // reset the phy if( !phyReset(miiControl) ){ IOLog("ForceDet: PHY reset failed.\n"); return PHY_ERROR; } Â Even is this is done you will still experience freezing, see my post a few back. But you will get the 88E1116 PHY and lot of others working. Follow the installation instructions in MikeInNs post (switching of computer for 30 secs etc), in order to get a valid link. Â And please, no GPL licenses were viololated by MikeInNs, I can tell you a whole lot about licensing after working years for Microsoft. Link to comment Share on other sites More sharing options...
R@v3n Posted April 27, 2008 Share Posted April 27, 2008 Add the following source code in order to get the "Network Link down" fixed for certain cards.Some chipsets need the ledstatus included in the reset. Â void com_nvidia_ethernet::saveLEDstats() { UInt32 reg=0; UInt32 value=0; int i=0; reg = 22; value = 3; miiRW(phyAddr,reg,value); IODelay(5); reg = 16; for(i=0;i<3;i++){ led_stats[i]=miiRW(phyAddr,reg+i,MII_READ); } reg = 22; value = 0; miiRW(phyAddr,reg,value); IODelay(5); } void com_nvidia_ethernet::restoreLEDstats() { UInt32 reg=0; UInt32 value=0; int i=0; reg = 22; value = 3; miiRW(phyAddr,reg,value); IODelay(5); reg = 16; for(i=0;i<3;i++){ miiRW(phyAddr,reg+i,led_stats[i]); IODelay(1); } reg = 22; value = 0; miiRW(phyAddr,reg,value); IODelay(5); } bool com_nvidia_ethernet::phyReset(UInt32 bmcr_setup) { UInt32 miiControl; unsigned int tries = 0; saveLEDstats(); miiControl = BMCR_RESET | bmcr_setup; if( miiRW(phyAddr, MII_BMCR, miiControl) ) { return false; } IOSleep(500); while( miiControl & BMCR_RESET ) { IOSleep(10); miiControl = miiRW(phyAddr, MII_BMCR, MII_READ); if (tries++ > 100) return false; } restoreLEDstats(); return true; } Â Of course update your header file with the two new ledstatus methods and change the PhyReset method to accept a new parameter. You also will have to add the correct parameters to the reset call in the source file: Â miiControl = miiRW(phyAddr, MII_BMCR, MII_READ); miiControl |= BMCR_ANENABLE; // reset the phy if( !phyReset(miiControl) ){ IOLog("ForceDet: PHY reset failed.\n"); return PHY_ERROR; } Â Even is this is done you will still experience freezing, see my post a few back. But you will get the 88E1116 PHY and lot of others working. Follow the installation instructions in MikeInNs post (switching of computer for 30 secs etc), in order to get a valid link. Â And please, no GPL licenses were viololated by MikeInNs, I can tell you a whole lot about licensing after working years for Microsoft. Â Can you or someone make these changes and post the compiled kext here? I don't know how to compile the source and most like will just make a mistake. Link to comment Share on other sites More sharing options...
viiddee Posted May 4, 2008 Share Posted May 4, 2008 working on my Asus M2N-SLI Deluxe, but when downloading large files the system crashs... Â Anyone can compile the kext with the the new code? Please... =) Link to comment Share on other sites More sharing options...
taetae Posted May 5, 2008 Share Posted May 5, 2008 no work in asus crosshair  lan Marvell 88E1116 PHY  system leopard 10.5.2  by Link to comment Share on other sites More sharing options...
TBXin Posted May 5, 2008 Share Posted May 5, 2008 taetae, Shutdown the computer and take the power cord off (IMPORTANT!) Wait 30 secs. and turn it back on (plug the power cord back in first . Link to comment Share on other sites More sharing options...
taetae Posted May 5, 2008 Share Posted May 5, 2008 yes  but does not work Link to comment Share on other sites More sharing options...
iNoob Posted May 5, 2008 Author Share Posted May 5, 2008 Duvel300: Where should I put that code inside forcedeth.cpp? If I put it after the end Xcode gives errors on build. The same for forcedeth.h. And I know where should them go. 1st goes to forcedeth.cpp, and 2nd to forcedeth.h. Right? Link to comment Share on other sites More sharing options...
iNoob Posted May 5, 2008 Author Share Posted May 5, 2008 @planetbeing: Your new code didn't work on my machine with 88E1116 PHY, and I could not find where I should put the additional code by Duvel300. I mean, if I put them at the end of the files Xcode will give me errors. Well, see post #82, as it may seem redundant Quick Edit: Well, good work on this driver anyway. I must say that we must find a way to correctly reset the PHY, because when I load this driver I get a "Network link down". I will unplug the power for 30secs and edit this post. Post-unplug Edit: Still no go. I will revert to my old driver tomorrow, as I am too lazy to use kext helper. I hate mondays, you just want to do like a sunday, sleep all day long Link to comment Share on other sites More sharing options...
DragonGC Posted May 6, 2008 Share Posted May 6, 2008 tested the your driver on my p5n32-e sli but still crashes. Â just wondering, do i have to uninstall my previous driver (nForceEthernetController.kext) before using this one? and if so, does anyone know how to do it? Â last thing, i have to reinstall the drivers everytime i boot back to windows. is there a way around this? Thanks! Link to comment Share on other sites More sharing options...
iNoob Posted May 6, 2008 Author Share Posted May 6, 2008 You can't have two drivers loading the same PCI address. Please remove one of them. Link to comment Share on other sites More sharing options...
moskito99 Posted May 6, 2008 Share Posted May 6, 2008 is this the same driver as this one from the sticky thread? filesize is different... Â http://forum.insanelymac.com/index.php?showtopic=73317 Â i do tests on my system tonight if "cpus=1" is needed here as well... Link to comment Share on other sites More sharing options...
moskito99 Posted May 6, 2008 Share Posted May 6, 2008 just like the other driver only working with cpus=1 under heavy load...but with cpus=1 stable :-) Link to comment Share on other sites More sharing options...
togenshi Posted May 7, 2008 Share Posted May 7, 2008 i got the same result, AMD 64 X2 5200+ with ASUS M2N32 SLI Deluxe Vista Edition (590 nforce). 2 cpus panics after x amount of traffic while 1 cpus runs stable. Â But honestly i would like to utilize my dual cores. Â BTW thanks for getting this far. Link to comment Share on other sites More sharing options...
special1zed Posted May 7, 2008 Share Posted May 7, 2008 Hey, I am really new at this. I have the ASUS M2N-SLI Deluxe motherboard with the Marvell 88E1116 network controller. Is there somewhere or someone that can tell me how to install the files onto my computer? Any help would be greatly appreciated. Thanks! Link to comment Share on other sites More sharing options...
viiddee Posted May 7, 2008 Share Posted May 7, 2008 ...download the kext... http://forum.insanelymac.com/index.php?s=&...st&p=638200  install it with kexthelper... http://www.cheetha.net/Kext_Helper/Software.html  shutdown... unplug your LAN cabel for 30 secs or so... reboot...  ...i have the same mobo, it wont run stable atm, you can add "cpus=1" at bootloader it should run better... Link to comment Share on other sites More sharing options...
iNoob Posted May 7, 2008 Author Share Posted May 7, 2008 Don't unplug the Ethernet cable, instead pull the power cord for 30s or so, plug it back and fire it up! Link to comment Share on other sites More sharing options...
togenshi Posted May 8, 2008 Share Posted May 8, 2008 im just wondering, does Intel CPU with nForce Ethernet Controller be able to download large files using both cores? Cause i have AMD CPU with nForce Ethernet Controller but panics when utilising both cores when downloading large files. I was just wondering if it was the way Intel and AMD handles multiple cores? If so, might need 2 separate kexts. By the looks of it the driver works fairly well on cpus=1 but cant see why it would panic as soon as both cores are used. Â But it could be my inexperience with mac and its mechanics. Link to comment Share on other sites More sharing options...
Duvel300 Posted May 8, 2008 Share Posted May 8, 2008 Duvel300: Where should I put that code inside forcedeth.cpp? If I put it after the end Xcode gives errors on build. The same for forcedeth.h. And I know where should them go. 1st goes to forcedeth.cpp, and 2nd to forcedeth.h. Right? Â iNoob, send me your source code, I will add it in for you. It might take a while before you get it back as I am busy with other things right now. Link to comment Share on other sites More sharing options...
iNoob Posted May 8, 2008 Author Share Posted May 8, 2008 Here it is. The board software won't let me upload .cpp or .h files. planetbeing_forcedeth_osx_8480b5687069b596a6667732315c0fda201d24fa.tar_1.gz Link to comment Share on other sites More sharing options...
special1zed Posted May 9, 2008 Share Posted May 9, 2008 Hey thanks for the help. It can finally detect my network controllers, but now I have ran into another problem. It says that it's connected, but it says "Self-Assinged IP" and it doesn't work when I try to connect to a website. Has anyone experienced this problem? Thanks Link to comment Share on other sites More sharing options...
iNoob Posted May 11, 2008 Author Share Posted May 11, 2008 UNPLUG YOUR POWER CABLE FOR 30s OR SO! Why I always have to say that? Link to comment Share on other sites More sharing options...
pox.84 Posted May 11, 2008 Share Posted May 11, 2008 i have an nforce 560 lan... canyou help me? Link to comment Share on other sites More sharing options...
iNoob Posted May 12, 2008 Author Share Posted May 12, 2008 What`s your problem? Link to comment Share on other sites More sharing options...
pox.84 Posted May 12, 2008 Share Posted May 12, 2008 i have nforce 560 sli chipset but my lan dont work... how I can resolve the problem? Link to comment Share on other sites More sharing options...
togenshi Posted May 12, 2008 Share Posted May 12, 2008 Just to calarify....I arent the only one forced to run cpus=1 here am i? Im really missing my 2nd core. Link to comment Share on other sites More sharing options...
Recommended Posts