Slice Posted November 10, 2008 Share Posted November 10, 2008 On my Dell Inspiron 1525 I have a Marvell 88E8040 . It is quite different from other Yukon-2 devices: 1. It is not Gigabit adapter, only Fast ethernet. 2. It has only one output port. 3. It needs workarounds in several situations. So AppleYukon.kext and AppleYukon2.kext don't work with any patches. They intended for chips b3-b7 while I have b8. And I know that 88E8040T has chip b9 also not supported. FreeBSD driver is "if_msk.c". In development. Seems doesn't work too. Linux driver "sky2.c" seems to be good. I was tried to apply them to create MacOSX driver. Here is my sources and debug version. Doesn't work yet! I give up. Being alone I can't finish it. EDITED: Continue developmentMarvell_103.src.zip EDITED 09-12-2008: Marvell_104.zip The new sources also include the most full Linux driver sk98lin but without 8040 patches. Would like to see your reports like my Nov 24 17:07:36 sergeys-macpro31 kernel[0]: initEventSources() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: initEventSources() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: allocateDescriptorMemory() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: allocateDescriptorMemory() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: PCIe link status=1011 link cap=7ac11 PCIe cap=c0 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: PCI PMC 0xfe03 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: PME from D3cold is supported Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: PCI data: VendorID:11ab DeviceID:4354 Rev:12 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: chip_id:b8 chip_rev:0 phy_type:0 pmd_type:32 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: phy_addr:0 ports:1 RAM:128 kb Flags:1e8 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: Ethernet address 00:1d:09:59:0e:e9 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: setActivationLevel 2 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: reset() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: enable the Tx Arbiters Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_reset() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_reset() <=== GM_RX_CTRL=0 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: intr_mask = c000001d Nov 24 17:07:36 sergeys-macpro31 kernel[0]: reset() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: initTxRing() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: freeTxRing() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: freeTxRing() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: initTxRing() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: initRxRing() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: initRxRing() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: medium = 0x5233880 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: auto:yes speed:ffff duplex:half Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_reset() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_reset() <=== GM_RX_CTRL=0 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_mac_init() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_init() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: yukon_init<===PHY_MARV_INT_MASK = 8800 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_mac_init() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: msk_up=> RB_CRTL = 000 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_mac_init() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_init() ===> Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: yukon_init<===PHY_MARV_INT_MASK = 8800 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: yukon_mac_init() <=== Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: setMulticastMode on Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: write c000001d to B0_IMSK Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: setMulticastMode on Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: setMulticastList Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: setMulticastMode off Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: setMulticastMode on Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: setMulticastList Nov 24 17:07:36: --- last message repeated 2 times --- Nov 24 17:07:36 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Nov 24 17:07:37: --- last message repeated 4 times --- Nov 24 17:07:37 sergeys-macpro31 com.apple.launchd[1] (org.samba.nmbd[154]): Exited: Terminated Nov 24 17:07:37 sergeys-macpro31 com.apple.launchd[1] (org.samba.nmbd): Throttling respawn: Will start in 9 seconds Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 10 Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell:yukon_phy_intr=> istatus = 5c40 phystat = 7c40 Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: link_up B0_CTST = 0 Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: link_up GMAC_IRQ_MSK = a Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: link speed now 100 Mbps, full duplex. Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: setMulticastList Nov 24 17:07:37 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Nov 24 17:07:39: --- last message repeated 5 times --- Nov 24 17:07:39 sergeys-macpro31 kernel[0]: Marvell: setMulticastList Nov 24 17:07:39: --- last message repeated 1 time --- Nov 24 17:07:39 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Nov 24 17:07:42: --- last message repeated 5 times --- Nov 24 17:07:42 sergeys-macpro31 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Nov 24 17:07:42 sergeys-macpro31 kernel[0]: Marvell: transmit ring 0 .. 51 report=33 done=33 Cable unplug and plug Nov 24 17:09:32 sergeys-macpro31 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Nov 24 17:09:32 sergeys-macpro31 kernel[0]: Marvell: transmit ring 0 .. 198 report=33 done=33 Nov 24 17:09:36 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 10 Nov 24 17:09:36 sergeys-macpro31 kernel[0]: Marvell:yukon_phy_intr=> istatus = 700 phystat = 40 Nov 24 17:09:36 sergeys-macpro31 kernel[0]: yukon_reset() ===> Nov 24 17:09:36 sergeys-macpro31 kernel[0]: yukon_reset() <=== GM_RX_CTRL=e000 Nov 24 17:09:36 sergeys-macpro31 kernel[0]: Marvell: network link down. Nov 24 17:09:36 sergeys-macpro31 kernel[0]: yukon_init() ===> Nov 24 17:09:36 sergeys-macpro31 kernel[0]: Marvell: yukon_init<===PHY_MARV_INT_MASK = 8800 Nov 24 17:09:37 sergeys-macpro31 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Nov 24 17:09:37 sergeys-macpro31 kernel[0]: Marvell: transmit ring 0 .. 198 report=33 done=33 Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell: transmit ring 0 .. 219 report=33 done=33 Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 10 Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell:yukon_phy_intr=> istatus = 1c40 phystat = 7c40 Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell: link_up B0_CTST = 0 Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell: link_up GMAC_IRQ_MSK = a Nov 24 17:09:42 sergeys-macpro31 kernel[0]: Marvell: link speed now 100 Mbps, full duplex. Nov 24 17:09:47 sergeys-macpro31 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Nov 24 17:09:47 sergeys-macpro31 kernel[0]: Marvell: transmit ring 0 .. 226 report=33 done=33 Is there anybody can find a sources of AppleYukon2 driver? EDITED 10-03-2009 That's all. I have working driver from 10.5.7 so I need no more to continue the development. If anyone wants to make some driver based on my sources - ! Link to comment Share on other sites More sharing options...
gizmoarena Posted November 15, 2008 Share Posted November 15, 2008 Did you try editing the Info.plist and replacing with your device/vendor IDs? I am using 88E8039 by this method. Working fine. I can give you my kext, you can edit the plist and just replace 39 by 40. Link to comment Share on other sites More sharing options...
Slice Posted November 15, 2008 Author Share Posted November 15, 2008 I tried 4 version of AppleYukon and 3 version of AppleYukon2. Nothing works! I can try also your version, but 8040 is 100mb while 8039 - gigabit. Link to comment Share on other sites More sharing options...
Drummkit Posted November 15, 2008 Share Posted November 15, 2008 gizmø could you give me your kext? Slice I saw that you tried to make a driver, I have some time to spend so if you could make a little documentation with what you have done and what remains to, it will be appreciated, thanks Link to comment Share on other sites More sharing options...
Slice Posted November 17, 2008 Author Share Posted November 17, 2008 gizmø could you give me your kext?Slice I saw that you tried to make a driver, I have some time to spend so if you could make a little documentation with what you have done and what remains to, it will be appreciated, thanks In my sources I made comments //done - I think the procedure is OK // TODO - I think the procedure is wrong. I write the driver based on Apple's sources for other NICs and on FreeBSD's and Linux's sources for Yukon-2. So it needs to compare logics of my driver with Linux's driver step by step. But the last one uses Linux API that I can't understand. For example static irqreturn_t sky2_intr(int irq, void *dev_id) { struct sky2_hw *hw = dev_id; UInt32 status; /* Reading this mask interrupts as side effect */ status = CSR_READ_4(B0_Y2_SP_ISRC2); if (status == 0 || status == ~0) return IRQ_NONE; prefetch(&hw->st_le[hw->st_idx]); napi_schedule(&hw->napi); return IRQ_HANDLED; } What is napi_shedule in terms of MacOSX? Where is sky2_poll called? netif_napi_add(dev, &hw->napi, sky2_poll, NAPI_WEIGHT); I am also not clear about using MTU in MacOSX. Link to comment Share on other sites More sharing options...
Drummkit Posted November 17, 2008 Share Posted November 17, 2008 Ok thanks Slice, I will try to make something... Link to comment Share on other sites More sharing options...
enli Posted November 22, 2008 Share Posted November 22, 2008 Guys, any progress ? Link to comment Share on other sites More sharing options...
eraserhead77 Posted November 22, 2008 Share Posted November 22, 2008 Did you try editing the Info.plist and replacing with your device/vendor IDs?I am using 88E8039 by this method. Working fine. I can give you my kext, you can edit the plist and just replace 39 by 40. With my 88E8055, you not only need to edit the device ID in the AppleYukon2.kext Info.plist, but you have to edit the SubSystem ID otherwise it won't recognize your specific device. My 88E8055 works fine after adding the SubSystem ID to the Info.plist, its worth a shot on the 88E8040. There was no patch needed. I'm at work...otherwise I'd post the code, and show you what I mean...let me know if you've already gone this route. Link to comment Share on other sites More sharing options...
Slice Posted November 24, 2008 Author Share Posted November 24, 2008 With my 88E8055, you not only need to edit the device ID in the AppleYukon2.kext Info.plist, but you have to edit the SubSystem ID otherwise it won't recognize your specific device. My 88E8055 works fine after adding the SubSystem ID to the Info.plist, its worth a shot on the 88E8040. There was no patch needed. I'm at work...otherwise I'd post the code, and show you what I mean...let me know if you've already gone this route. My device is recognized. But any driver give me numerous errors. I have some progress with my driver. May be it will works in future. Link to comment Share on other sites More sharing options...
aqua-mac Posted December 3, 2008 Share Posted December 3, 2008 Guys, Any further progress? Link to comment Share on other sites More sharing options...
Slice Posted December 9, 2008 Author Share Posted December 9, 2008 Guys, Any further progress? Why multiple? I am still alone. Link to comment Share on other sites More sharing options...
Krazubu Posted December 9, 2008 Share Posted December 9, 2008 Slice, If it can help M. Musashi made an open source driver for Yukon 8001 and it's available here somewhere in the forum. This driver works nice for me but has some random panics at boot sometimes. Link to comment Share on other sites More sharing options...
Slice Posted December 9, 2008 Author Share Posted December 9, 2008 Slice,If it can help M. Musashi made an open source driver for Yukon 8001 and it's available here somewhere in the forum. This driver works nice for me but has some random panics at boot sometimes. Thank you for attention. I know skge sources and I begin from them. Nontheless it is only an origin of very hard way. Yukon 8001 is a Yukon-1 while I have Yukon-2 with many new corrections. 1. Compare to Yukon-1 I have new set of internal registers. 2. Compare to Yukon 88E8056 I have only one port and speed of 100mb. 3. Compare to other Yukon I have no large internal RAM buffer. Only 8kb, but not 512kb. 4. I have slow chip running with 50MHz while other with 125MHz. 5. I have StatusRing which I can't understand. I can write a driver. I know C++. I don't know network. It is a problem. Link to comment Share on other sites More sharing options...
aqua-mac Posted December 10, 2008 Share Posted December 10, 2008 Hi Slice, This is from my Samsung NC10, if you need any other info, please let me know. Dec 10 17:55:49 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:49 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 1 fStHeadIndex=0 Dec 10 17:55:49 aquamacs-MacBook2-2 kernel[0]: Marvell: setMulticastMode on reg=e000 Dec 10 17:55:49 aquamacs-MacBook2-2 kernel[0]: Marvell: setMulticastList Dec 10 17:55:49: --- last message repeated 2 times --- Dec 10 17:55:49 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:49 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 2 fStHeadIndex=1 Dec 10 17:55:50 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:50 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 3 fStHeadIndex=2 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 10 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell:yukon_phy_intr(0)=> istatus = 5040 phystat = 7840 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 3 fStHeadIndex=3 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 4 fStHeadIndex=3 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 10 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell:yukon_phy_intr(0)=> istatus = c00 phystat = 6c40 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: link_up(0) B0_CTST = 0 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: link_up(0) GMAC_IRQ_MSK = 3a Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: link speed(0) now 100 Mbps, full duplex. Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 4 fStHeadIndex=4 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 5 fStHeadIndex=4 Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: MAC AUTH succeeded Dec 10 17:55:51 aquamacs-MacBook2-2 kernel[0]: AirPort: Link Up on en0 Dec 10 17:55:52 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:52 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 6 fStHeadIndex=5 Dec 10 17:55:52 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:52 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 7 fStHeadIndex=6 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: setMulticastList Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 8 fStHeadIndex=7 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = 9 fStHeadIndex=8 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = a fStHeadIndex=9 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Status ring with idx=10 Head=9 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @00:(1,0) @01:(7,0) @02:(8,0) @03:(9,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @04:(a,0) @05:(d,0) @06:(e,0) @07:(11,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @08:(12,0) @09:(13,0) @0a:(0,0) @0b:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @0c:(0,0) @0d:(0,0) @0e:(0,0) @0f:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @10:(0,0) @11:(0,0) @12:(0,0) @13:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @14:(0,0) @15:(0,0) @16:(0,0) @17:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @18:(0,0) @19:(0,0) @1a:(0,0) @1b:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @1c:(0,0) @1d:(0,0) @1e:(0,0) @1f:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @20:(0,0) @21:(0,0) @22:(0,0) @23:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @24:(0,0) @25:(0,0) @26:(0,0) @27:(0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Rx Desc ring with tail=0 Head=0 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @00:(3f33800,5ee) @01:(3f26000,5ee) @02:(131e7000,5ee) @03:(13656000,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @04:(13615800,5ee) @05:(13615000,5ee) @06:(13754000,5ee) @07:(13ad3800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @08:(13ad3000,5ee) @09:(131d2800,5ee) @0a:(131d2000,5ee) @0b:(13cd1800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @0c:(13cd1000,5ee) @0d:(13190800,5ee) @0e:(13190000,5ee) @0f:(3f51800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @10:(3f51000,5ee) @11:(3ec0800,5ee) @12:(3ec0000,5ee) @13:(3eef800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @14:(3eef000,5ee) @15:(3efe800,5ee) @16:(3efe000,5ee) @17:(3f0d800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @18:(3f0d000,5ee) @19:(3ecc800,5ee) @1a:(3ecc000,5ee) @1b:(3f3b800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @1c:(3f26800,5ee) @1d:(3f87800,5ee) @1e:(3f68000,5ee) @1f:(3f39800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @20:(3f0a000,5ee) @21:(3f3b000,5ee) @22:(1433b000,5ee) @23:(1433b800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @24:(169c8000,5ee) @25:(169c8800,5ee) @26:(169d9000,5ee) @27:(169d9800,5ee) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: Tx Desc ring with tail=0 Head=19 Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @00:(16b0c800,156) @01:(168899ca,36) @02:(16889d14,8) @03:(16889f14,18) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @04:(131e78ca,36) @05:(131e7b14,8) @06:(131e7d14,18) @07:(131e7a36,4e) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @08:(16a98fba,46) @09:(1dcbc000,156) @0a:(18c8b2ca,36) @0b:(18c8b114,8) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @0c:(16a98e14,18) @0d:(18c8b5ba,46) @0e:(18c992ca,36) @0f:(18c99014,8) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @10:(18c99114,18) @11:(16f5e800,156) @12:(1dcbce34,2a) @13:(132c30a0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @14:(132c30a8,0) @15:(132c30b0,0) @16:(132c30b8,0) @17:(132c30c0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @18:(132c30c8,0) @19:(132c30d0,0) @1a:(132c30d8,0) @1b:(132c30e0,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @1c:(132c30e8,0) @1d:(132c30f0,0) @1e:(132c30f8,0) @1f:(132c3100,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @20:(132c3108,0) @21:(132c3110,0) @22:(132c3118,0) @23:(132c3120,0) Dec 10 17:55:53 aquamacs-MacBook2-2 kernel[0]: @24:(132c3128,0) @25:(132c3130,0) @26:(132c3138,0) @27:(132c3140,0) Dec 10 17:55:54 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:54 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = b fStHeadIndex=a Dec 10 17:55:54 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:54 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = c fStHeadIndex=b Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: transmit ring 0 .. 21 report=21 done=21 Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: handleTxCleanup(count:21 head:21 tail:0) Dec 10 17:55:55: --- last message repeated 12 times --- Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: clean Tx descriptors:13 fTxTailIndex=21 fTxActiveCount=8 Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = d fStHeadIndex=c Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = e fStHeadIndex=d Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 40000000 Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = f fStHeadIndex=e Dec 10 17:55:55 aquamacs-MacBook2-2 kernel[0]: Marvell: setMulticastList Dec 10 17:55:56: --- last message repeated 1 time --- Dec 10 17:55:56 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status B0_Y2_SP_EISR = 8 Dec 10 17:55:56 aquamacs-MacBook2-2 kernel[0]: Marvell: interrupt status index = f fStHeadIndex=f Dec 10 17:56:00 aquamacs-MacBook2-2 kernel[0]: Marvell ERR: timeout handling kIOReturnOutputStall Dec 10 17:56:00 aquamacs-MacBook2-2 kernel[0]: Marvell: transmit ring 21 .. 78 report=29 done=29 Dec 10 17:56:00 aquamacs-MacBook2-2 kernel[0]: handleTxCleanup(count:65 head:78 tail:21) Dec 10 17:56:00: --- last message repeated 3 times --- Dec 10 17:56:00 aquamacs-MacBook2-2 kernel[0]: Marvell: clean Tx descriptors:4 fTxTailIndex=29 fTxActiveCount=61 Hope this is helpful. Sorry that I cannot be of more help, the detail of networking is not my strong point. Link to comment Share on other sites More sharing options...
Slice Posted December 12, 2008 Author Share Posted December 12, 2008 New problem Marvell 88E8040 nic doesn't work with sky2 driver It is linux!!!!! https://bugs.launchpad.net/ubuntu/+bug/189982 EDITED: If anyone wants to help me, please find any working sources Linux, BSD, or other Unix, or Windows or MacOSX. Link to comment Share on other sites More sharing options...
Yukon Kid Posted December 13, 2008 Share Posted December 13, 2008 Slice Not sure if you have been here for info, maybe it will help. I copied this from a search I was doing online. Maybe the links might help you figure out what you need. "The driver is now on our Foundry27 web site. The new network protocol framework (io-pkt) can be found at the following link: http://community.qnx.com/sf/projects/networking Please follow the instructions found on this page to download and install the software. For the Marvell Yukon2 driver, the “Experimental” driver is devnp-msk.so. This driver object can be found in “sys/dev /msk”, and the actual source code is found in “sys/dev/pci/if_msk.c”. When you do the build, you’ll find the denp-msk.so binary under your staging area /x86/lib/dll. It only builds for x86 because this was the only platform we could test it on. We are looking for feedback in how this driver is working. We would like to be able to make the appropriate updates, if required, to this driver. Therefore, please let us know how this works for you so thta we may work to provide the most complete working driver." Link to comment Share on other sites More sharing options...
Slice Posted December 13, 2008 Author Share Posted December 13, 2008 2 Yukon Kid It is very interesting for me to discuss a Yukon driver problem with another developers. The only problem. I can't check alien OS driver if_msk.c. Moreover, I can't download it because of very complex registration/activity/only_for_developers/... I create a MacOSX driver which is not the same as FreeBSD driver. Link to comment Share on other sites More sharing options...
Yukon Kid Posted December 13, 2008 Share Posted December 13, 2008 well I didn't try to look at the source myself. I am sure that your driver is different , but if you look at the freebsd for yukon2 would it help find the thing you are having trouble with? as I am not trying to write a program, I am only able to offer ideas, and ask questions. I would like you to be successful. Keep up the good work. Link to comment Share on other sites More sharing options...
Slice Posted December 14, 2008 Author Share Posted December 14, 2008 well I didn't try to look at the source myself. I am sure that your driver is different , but if you look at the freebsd for yukon2 would it help find the thing you are having trouble with? as I am not trying to write a program, I am only able to offer ideas, and ask questions. It is better then nothing. I don't know why my driver does not working. Needs comparison and thinking. Link to comment Share on other sites More sharing options...
Slice Posted December 15, 2008 Author Share Posted December 15, 2008 New problems. I took a Linux driver from www.marvell.com and description Yukon_FE+_88E8040.pdf. What I see Driver /* Minimum RAM Buffer Rx Queue Size */ #define SK_MIN_RXQ_SIZE (((pAC)->GIni.GIYukon2) ? 10 : 16) /* 10/16 kB */ /* Minimum RAM Buffer Tx Queue Size */ #define SK_MIN_TXQ_SIZE (((pAC)->GIni.GIYukon2) ? 10 : 16) /* 10/16 kB */ PDF MAC / PHY Features3 KB Receive buffer and 2KB Transmit buffer Driver ----------------------------- case OP_LSOV2: /* Yukon-Extreme only */ \ PDF MAC / PHY FeaturesLSO V2 support No perfect driver/description. The big problem for me is to organize a RAM buffer and I don't know what to do with this contradiction. Link to comment Share on other sites More sharing options...
Slice Posted January 4, 2009 Author Share Posted January 4, 2009 I am going by other way. I took latest AppleYukon2.kext (from 10.5.6), reversed it, compare with oficial Marvell's Linux driver and found that they are similar but Apple driver is for chip b3-b7 while we need b8. Wait for Apple make new version? I decided to edit binary code by a way to make it is working for b8. Till now I found only 28 places chip dependent. Not so hard! Latest result Jan 4 17:43:13 HackBook4-1 kernel[0]: yukon: Ethernet address 00:1d:09:59:0e:e9 Jan 4 17:44:15 HackBook4-1 kernel[0]: AppleYukon2 - en0 link active, 100-Mbit, full duplex, flow control disabled port 0 Jan 4 17:44:17 HackBook4-1 kernel[0]: AppleYukon2 - en0 link down Jan 4 17:44:17 HackBook4-1 kernel[0]: AppleYukon2 - en0 link active, 100-Mbit, full duplex, flow control disabled port 0 Jan 4 17:44:19 HackBook4-1 kernel[0]: AppleYukon2 - en0 link down Link to comment Share on other sites More sharing options...
Slice Posted January 11, 2009 Author Share Posted January 11, 2009 After few more patches I have working net during few seconds. Then link drops down. I need only to understand why. Link to comment Share on other sites More sharing options...
gbonilla Posted January 13, 2009 Share Posted January 13, 2009 Slice, I got your latest kext and tried it but every time I connect my ethernet I get a kernel panic. Any idea why? Link to comment Share on other sites More sharing options...
Slice Posted January 13, 2009 Author Share Posted January 13, 2009 Slice, I got your latest kext and tried it but every time I connect my ethernet I get a kernel panic. Any idea why? Try also, please, Marvell.kext from topic and show my system.log with marvell messages. Marvell.kext.zip AppleYukon2.kext.zip Link to comment Share on other sites More sharing options...
gbonilla Posted January 17, 2009 Share Posted January 17, 2009 Sorry I took so long to get around to this. Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: initTxRing() ===> Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: freeTxRing() ===> Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: freeTxRing() <=== Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: initTxRing() <=== Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: initRxRing() done Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: auto:yes speed:ffff duplex:half Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: yukon_reset(0) ===> Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: yukon_reset(0) <=== GM_RX_CTRL=0 Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: msk_up(0)=> RB_CRTL = 000 Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: yukon_mac_init(0) ===> Jan 17 00:46:23 Genaro-Bonillas-Hackbook-2 kernel[0]: yukon_phy_init(0) ===> Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: yukon_init(0)<===PHY_MARV_INT_MASK = 8800 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: yukon_mac_init(0) <=== Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: link_up(0) B0_CTST = 0 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: link_up(0) GMAC_IRQ_MSK = 3a Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: link speed(0) now 0 Mbps, half duplex. Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: setMulticastMode on reg=e000 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: write c000001d to B0_IMSK Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: setMulticastMode on reg=e000 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: setMulticastList Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: setMulticastMode off reg=a000 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: AirPort: Link Down on en0 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: setMulticastMode on reg=e000 Jan 17 00:46:24 Genaro-Bonillas-Hackbook-2 kernel[0]: Marvell: setMulticastList Link to comment Share on other sites More sharing options...
Recommended Posts