Re: libata dev_config call order wrong.

From: Brad Campbell
Date: Mon Aug 30 2004 - 04:12:58 EST


Alan Cox wrote:
On Sul, 2004-08-29 at 19:25, Jeff Garzik wrote:

According to the Serial ATA docs, IDENTIFY DEVICE word 93 will be zero if it's Serial ATA. Who knows if that's true, given the wierd wild world of ATA devices.


You need to check if word 93 is valid first. Same with things like the
cache control word - its value is only meaningful if the drive says the
word is meaningful.

I'm making some assumptions here based on information I could scrape up off the net.

IDENTIFY DEVICE Word 93 support has been mandatory at least since ATA-5.

ATA-5 did not have lba48 or > udma/66.

SATA->PATA bridge boards support > udma/33 and thus must emulate an 80 conductor cable.

Thus, any device capable of lba48 (and these are the ones that trigger the > 200 sector problem) must (according to the ATA-5 and up standard) support correct use of the IDENTIFY DEVICE word 93 register.

Given that the SATA->PATA bridge boards support 80 pin detection, then bit 13 of word 93 must be high on any drive that supports lba48, and given the *current* sata spec states that word 93 must be zero, we should be able to use this detection method.

Now, remember I have been an "ATA researcher" for about 4 hours now, please feel free to belt me with the wet salmon of enlightenment and point out the flaw in my logic. Otherwise, when I get home this evening I'm going to have a crack and getting this working.

Regards,
Brad
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/