Re: Cylinder limits jumper for drives over 32GB

From: David Elliott (dfe@infinite-internet.net)
Date: Fri Mar 24 2000 - 20:29:03 EST


Andries.Brouwer@cwi.nl wrote:

> From: David Elliott <dfe@infinite-internet.net>
>
> One thing seems interesting about the log below.... why does it say
> 65530/15/61 ??? Linux thinks the logical geometry is 4982/255/63
> (which is correct) but maybe the drive thinks it is 65531/16/63
>
> Yes, it does. (With jumper.)
>
> [So these error messages come precisely at the end of the
> truncated disk. But it seems that you are using CHS,
> not LBA addressing:
>
> hda: dma_intr: error=0x10 { SectorIdNotFound },
> CHS=65530/15/61, sector=48737112
>
> and with CHS and 65531/16/63 it is clear that you cannot
> get beyond 66055248 sectors. Why are you using CHS?]
>

Whoops! My fault. I incorrectly modified ide-disk.c to report the correct
capacity by multiplying the logical geometry. I changed that now so it
actually updates the lba_capacity field and still leaves LBA enabled. The
drive still doesn't read past 66055248 sectors though. So I now removed my
patch and am putting your patch onto the kernel. I am hoping that it will
let the drive read past that 66055248 sector with the cylinder limitations
set. Then I will put my patch back on to correct what Linux thinks the lba
capacity is, and then all should be well.

>
> ["Linux thinks the logical geometry is 4982/255/63"
> Note that this logical geometry is entirely irrelevant.
> It is not used for I/O.]
>

Ahh.. okay. I was under the mistaken impression that it would be. After
reading a bunch of stuff about IDE, it seems that if you did want to CHS
address the drive, you would need to use it's "physical" geometry. Of course
you could use a command to change that and make it cyl/255/63, but I still
think the drive would clip the capacity to cylinder 4111 in that case. Plus
it'd be a step backwards for Linux to address the drive as CHS anyway.

>
> ["CurSects=-66060037" - that is a misinterpretation.
> This number is FC1000FB, but both shorts were interchanged
> and the correct number is 00FBFC10, which is 16514064.
> A flaw in hdparm, I suppose.]
>

Right.. the physical geometry and supposed number of sectors should be 8
GB (16514064 sectors).

Linux uses LBA addressing (when I don't screw that up on accident). I still
can't figure out why in the hell the drive would actually prevent access to
sectors over the 32GB limt!? What purpose does that serve? And the bigger
questions are:

1) How do we get at the real LBA capacity? This is not that big of a deal,
it's gotta be somewhere, and if not then Logical CHS multiplied out will be
close enough assuming EZ-Drive or something is running or logical CHS was
specified on the command line.

2) If we know the real LBA capacity, how do we access beyond that 32
GB mark?? No one seems to know the answer to this question.

-Dave

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:14 EST