Skip to contentSkip to conversation

sata_sil, sil3512, and PMP?

DISCUSSION Petr Vandrovec 3 participants 4 messages Aug 15, 2007 – Aug 17, 2007 libata

lore
Share & tools
lore
#0 lore raw

Hello,
is anybody working on PMP support in sata_sil driver, or should I
give it a try, or is it simpler to just shell out $70 to get 3124 based device with FIS based switching?

According to datasheet it seems that 3512 should be able to do command based switching without (too big) problems. Though I'm not very confident as whole PMP support fits into two sentences in 3512 public datasheet :-(
Thanks,
Petr Vandrovec

#1 lore raw

3512/3112/3114 controllers do not support PMP. 3124/3132 controllers do.

Eunice

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Petr Vandrovec
Sent: Wednesday, August 15, 2007 5:47 AM
To: [email protected]
Subject: sata_sil, sil3512, and PMP?

Hello,
is anybody working on PMP support in sata_sil driver, or should I
give it a try, or is it simpler to just shell out $70 to get 3124 based device with FIS based switching?

According to datasheet it seems that 3512 should be able to do command based switching without (too big) problems. Though I'm not very confident as whole PMP support fits into two sentences in 3512 public datasheet :-(
Thanks,
Petr Vandrovec

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw

Quoting Eunice Chen <[email protected]>:

Quoted 1 line

3512/3112/3114 controllers do not support PMP. 3124/3132 controllers do.

Um... Well, that's bad. Can you update datasheet then?

http://www.siliconimage.com/docs/SiI-DS-0102-D.pdf says on page 77:

===
Serial ATA SControl
Address Offset: 0x100 (Channel 0) / 0x180 (Channel 1)
Access Type: Read/Write
Reset Value: 0x0000_0010
...
This register is the SControl register as defined by the Serial ATA specification. &#8226; Bit [19:16]: PMP - This field is the 4-bit value to be placed in the Port Multiplier Port field of all transmitted FISes.
===
and there is also pm_fiscfg bitfield in SMisc :-(

Provoking false hopes from unsuspecting readers :-( I'll shell out some money then...
Thanks,
Petr

Quoted 27 lines

Eunice

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Petr Vandrovec
Sent: Wednesday, August 15, 2007 5:47 AM
To: [email protected]
Subject: sata_sil, sil3512, and PMP?

Hello,
is anybody working on PMP support in sata_sil driver, or should I
give it a try, or is it simpler to just shell out $70 to get 3124 based device with FIS based switching?

According to datasheet it seems that 3512 should be able to do command based switching without (too big) problems. Though I'm not very confident as whole PMP support fits into two sentences in 3512 public datasheet :-(
Thanks,
Petr Vandrovec

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 7 lines · [email protected] wrote:

Quoting Eunice Chen <[email protected]>:

Quoted 1 line

3512/3112/3114 controllers do not support PMP. 3124/3132 controllers do.

Um... Well, that's bad. Can you update datasheet then?

http://www.siliconimage.com/docs/SiI-DS-0102-D.pdf says on page 77:

Hello,
it seems that there is some hope ;-) It is currently in
ugly-nasty-hack-with-screwed-exception-handling state, but it seems to work as advertised in documentation.

Only thing I noticed during development was that SError on 3726's port 5 (SEMB) reports 0x04050000, and if code attempts to clear bit 26 then multiplier responds with status 0x00 instead of 0x50, and seems a bit unhappy (like returning 0xFF in all registers (including reserved device bits) on subsequent read from SError). Apparently sil24 driver does not notice as it does not look at DRDY (and always-one) bit in PMP read/write responses (doc says DRDY should be 1, so I tested it, and it ended up in repeated resets and disabled port #5)...
Petr

# dmesg | tail -2000 | grep ^[as]
sata_sil 0000:02:01.0: version 2.2
scsi6 : sata_sil
scsi7 : sata_sil
ata5: SATA max UDMA/100 cmd 0xffffc20002f5ec80 ctl 0xffffc20002f5ec8a bmdma 0xffffc20002f5ec00 irq 24
ata6: SATA max UDMA/100 cmd 0xffffc20002f5ecc0 ctl 0xffffc20002f5ecca bmdma 0xffffc20002f5ec08 irq 24
ata5: SATA link down (SStatus 0 SControl F0310)
ata6: SATA link down (SStatus 0 SControl F0310)
ata5: exception Emask 0x10 SAct 0x0 SErr 0x50000 action 0xa frozen
ata5: hard resetting link
ata5: SATA link up 1.5 Gbps (SStatus 113 SControl F0310)
ata5.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
ata5.15: SDB_NOTIFY not supported on host port, hotplug won't work on
ata5.00: hard resetting link
ata5.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata5.01: hard resetting link
ata5.01: SATA link down (SStatus 0 SControl 300)
ata5.02: hard resetting link
ata5.02: SATA link down (SStatus 0 SControl 300)
ata5.03: hard resetting link
ata5.03: SATA link down (SStatus 0 SControl 300)
ata5.04: hard resetting link
ata5.04: SATA link down (SStatus 0 SControl 300)
ata5.05: hard resetting link
ata5.05: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata5.00: ATA-7: Hitachi HDS721010KLA330, GKAOA70F, max UDMA/133
ata5.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata5.00: configured for UDMA/100
ata5: EH complete
scsi 6:0:0:0: Direct-Access     ATA      Hitachi HDS72101 GKAO PQ: 0 ANSI: 5
sd 6:0:0:0: [sdd] 1953525168 512-byte hardware sectors (1000205 MB)
sd 6:0:0:0: [sdd] Write Protect is off
sd 6:0:0:0: [sdd] Mode Sense: 00 3a 00 00
sd 6:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:0:0: [sdd] 1953525168 512-byte hardware sectors (1000205 MB)
sd 6:0:0:0: [sdd] Write Protect is off
sd 6:0:0:0: [sdd] Mode Sense: 00 3a 00 00
sd 6:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:0:0: [sdd] Attached SCSI disk
sd 6:0:0:0: Attached scsi generic sg4 type 0