# msk0: phy write timeout



## mix_room (Aug 4, 2010)

I am having some problems with one of my FreeBSD 8.1-release machines. It is a desktop machine running amd64, Gigabyte mainboard. Generally works well. But: repeatedly there are times when I can not access it via 'internet' (primarily ssh but also other protocols). 

When I look at the console of the machine I see errors stating that 
[cmd=""]msk0: phy write timeout[/cmd]
has occurred.

Is this a problem with the operating system, with the hardware, with cabling, with the switch or where shall I proceed to look.

[cmd=""]dmesg[/cmd] returns the output below after the error:

```
...
msk0: phy write timeout
msk0: phy write timeout
msk0: phy write timeout
...
```

Proper [cmd=""]dmesg[/cmd] before problems occur:

```
Copyright (c) 1992-2010 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:36:49 UTC 2010
    root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) Dual Core Processor 5050e (2600.11-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0x60fb2  Family = f  Model = 6b  Stepping = 2
  Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x2001<SSE3,CX16>
  AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!>
  AMD Features2=0x11f<LAHF,CMP,SVM,ExtAPIC,CR8,Prefetch>
  TSC: P-state invariant
real memory  = 8589934592 (8192 MB)
avail memory = 7995846656 (7625 MB)
ACPI APIC Table: <RS780D AWRDACPI>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
ioapic0: Changing APIC ID to 4
ioapic0 <Version 2.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <RS780D AWRDACPI> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
can't fetch resources for \\_SB_.PCI0.SMB0 - AE_AML_INVALID_RESOURCE_TYPE
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, cfee0000 (3) failed
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
device_attach: acpi_hpet0 attach returned 12
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xee00-0xeeff mem 0xd0000000-0xdfffffff,0xfdfe0000-0xfdfeffff,0xfde00000-0xfdefffff irq 18 at device 5.0 
on pci1
hdac0: <ATI RS780 High Definition Audio Controller> mem 0xfdffc000-0xfdffffff irq 19 at device 5.1 on pci1
hdac0: HDA Driver Revision: 20100226_0142
hdac0: [ITHREAD]
pcib2: <ACPI PCI-PCI bridge> irq 17 at device 9.0 on pci0
pci2: <ACPI PCI bus> on pcib2
mskc0: <Marvell Yukon 88E8056 Gigabit Ethernet> at device 0.0 on pci2
msk0: <Marvell Technology Group Ltd. Yukon EC Ultra Id 0xb4 Rev 0x05> on mskc0
msk0: Ethernet address: 00:01:29:a6:59:a2
miibus0: <MII bus> on msk0
e1000phy0: <Marvell 88E1149 Gigabit PHY> PHY 0 on miibus0
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
mskc0: [ITHREAD]
atapci0: <ATI IXP700/800 SATA300 controller> port 0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f mem 0xfe02f000-
0xfe02f3ff irq 22 at device 17.0 on pci0
atapci0: [ITHREAD]
atapci0: AHCI v1.10 controller with 4 3Gbps ports, PM supported
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci0
ata4: [ITHREAD]
ata5: <ATA channel 3> on atapci0
ata5: port is not ready (timeout 0ms) tfd = 000001d0
ata5: software reset clear timeout
ata5: [ITHREAD]
ohci0: <OHCI (generic) USB controller> mem 0xfe02e000-0xfe02efff irq 16 at device 18.0 on pci0
ohci0: [ITHREAD]
usbus0: <OHCI (generic) USB controller> on ohci0
ohci1: <OHCI (generic) USB controller> mem 0xfe02d000-0xfe02dfff irq 16 at device 18.1 on pci0
ohci1: [ITHREAD]
usbus1: <OHCI (generic) USB controller> on ohci1
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfe02c000-0xfe02c0ff irq 17 at device 18.2 on pci0
ehci0: [ITHREAD]
ehci0: AMD SB600/700 quirk applied
usbus2: EHCI version 1.0
usbus2: <EHCI (generic) USB 2.0 controller> on ehci0
ohci2: <OHCI (generic) USB controller> mem 0xfe02b000-0xfe02bfff irq 18 at device 19.0 on pci0
ohci2: [ITHREAD]
usbus3: <OHCI (generic) USB controller> on ohci2
ohci3: <OHCI (generic) USB controller> mem 0xfe02a000-0xfe02afff irq 18 at device 19.1 on pci0
ohci3: [ITHREAD]
usbus4: <OHCI (generic) USB controller> on ohci3
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xfe029000-0xfe0290ff irq 19 at device 19.2 on pci0
ehci1: [ITHREAD]
ehci1: AMD SB600/700 quirk applied
usbus5: EHCI version 1.0
usbus5: <EHCI (generic) USB 2.0 controller> on ehci1
pci0: <serial bus, SMBus> at device 20.0 (no driver attached)
atapci1: <ATI IXP700/800 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfa00-0xfa0f at device 20.1 on pci0
ata0: <ATA channel 0> on atapci1
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci1
ata1: [ITHREAD]
hdac1: <ATI SB600 High Definition Audio Controller> mem 0xfe024000-0xfe027fff irq 16 at device 20.2 on pci0
hdac1: HDA Driver Revision: 20100226_0142
hdac1: [ITHREAD]
isab0: <PCI-ISA bridge> at device 20.3 on pci0
isa0: <ISA bus> on isab0
pcib3: <ACPI PCI-PCI bridge> at device 20.4 on pci0
pci3: <ACPI PCI bus> on pcib3
ohci4: <OHCI (generic) USB controller> mem 0xfe028000-0xfe028fff irq 18 at device 20.5 on pci0
ohci4: [ITHREAD]
usbus6: <OHCI (generic) USB controller> on ohci4
amdtemp0: <AMD K8 Thermal Sensors> on hostb4
acpi_tz0: <Thermal Zone> on acpi0
ACPI Warning for \\_TZ_.THRM._PSL: Return Package type mismatch at index 0 - found [NULL Object Descriptor], expected Reference (20100331/nspredef-1197)
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FILTER]
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0: [FILTER]
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
atrtc0: <AT realtime clock> port 0x70-0x73 on acpi0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
uart1: <16550 or compatible> at port 0x2f8-0x2ff irq 3 on isa0
uart1: [FILTER]
powernow0: <PowerNow! K8> on cpu0
powernow1: <PowerNow! K8> on cpu1
Timecounters tick every 1.000 msec
vboxdrv: fAsync=0 offMin=0xb1 offMax=0x2c0
supdrvGipCreate: omni timer not supported, falling back to synchronous mode
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 12Mbps Full Speed USB v1.0
usbus5: 480Mbps High Speed USB v2.0
usbus6: 12Mbps Full Speed USB v1.0
ugen0.1: <ATI> at usbus0
uhub0: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <ATI> at usbus1
uhub1: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <ATI> at usbus2
uhub2: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen3.1: <ATI> at usbus3
uhub3: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <ATI> at usbus4
uhub4: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
ugen5.1: <ATI> at usbus5
uhub5: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus5
ugen6.1: <ATI> at usbus6
uhub6: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus6
acd0: CDRW <PHILIPS CDRWDVD3210/P1.2> at ata1-master UDMA40
ad10: 715403MB <Seagate ST3750330NS SN06> at ata5-master UDMA100 SATA 1.5Gb/s
hdac0: HDA Codec #0: ATI RS690/780 HDMI
pcm0: <HDA ATI RS690/780 HDMI PCM #0 HDMI> at cad 0 nid 1 on hdac0
hdac1: HDA Codec #3: Realtek ALC885
hdac1: hdac_audio_as_parse: Duplicate pin 0 (25) in association 4! Disabling association.
pcm1: <HDA Realtek ALC885 PCM #0 Analog> at cad 3 nid 1 on hdac1
pcm2: <HDA Realtek ALC885 PCM #1 Analog> at cad 3 nid 1 on hdac1
pcm3: <HDA Realtek ALC885 PCM #2 Digital> at cad 3 nid 1 on hdac1
SMP: AP CPU #1 Launched!
uhub6: 2 ports with 2 removable, self powered
uhub0: 3 ports with 3 removable, self powered
uhub1: 3 ports with 3 removable, self powered
uhub3: 3 ports with 3 removable, self powered
uhub4: 3 ports with 3 removable, self powered
uhub2: 6 ports with 6 removable, self powered
uhub5: 6 ports with 6 removable, self powered
ugen0.2: <Logitech> at usbus0
ums0: <Logitech USB-PS/2 Optical Mouse, class 0/0, rev 2.00/27.20, addr 2> on usbus0
ums0: 8 buttons and [XYZT] coordinates ID=0
Trying to mount root from ufs:/dev/ad10s1a
vboxnet0: Ethernet address: 0a:00:27:00:00:00
msk0: link state changed to UP
drm0: <ATI Radeon 3300 Graphics> on vgapci0
info: [drm] MSI enabled 1 message(s)
vgapci0: child drm0 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.31.0 20080613
info: [drm] Setting GART location based on new memory map
info: [drm] Loading RS780/RS880 Microcode
info: [drm] Resetting GPU
info: [drm] writeback test succeeded in 1 usecs
drm0: [ITHREAD]
```


