Subject: Re: Gigabit Marvell ethernet card not configured
To: Eye of the Beholder <eye.of.the.8eholder@gmail.com>
From: Stephan Thesing <thesing@cs.uni-sb.de>
List: tech-kern
Date: 05/02/2006 13:13:26
Hello,

On Sun, 30 Apr 2006, Eye of the Beholder wrote:

> Date: Sun, 30 Apr 2006 18:36:00 +0300
> From: Eye of the Beholder <eye.of.the.8eholder@gmail.com>
> To: netbsd-users@NetBSD.org
> Cc: tech-kern@NetBSD.org
> Subject: Re: Gigabit Marvell ethernet card not configured
> 
> Hello.
>
> I tried to port the linux driver (sky2.{c,h}) as mr. Rizzo suggested,
> but the only things i understood were the printfs and the comments :)
> The unified driver from SysKonnect is way more mess than the sky2 one.
> So, i tried the OpenBSD driver which is almost the same as the NetBSD one.

thanks for the effort:-)  I am currently also interested in having the 
Marvell/Galileo stuff working (under 3.0, though).

> Result: It works ok for me with some glitches.


Well, I applied the patch to 3.0_STABLE sources and it doesn't work for me 
(yet).

> skc0: Marvell Yukon-2 EC rev. A2(0x1)
> sk0 at skc0 port A: Ethernet address 00:11:2f:58:fa:03
> skc1: Marvell Yukon-2 EC rev. A2(0x1)
> sk1 at skc1 port A: Ethernet address 00:11:2f:59:02:98

I also have a Yukon-II on my board (PCI ids 0x11ab/0x4362, 88E8053) which 
prints as skc0: Marvell Yukon-2 EC rev. A3(0x2).

But he card doesn't work for me at all.

> This is after boot (with cable connected to sk0) .
> The following happens after running ifconfig
>
> sk0: link state changed to DOWN
> skc0: interrupt moderation is 100 us
> sk0: link state changed to UP
> sk0: watchdog timeout (every some secs)

No link is really detected, `ifconfig' on the card queues a mbux for 
transaction, but it doesn't go out on the wire...
I think the problem is that the Yukon-II transmit/receive machinery is quite 
different form the Genesis/Yukon one, the driver supports ATM (by looking at 
the Linux driver).

> 1) Every some secs watchdog timeout is printed in the console.

Which means that transmit packets didn't get acknowledged by the hardware, I 
suppose.

> 2) When using the "shutdownhook_establish" hook, when running reboot/halt the kernel crashes.
> When the "shutdownhook_establish" is removed reboot works ok, so i guess there is something wrong
> with the sk_shutdown function. (Hint: the OpenBSD code had sk_stop removed from the sk_shutdown, but
> it does the same without it)

I think the problem is the line `shutdownhook_establish(sk_shutdown, sc);' 
which should rather be          `shutdownhook_establish(sk_shutdown, sc_if);'


I think, this driver needs support for the Yukon-2 chipsets w.r.t. 
transmit/receive and status machinery (which seems to be different from the 
other chipset types), at least juding from the Linux driver from Marvell.

I do not have technical docs for the Yukon-2 chipset (and Marvell has not yet 
reacted on my request), so it is difficult to contribute something (porting the 
Linux driver stuff is quite troublesome as the driver code is..... well).

I would be glad to help coding and/or testing.

Best regards....
 	Stephan

-- 
=  Tel.: +49-681-302-5571      = Universitaet des Saarlandes =
=  Fax.: +49-681-302-3065      = Postfach 15 11 50           =
=  Compiler Research Group     = 66041 Saarbruecken          =
=  FR 6.2 - Informatik         = GERMANY                     =