Messages in this thread | | | Date | Fri, 24 Mar 2000 19:29:03 -0600 | From | David Elliott <> | Subject | Re: Cylinder limits jumper for drives over 32GB |
| |
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/
| |