Re: SiI 3726 pmp doesn't work with 2.6.38 and Marvell 88SE9123 AHCI controller
From: Hubert Bailey <hidden>
Date: 2011-06-10 10:36:33
Subsystem:
libata subsystem (serial and parallel ata drivers), the rest · Maintainers:
Damien Le Moal, Niklas Cassel, Linus Torvalds
I have forwards this to the SW team. They should contact you shortly. ----- Original Message ----- From: Tejun Heo [mailto:tj@kernel.org] Sent: Friday, June 10, 2011 03:24 AM To: Tim Small <redacted> Cc: linux-ide@vger.kernel.org <redacted>; Saeed Bishara; Hubert Bailey Subject: Re: SiI 3726 pmp doesn't work with 2.6.38 and Marvell 88SE9123 AHCI controller Hello, Cc'ing marvell people. The original thread can be read from the following URL. http://thread.gmane.org/gmane.linux.ide/49658 On Thu, Jun 09, 2011 at 10:11:27PM +0100, Tim Small wrote:
Thanks very much for your patch - I gave it a spin (against Debian's 2.6.38 kernel) - it's apparently working better than before, but still a bit wonky...
...
Unplugging from the 3132 (and waiting for things to settle), then
plugging into the 88SE9123 gives the following...
541.610033] ata14: exception Emask 0x10 SAct 0x0 SErr 0x4050000 action
0xe frozen
541.610166] ata14: irq_stat 0x80400040, connection status changed
541.610277] ata14: SError: { PHYRdyChg CommWake DevExch }
541.610391] ata14: hard resetting link
543.288743] ata14: SATA link up 3.0 Gbps (SStatus 123 SControl 370)
543.289086] ata14.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports,
feat 0x1/0x9
543.289220] ahci 0000:01:00.0: FBS is enabled.
543.289418] ata14.00: hard resetting link
543.608852] ata14.00: SATA link up 1.5 Gbps (SStatus 113 SControl 320)
543.609031] ata14.01: hard resetting link
543.928756] ata14.01: SATA link down (SStatus 0 SControl 320)
543.928943] ata14.02: hard resetting link
544.248663] ata14.02: SATA link down (SStatus 0 SControl 320)
544.248856] ata14.03: hard resetting link
544.568553] ata14.03: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
544.880294] ata14.05: no reset method available, skipping reset
544.880594] ata14.05: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
544.881914] ata14.03: ATA-7: Hitachi HUA721010KLA330, GKAOAB0A, max UDMA/133
544.882099] ata14.03: 1953525168 sectors, multi 0: LBA48 NCQ (depth
31/32), AA
544.883774] ata14.03: configured for UDMA/133
544.883987] ata14: EH complete
544.884213] scsi 13:3:0:0: Direct-Access ATA Hitachi HUA72101
GKAO PQ: 0 ANSI: 5
544.884750] sd 13:3:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00
TB/931 GiB)
544.884879] sd 13:3:0:0: [sdb] Write Protect is off
544.884892] sd 13:3:0:0: [sdb] Mode Sense: 00 3a 00 00
544.884957] sd 13:3:0:0: [sdb] Write cache: enabled, read cache:
enabled, doesn't support DPO or FUA
544.897087] sdb: sdb1 sdb2 < sdb5 >
544.897519] sd 13:3:0:0: [sdb] Attached SCSI disk
... so definitely some progress, but the Maxtor drive on PMP port zero
hasn't been found...That's weird. Link is up but EH is detected to be up but EH didn't probe it. Is the behavior reproducible?
I then hot-un-plugged the Maxtor from the pmp and got this lot: 709.515101] ata14.15: PMP product ID mismatch 709.515256] ata14.15: hard resetting link 715.043716] ata14.15: SATA link up 3.0 Gbps (SStatus 123 SControl 370) 715.044020] ata14.15: Port Multiplier vendor mismatch '0x1095' != '0x0' 715.044191] ata14.15: PMP revalidation failed (errno=-19) 715.044352] ata14.15: limiting SATA link speed to 1.5 Gbps 720.042049] ata14.15: hard resetting link 725.572222] ata14.15: SATA link up 1.5 Gbps (SStatus 113 SControl 310) 725.572595] ata14.15: Port Multiplier vendor mismatch '0x1095' != '0x0' 725.572767] ata14.15: PMP revalidation failed (errno=-19) 730.570649] ata14.15: hard resetting link 736.100725] ata14.15: SATA link up 1.5 Gbps (SStatus 113 SControl 310) 736.101093] ata14.15: Port Multiplier vendor mismatch '0x1095' != '0x0' 736.101259] ata14.15: PMP revalidation failed (errno=-19) 736.101417] ata14.15: failed to recover PMP after 5 tries, giving up 736.101578] ata14.15: Port Multiplier detaching
This shouldn't happen and seems to be the same problem which triggered before. I don't think this is caused by 3726. The problem is likely on the controller side.
741.099118] ata14: hard resetting link 746.629228] ata14: SATA link up 3.0 Gbps (SStatus 123 SControl 370) 746.629636] ata14.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
So, detaching & re-attaching the PMP brings it back. Maybe the controller requires flipping PORT_CMD_PMP after an exception?
Plugging the Maxtor back in then gave: 813.046630] ata14.15: PMP product ID mismatch 813.046787] ata14.15: hard resetting link 814.766608] ata14.15: SATA link up 3.0 Gbps (SStatus 123 SControl 370) 814.766916] ata14.15: Port Multiplier vendor mismatch '0x1095' != '0x0' 814.767080] ata14.15: PMP revalidation failed (errno=-19)
... Ths same problem triggering again.
833.208478] ata14: hard resetting link 834.931910] ata14: SATA link up 3.0 Gbps (SStatus 123 SControl 370) 834.932300] ata14.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
...
837.323334] sd 13:0:0:0: [sdb] 240121728 512-byte logical blocks: (122 GB/114 GiB) 837.324358] sd 13:3:0:0: [sdc] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
And after re-attaching, at least detection worked, so that's something.
.... and reading from each disk individually works, but reading from both at the same time doesn't (I/Os time-out, and then the whole lot gets reset).
Maybe FBS support doesn't work as advertised? Can you please try the following patch?
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index d38c40f..a2f4b68 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c@@ -444,6 +444,7 @@ void ahci_save_initial_config(struct device *dev, "controller can do FBS, turning on CAP_FBS\n"); cap |= HOST_CAP_FBS; } + cap &= ~HOST_CAP_FBS; if (force_port_map && port_map != force_port_map) { dev_printk(KERN_INFO, dev, "forcing port_map 0x%x -> 0x%x\n",
Thanks. -- tejun