Subject: Re: >8gb disks on Dell Inspiron 3000, any ideas?
To: David Laight <david@l8s.co.uk>
From: Brian Buhrow <buhrow@lothlorien.nfbcal.org>
List: port-i386
Date: 06/12/2002 10:04:28
	Hello David.  Thanks for the reply.  I have a little more info now.
	The fake geometry and type "ST506" is being assigned by the wd driver after it fails to do an ATA_Identify command.  So, the current task is to find out why the identify command is failing.
-Brian

On Jun 13,  2:58am, David Laight wrote:
} Subject: Re: >8gb disks on Dell Inspiron 3000, any ideas?
} 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
>-- End of excerpt from David Laight