From: Mark Lord <liml@rtr.ca>
To: Mathieu GELI <mathieu.geli@gmail.com>
Cc: Robert Hancock <hancockrwd@gmail.com>, linux-ide@vger.kernel.org
Subject: Re: CF to SATA bridge support
Date: Sat, 29 Aug 2009 12:10:22 -0400 [thread overview]
Message-ID: <4A9952EE.8080701@rtr.ca> (raw)
In-Reply-To: <4A995070.4020108@rtr.ca>
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.
prev parent reply other threads:[~2009-08-29 16:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-07 17:59 CF to SATA bridge support Mathieu GELI
2009-08-08 3:21 ` Robert Hancock
2009-08-08 18:35 ` Mathieu GELI
2009-08-09 16:23 ` Mathieu GELI
2009-08-10 13:33 ` Mark Lord
2009-08-29 13:48 ` Mark Lord
2009-08-29 14:22 ` Mark Lord
2009-08-29 15:47 ` Mark Lord
2009-08-29 15:59 ` Mark Lord
2009-08-29 16:10 ` Mark Lord [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A9952EE.8080701@rtr.ca \
--to=liml@rtr.ca \
--cc=hancockrwd@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=mathieu.geli@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).