Re: IBM Deskstar IDE 25gb not working.

Okke Timm (okke@komtel.net)
Fri, 10 Sep 1999 17:49:51 +0200


Magnus Ndslund(b) wrote:
> I have an IBM deskstar IDE 25gb HD.
> I get nothing but trouble when trying to install it.
> I should report in hdparm (CHS) 16383,16,63 but i only get
> 4096,16,63 ~= 2gb. When i force the 16383,16,63 setup (which
> the label states) i get

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.

> Sep 8 19:25:58 ey kernel: end_request: I/O error, dev 16:41 (hdd), sector
> 4129228
> Sep 8 19:25:58 ey kernel: hdd: read_intr: status=0x59 { DriveReady
> SeekComplete DataRequest Error }
> Sep 8 19:25:58 ey kernel: hdd: read_intr: error=0x04 { DriveStatusError }

The current LBA-detection assumes that all drives report 16383,16,63
physically, the Desktar definitly does not do so. Without LBA, this
behaviour is correct.

Try this patch against 2.2.12:

--- drivers/block/ide-disk.c.orig Thu Mar 11 02:49:43 1999
+++ drivers/block/ide-disk.c Fri Sep 10 17:10:39 1999
@@ -96,9 +96,15 @@
* very large drives (8GB+) may lie about the number of cylinders
* This is a split test for drives 8 Gig and Bigger only.
*/
- if ((id->lba_capacity >= 16514064) && (id->cyls == 0x3fff) &&
- (id->heads == 16) && (id->sectors == 63)) {
- id->cyls = lba_sects / (16 * 63); /* correct cyls */
+ if ((id->lba_capacity >= 16514064) && (id->heads == 16) &&
+ (id->sectors == 63)) {
+ if (id->cyls == 0x3fff) {
+ id->cyls = lba_sects / (16 * 63); /* correct cyls */
+ } else if (id->lba_capacity <= 132118560) {
+ /* even larger drives may report wrong head count */
+ id->heads = 32; /* correct bogus heads */
+ id->cyls = lba_sects / (32 * 63);
+ }
return 1; /* lba_capacity is our only option */
}
/* perform a rough sanity check on lba_sects: within 10% is "okay" */

With this LBA-detection, you can change the geometry with fdisk to something
with 32 head and get LBA. I get the geometry 38340/32/63.

Yes, I know, this patch is not perfect. But it works for me.

Regards,
Okke.

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