Subject: Re: >8gb disks on Dell Inspiron 3000, any ideas?
To: <>
From: David Laight <david@l8s.co.uk>
List: port-i386
Date: 06/12/2002 17:58:04
On Wed, Jun 12, 2002 at 07:52:49AM -0700, Brian Buhrow wrote:
> 	Hello folks.  I'm trying to install a new disk in my Dell Inspiron
> 3000 laptop computer ant put NetBSD and Windows back on it.  Unfortunately,
> the BIOS is not upgradable to the point where it supports >8gb disks.

Erm, 8Gb is 2^24 (512 byte sectors) that is all any BIOS can read using
'CHS' bios calls (because C, H and S are passed in three 8 bit registers).
For 'large' disks you (almost) always see a BIOS geometry of
cylinders: 1023 heads: 255 sectors/track: 63 (16065 sectors/cylinder)

If your BIOS doesn't support >8Gb disks then it won't support LBA
addressing - although the disk definitely will.

> I figured NetBSD would see the 8GB disk through the BIOS,
> the 30GB through the disk inquiry directly, and I'd be set.

True - provided you keep the filesystem that contains /netbsd
in the first 8GB.

> 	Instead, The disk reports through NetBSD as if it were a generic ST506
> disk with 139264 sectors, although it reports a geometry which works out to
> 8.4GB in size.  Worse, it registers as running in PIO mode 0 and uses CHS
> addressing.

Dunno! I've only looked at the boot code :-)
What does fdisk report?

> 	I know the disk is UDMA100 capable, and the controller was doing UDMA33
> with the previous drive, so shouldn't drive and controller agree on UDMA33?
>  	Finally, when I try to disklabel the disk, I use the provided
> BIOS geometry, figuring that 8GB is better than 4GB, but I can't do that
> because disklabel says that any partition larger than 139264 sectors is
> beyond the end of the disk.

Wonder where disklabel is getting the disk size from?
Try setting slice 'd' first?

> 1.  Is there a known way to work around deficient BIOS's when the disk in
> question is the boot disk?  

If the BIOS won't do LBA addressing, you can't read a kernel from
beyomd 8Gb...

> 
> 2.  How about a way of forcing LBA addressing?  can I use the flags
> parameter in the wd* line to force the UDMA33 LBA addressing back into the
> game?

I have a version of mbr_bootsel that can be forced to try LBA addressing.
I would have thought the wd driver would use it almost all the time.
Maybe the driver isn't reporting a 'correct' answer to the drive identify
request - I assume it tries to do one.

> 3.  What about getting disklabel(8) to ignore the fact that I'm trying to 
> force a label which I know doesn't comply with what it thinks?  Is there an
> expert flag I can use?

I'm surprised it checks - it doesn't do any other useful checks
(overlapping slices, moving a slice that has a filesystem mounted,
writing the disklabel to an entirely different piece of disk because the
partition table has changed......)


	David

-- 
David Laight: david@l8s.co.uk