On Sat, Aug 22, 2009 at 10:05:01AM -0700, Matthew Dillon wrote: > Hmm. Very interesting. It is getting a PRCS interrupt while it > is trying to send a software reset, then attempting to restart > the software reset. Oh joy. I clear any pending PRCS from the port > hardreset sequence so that means the target device is resetting > its PHY when we try to send a device reset to it, which it is not > supposed to do. > > Try this patch. It is completely untested (other then a compile test): > > fetch http://apollo.backplane.com/DFlyMisc/ahci14.patch > > If that doesn't work try also (with patch still applied) increasing > the timeout in the ahci_poll() command in ahci_pm_port_probe() around > line around line 145 from 1000 to 5000.
It doesn't panic anymore, but it says `Device on port is bricked'. Increasing the timeout in ahci_poll() command on line 145 doesn't help (same console message). By the way the controller is JMB360 from JMicron, and I found a very old patch against linux kernel: http://lkml.org/lkml/2006/1/29/2 but the driver has been quite reorganized since then, so I have no idea how this patch fits in our ahci driver. ahci0.pci3.pcib3.pci0.pcib0.legacy0.nexus0.root0 ahci0: <AHCI-PCI-SATA> [tentative] port 0x9400-0x940f,0x9480-0x9483,0x9800-0x9807,0x9880-0x9883,0x9c00-0x9c07 mem 0xff3fe000-0xff3fffff irq 24 at device 0.0 on pci3 ahci0: Reserved 0x2000 bytes for rid 0x24 tpe 3 at 0xff3fe000 ahci0: AHCI 1.0 capabilities 0xc722ff00<S64A,NCQ,SALP,SAL,SCLO,SPM,PMD,SSC,PSC>, 1 ports 32 tags/port, gen 1 (1.5Gbps) and 2 (3Gbps) IOAPIC: try clearing IRR for irq 24 ahci0.0: START HARDRESET ahci0.0: Transient Errors during reset: 0 (ignored) ahci0.0.15: Poll timeout slot 1 CMD: 6c111<HPCP,PMA,CR,FR,FRE,ST> TFD: 0x77<ERR> SERR: 40000<DIAG.W> ahci0.0: PMPROBE First FIS failed ahci0.0.15: Poll timeout slot 1 CMD: 6c111<HPCP,PMA,CR,FR,FRE,ST> TFD: 0x77<ERR> SERR: 40000<DIAG.W> ahci0.0: PMPROBE First FIS failed ahci0.0: Device on port is bricked ahci0.0: END HARDRESET 16 ahci0.0: Failing all commands (probe0:ahci0:0:0:0) error 22 (probe0:ahci0:0:0:0) Unretryable Error .. this repeats for ahci0:0:14:0
