Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Mar 95 10:52:33 MST
From:      terry@cs.weber.edu (Terry Lambert)
To:        gineoh@engin.umich.edu (david lawrence hoenig)
Cc:        bugs@FreeBSD.org
Subject:   Re: Can't install 2.0-RELEASE on EIDE HD
Message-ID:  <9503171752.AA29129@cs.weber.edu>
In-Reply-To: <Pine.3.87.9503170638.A24278-0100000@steam.engin.umich.edu> from "david lawrence hoenig" at Mar 17, 95 06:37:38 am

next in thread | previous in thread | raw e-mail | index | archive | help
> I have read all the newsgroups on freebsd and I didn't see anything on 
> this so I'm asking you.  I just got a DELL P75 w/ EIDE 1.0 gigabyte hard 
> drive.  Here's the default CMOS geometry:
> 
> 	cylndrs		heads	sectors		size
> 	 525		 64	  63	        1083 megabytes
> 
> problem is FreeBSD says it can't handle 64 heads and reverts to 16 in 
> which case it will then not boot from the hard disk.  I have tried 
> setting the cmos to 16 heads and 2100 cylinders which seems to work for 
> BSD and allows me use of the entire disk, but then the DOS partition 
> doesn't work.  I have tried writing my own partition table with different 
> geometry for the two partitions with little success.  I was able to get BSD 
> to boot from the Hard disk, but dos would always have to be booted from a 
> floppy, and the two partions only totaled 800 of my 1000 megs.  It 
> seems others would have encountered this problem and there must be an easy 
> fix that I am missing.  Any suggestions would be _greatly_ appreciated.

The BIOS based I/O uses C/H/S values to do it's I/O.

The number of bits available in the BIOS I/O calls is insufficient to
represent the number 64.

BSD uses BIOS I/O to load its kernel.

EIDE drives have an OnTrack or equivalent Master Boot Record that loads
a redirector that extends the interface.

What do you propose we do?

The typical workaround is to reformat the drive to get rid of the
MBR -- this is not a reversable process, unless you have the disks
the OEM used to install it.  I do *not* recommend it.

The other workaround is to use the entire disk for BSD (effectively the
same thing).

The reason both of these work is that BSD itself is capable of addressing
more than 1024 cylinders.

This still imposes a limit of 512M, since the WD interface is expected to
be an extention of the ATA, which is to say, limited to 10 bits of
cylinder decode.


Someone needs to reimplement the EIDE sector addressing extensions that
the EIDE drive boot record or EIDE ROM redirector installed by the
controller POST routine uses to access more than the legal limit on
drive space.

If you can find the standards documents and someone familiar with
BSD coding that has an EIDE drive, your problem will probably be solved
in short order.  The Catch-22 here is that people familiar with BSD
coding don't buy EIDE drives.


Some thought is currently going into how to organizationally support
developement of drivers for orphan hardware, possibly by having a
common-to-all-BSD's consortium buy the hardware for willing
programmers, but nothing has been formalized so far.

Until something like that happens, you will probably not be able to
use EIDE drives fir FreeBSD, NetBSD, or even BSDI.


					Regards,
					Terry Lambert
					terry@cs.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9503171752.AA29129>