----------



## yongari@ (Aug 16, 2010)

I have no clue why PHY write access fails here but it would be great if you can file a PR and let me know the PR number. Having a PR will always make me remind the issue and other users may also know possible driver issues.


----------



## PSY0NIC (Aug 16, 2010)

I've never successfully managed to get this driver working right either since 7.2.  Have to use a USB 100/MB Trendnet in the box that his a Marvell 1000/MB card.  Just updated to 8.1-RELEASE in hopes that they finally fixed this driver but it still craps out once you put a little load on it (csup ports).

EDIT - Just pinging it knocks it out of commission.


----------



## mix_room (Aug 18, 2010)

yongari@ said:
			
		

> I have no clue why PHY write access fails here but it would be great if you can file a PR and let me know the PR number. Having a PR will always make me remind the issue and other users may also know possible driver issues.


amd64/149757




			
				PSY0NIC said:
			
		

> but it still craps out once you put a little load on it (csup ports).


My driver works fine under load, that does not seem to be the problem. Have moved several GBs of data with the card without it crapping out. Pinging does not generally create a problem.


----------



## mix_room (Aug 25, 2010)

Is it possible that this issue is caused by too high temperatures, or other hardware issues? 

It seem that it is occurring more frequently lately. Now I do not even seem to be able to leave the machine on for more than a few hours before it decides to die. It used to be stable for weeks on end.


