Subject: Re: bootblocks dying on new IDE card
To: None <port-i386@NetBSD.ORG, rkboni@concentric.net>
From: Kevin Van Maren <vanmaren@fast.cs.utah.edu>
List: port-i386
Date: 01/11/1997 08:54:04
>This is an old ISA machine, the controller is a SIIG CI-1050 (this is what
>the card and the BIOS say, the box says 'Model CN2419').  The card does have
>an on-board BIOS which claims to do LBA, but when the controller attaches the
>drive the drive is attached as 780cyl/64hd/63sec rather than the native
>geometry of 3121cyl/16hd/63sec that the drive claims it is.  Don't know if
>this is important, though.

Well, the problem most likely lies here.  The *physical* intrface to the
drive only has 4 bits for the head (meaning 16 heads max).  However,
the BIOS interface only has 10 bits for the cylinder count, but extra
bits for the heads.  To deal with larger disks (>512MB), bits from the
cylinder are shifted into the heads register to pass to the BIOS.
However, you can't actually *use* this geometry.  The BIOS shifts these
into the cylinder count.

The problem is a) the boot blocks use the bios translation to boot
the kernel; b) NetBSD uses direct hardware access.  You need to partition
the disk with the BIOS's translation so that the bootblocks know what
to pass to the BIOS.