kern/162068: msk Marvell Yukon GE onboard card does not work in 1000baseTX mode

Gregor Koscak koscak.gregor at gmail.com
Thu Oct 27 20:50:09 UTC 2011


>Number:         162068
>Category:       kern
>Synopsis:       msk Marvell Yukon GE onboard card does not work in 1000baseTX mode
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Oct 27 20:50:09 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Gregor Koscak
>Release:        9.0-RC1
>Organization:
>Environment:
FreeBSD eve.pika.sioff.net 9.0-RC1 FreeBSD 9.0-RC1 #6: Tue Oct 25 01:17:36 CEST 2011     wp at eve.pika.sioff.net:/usr/obj/usr/src/sys/EVE  amd64
>Description:
I have an onboard (Gigabyte GA-965P-DS3) GE card:

mskc0: <Marvell Yukon 88E8056 Gigabit Ethernet> port 0x9000-0x90ff mem 0xe1000000-0xe1003fff irq 16 at device 0.0 on pci3
msk0: <Marvell Technology Group Ltd. Yukon EC Ultra Id 0xb4 Rev 0x02> on mskc0
e1000phy0: <Marvell 88E1149 Gigabit PHY> PHY 0 on miibus0
e1000phy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow

connected to a netgear GS108E ProSafe + switch.

The card is able to get into link up state with little traffic being transfered (ssh access works to certain degree), but bulk transfers fail completely. The card shows some activity with tcpdump, but TCP sessions do not work.
Then after a while (few tens of seconds) kernel reports

mskc0: Tx descriptor error

with several messages per second (it just floods the console).

This is on 9.0-RC1. On 8.2-STABLE I also got watchdog timeouts. User experience remains unchanged after the switch from 8.2 to 9.0. It is possible for example to browse directory strucutre over samba, but not to transfer files.

On 8.2 after 10-20 minutes of 1000basetx operation once the kernel panicked (I no longer have the output). The system is otherwise solid, so I suspect the msk driver.

I can provide other output if requested.
I'm not subscribed to any of the mailing lists.
>How-To-Repeat:
Connect msk device to GE port on a switch with media autoselect.

Start transfering bulk data over TCP connection.
>Fix:
If msk device is switched to 100basetx this fixes the problem, but results in 100baset operation with half duplex:


# ifconfig
msk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c011b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,VLAN_HWTSO,LINKSTATE>
[snip]
        media: Ethernet 100baseTX (100baseTX <half-duplex>)
        status: active

I searched the web for similar problems, but none of suggested fixes worked:
- turning off checksum offloading
- hw.msk.msi_disable=1
- one of the old patches from a thread with a similar problem (dont ask me which one, i deleted the files once it did not work ;) the patch was submitted by Mr. Pyun YongHyeon )

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list