Re: CF to SATA bridge support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The ancient 16MB Lexar PIO-only CF-Card did not fare so well.
It crapped out similar to how Mathieu reported,
with lots of HSM errors on WRITEs.  READs were fine, though.

HOTPLUGGING NOW:
[  461.060770] ata11: exception Emask 0x10 SAct 0x0 SErr 0x4010000 action 0xe frozen
[  461.060774] ata11: edma_err_cause=00000010 pp_flags=00000000, dev connect
[  461.060778] ata11: SError: { PHYRdyChg DevExch }
[  461.060785] ata11: hard resetting link
[  461.816019] ata11: SATA link down (SStatus 0 SControl 300)
[  461.816026] ata11: EH complete
[  464.644462] ata12: exception Emask 0x10 SAct 0x0 SErr 0x4010000 action 0xe frozen
[  464.644465] ata12: edma_err_cause=00000010 pp_flags=00000000, dev connect
[  464.644469] ata12: SError: { PHYRdyChg DevExch }
[  464.644475] ata12: hard resetting link
[  465.524031] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  465.552206] ata12.00: CFA: LEXAR ATA_FLASH, V1.00, max PIO3
[ 465.552210] ata12.00: 32128 sectors, multi 0: LBA [ 465.552225] ata12.00: applying bridge limits
[  465.564244] ata12.00: configured for PIO3 (device error ignored)
[  465.588253] ata12.00: configured for PIO3 (device error ignored)
[  465.588258] ata12: EH complete
[  465.588360] scsi 11:0:0:0: Direct-Access     ATA      LEXAR ATA_FLASH  V1.0 PQ: 0 ANSI: 5
[  465.588501] sd 11:0:0:0: [sdb] 32128 512-byte hardware sectors: (16.4 MB/15.6 MiB)
[  465.588521] sd 11:0:0:0: [sdb] Write Protect is off
[  465.588524] sd 11:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[  465.588555] sd 11:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  465.588661] sd 11:0:0:0: [sdb] 32128 512-byte hardware sectors: (16.4 MB/15.6 MiB)
[  465.588680] sd 11:0:0:0: [sdb] Write Protect is off
[  465.588683] sd 11:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[  465.588713] sd 11:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  465.588717]  sdb:<4>ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.617448]  sdb1
[  465.617586] sd 11:0:0:0: [sdb] Attached SCSI removable disk
[  465.617665] sd 11:0:0:0: Attached scsi generic sg2 type 0

UBUNTU NOW TRIES TO AUTOMOUNT THE PARTITIONS:
[  465.632756] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.646726] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.654445] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.662477] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.670420] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.688374] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.694437] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.702436] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata
[  465.710438] ata12: sata_mv: attempting PIO w/multiple DRQ: this may fail due to h/w errata

OKAY, MOUNTED.  NOW WE TRY TO WRITE/SYNC SOME DATA:
[  511.784629] ata12.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[  511.784634] ata12.00: edma_err_cause=00001000 pp_flags=00000000
[  511.784640] ata12.00: cmd 30/00:01:41:00:00/00:00:00:00:00/e0 tag 0 pio 512 out
[  511.784642]          res 58/00:01:41:00:00/00:00:00:00:00/e0 Emask 0x2 (HSM violation)
[  511.784645] ata12.00: status: { DRDY DRQ }
[  511.784651] ata12: hard resetting link
[  512.260030] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  512.300230] ata12.00: configured for PIO3 (device error ignored)
[  512.324235] ata12.00: configured for PIO3 (device error ignored)
[  512.324242] ata12: EH complete
[  512.332131] ata12.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[  512.332134] ata12.00: edma_err_cause=00001000 pp_flags=00000000
[  512.332140] ata12.00: cmd 30/00:01:41:00:00/00:00:00:00:00/e0 tag 0 pio 512 out
[  512.332141]          res 58/00:01:41:00:00/00:00:00:00:00/e0 Emask 0x2 (HSM violation)
[  512.332145] ata12.00: status: { DRDY DRQ }
[  512.332149] ata12: hard resetting link
[  512.808029] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  512.848229] ata12.00: configured for PIO3 (device error ignored)
[  512.872229] ata12.00: configured for PIO3 (device error ignored)
[  512.872236] ata12: EH complete
[  512.880136] ata12.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[  512.880140] ata12.00: edma_err_cause=00001000 pp_flags=00000000
[  512.880145] ata12.00: cmd 30/00:01:41:00:00/00:00:00:00:00/e0 tag 0 pio 512 out
[  512.880147]          res 58/00:01:41:00:00/00:00:00:00:00/e0 Emask 0x2 (HSM violation)
[  512.880150] ata12.00: status: { DRDY DRQ }
[  512.880154] ata12: hard resetting link
[  513.356029] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  513.396229] ata12.00: configured for PIO3 (device error ignored)
[  513.420229] ata12.00: configured for PIO3 (device error ignored)
[  513.420237] ata12: EH complete
[  513.428128] ata12: limiting SATA link speed to 1.5 Gbps
[  513.428132] ata12.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[  513.428135] ata12.00: edma_err_cause=00001000 pp_flags=00000000
[  513.428140] ata12.00: cmd 30/00:01:41:00:00/00:00:00:00:00/e0 tag 0 pio 512 out
[  513.428142]          res 58/00:01:41:00:00/00:00:00:00:00/e0 Emask 0x2 (HSM violation)

On the surface of things, I'd say that, yes, this is the multiple-DRQ
errata biting us.  The Marvell chips don't synchronize ATA status
register updates correctly with DRQ and interrupts.  So a special
polling sequence is supposed to be required to make it all play nicely.

And the current sata_mv doesn't do that (yet).

So I suppose we'll have to clone ata_pio_task() and ata_sff_hsm_move()
and hack them for the funky Marvell errata to get this to work correctly.
That's a LOT of code, which is why I was/am hesitant to do it before now.

Anyone else want to have a go at it?
I can describe the exact protocol sequence required
for avoiding the errata issues.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux