Re: 32GB IDE-Limit with IBM-DPTA-353750 (was Re: IBM Deskstar IDE 25gb not working.)

Guest section DW (dwguest@win.tue.nl)
Sat, 11 Sep 1999 20:21:18 +0200 (MET DST)


From: Okke Timm <okke@komtel.net>

Andre Hedrick wrote:

No, he didnt. It was Andries Brouwer.

> From: Okke Timm <okke@komtel.net>
>
> I have an "IBM-DPTA-353750", it reports CHS=7144/16/63. I found no BIOS that
> would recognize this drive, they all hang. Only removing the drive from the
> BIOS works.
>
> [...] present kernels do not handle disks over 33.8 GB (because the number
> of cylinders overflows a short). See the large disk howto. I posted a
> patch that fixes some of the associated problems a week or so ago.

Scanning through your posts from Sept 1, I only find the PCI-init stuff...
Can you give me another hint/pointer ?

Try the correct name, and the last week in August.

> The current LBA-detection assumes that all drives report 16383,16,63
> physically, the Desktar definitly does not do so.
>
> I don't believe you. Can you back up this claim with hdparm -I output?

You're right and I am wrong:

[root@peanuts /root]# hdparm -I /dev/hda
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=34
CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=73261440

Good.

I did not choose a translation, the drives are not enabled in the BIOS.
Which geometry translation applies, for drives not listed in BIOS data ?
During the kernel boot I get:

hda: IBM-DPTA-353750, 35772MB w/1961kB Cache, CHS=7144/16/63, (U)DMA

You see what happens. The geometry is C/H/S=72680/16/63.
But with C stored in a short one gets 72680-65536=7144.

BTW: I think the output format for the cylinders in /proc/ide/hdx/geometry
should be changed to unsigned (2.2.12):

[root@peanuts log]# cat /proc/ide/hda/geometry
physical -29196/32/63
logical -29196/32/63

Yes, you are right. If I am not mistaken this was corrected in 2.3.9
(patch on ide-proc.c), and this same 2-line change of %hi into %d
could also be applied to 2.2.12.

The "physical" geometry is in truth the "BIOS" geometry ?

It is not my terminology.
For the Linux user probably 3 geometries play a role:
1. The geometry used for I/O. There is no such geometry, except for ancient
disks that do not understand LBA. So, this only matters for people with
antique hardware.
2. The geometry used by fdisk.
3. The geometry used by LILO.

These can all be different.
Geometry 3 is the geometry needed for interaction with the BIOS at boot time.
Geometry 2 is the geometry needed for understanding disk
partition tables when the disk is shared with other operating systems.
Geometry 1 is the geometry needed to talk to the hardware.

My problem is that the LBA-detection fails, if the BIOS (or kernel) reports
7144/16/63 and the logical geometry is set to something like 38340/32/63
(With PTBL/fdisk). Do you have a solution for this problem ?

See
http://www.win.tue.nl/~aeb/linux/Large-Disk-12.html#ss12.1
(entitled IDE problems with 34+ GB disks).

See
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9908.3/0272.html
(entitled Re: IBM 37GB drive).

There is a semi-finished patch on 2.3.14 there that you can apply.
(It does not patch cleanly into 2.2.12.) I planned to do more,
but it seems other things came first, and I think it is usable
as given there. Please report on success.

Andries (who is not Andre)
aeb@cwi.nl

-
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/