tech-kern archive

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

Re: WD_QUIRK_FORCE_LBA48



On Mon, Dec 14, 2009 at 10:17:46PM +0100, Manuel Bouyer wrote:
> On Mon, Dec 14, 2009 at 10:05:23PM +0100, Christoph Badura wrote:
> > On Mon, Dec 14, 2009 at 04:27:51PM +0100, Manuel Bouyer wrote:
> > > On Sun, Dec 13, 2009 at 10:41:15PM +0000, Christoph Badura wrote:
> > > > -           (wd->sc_wdc_bio.blkno > LBA48_THRESHOLD ||
> > > > +           (wd->sc_wdc_bio.blkno +
> > > > +               wd->sc_wdc_bio.bcount / wd->sc_dk.dk_label->d_secsize >
> > > > +               LBA48_THRESHOLD ||
> > > 
> > > but please make this (LBA48_THRESHOLD + 1). Otherwise the last
> > > LBA24 sector will be inaccessible on non-LBA48 controllers.
> > 
> > As David pointed out the last addressable LBA28 sector is actually
> > 0xFFFFFFE, c.f. 6.2.1. of ATA-ATAPI-6 spec[1].  Also, 6.2.2. of the spec
> > requires devices to return an error if an attempt is made to access
> > sector 0xFFFFFFFF.  So the check for > LBA48_THRESHOLD is correct.
> 
> Well, not really because previous standards didn't say that.
> ATA-5 specifically says that word 61-60 shall be less than or equal
> to  268,435,456 (which is 0x10000000). They changed their mind for ATA-6.

Hum, as we have the ATA major number in IDENTIFY, maybe we could make
LBA48_THRESHOLD dependant on the ATA revision reported by the drive ?

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index