----------



## yongari@ (Aug 26, 2010)

I don't think it could be related with hardware issues. I know msk(4) has several issues to support some Marvell controllers but it looks hard to fix them mainly due to lack of documentation and hardware. Most Marvell controllers are available only on LOM and laptops so it's hard to get the hardware unless I replace my motherboard with new one which has Marvell controller.

One vague guess for the cause of issue is power management related one, like powerd(8). Recent controllers seem to have more advanced power saving features and that seems to require proper configuration but that's not available to open source developers.


----------



## mix_room (Aug 26, 2010)

Is there anything I can do to help you determine what the error is? (Short of sending you the mainboard that is). Tests I can run, output you need, access? 

I don't think that I use any power management features, unless they are enabled by default.


----------



## Maurovale (Aug 26, 2010)

Hi, i have an asus motherboard (P5WDG2 WS Pro) that have the same nic (msk0).

I can confirm the problem, it is something with this damn nic 

There is a workaround, just edit the file /boot/loader.conf with the following:


```
hw.pci.enable_msi=0 
hw.pci.enable_msix=0
```

Reboot and you can use that nic.

For me I changed to another networkd card for performance reasons.

Best Regards


----------



## mix_room (Aug 27, 2010)

I'll give that a try.


----------



## mix_room (Sep 15, 2010)

The motherboard has completely collapsed now, graphics output is completely broken. Perhaps this was a hardware issue.


----------

