Jump to content

LAN Marvell Yukon-2 driver


Slice
 Share

43 posts in this topic

Recommended Posts

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

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

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

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.

Marvell.png

Link to comment
Share on other sites

  • 2 weeks later...
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

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

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

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

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

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

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 Features

3 KB Receive buffer and 2KB Transmit buffer

 

Driver

-----------------------------
case OP_LSOV2:		/* Yukon-Extreme only */						\

PDF

MAC / PHY Features

LSO 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

  • 3 weeks later...

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

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

 Share

×
×
  • Create New...