Subject: Re: Big IDE disks -- install problems
To: None <port-i386@netbsd.org>
From: Wolfgang Rupprecht <wolfgang@wsrcc.com>
List: port-i386
Date: 09/15/1998 12:03:39
jonathan@DSG.Stanford.EDU (Jonathan Stone) writes:
> But that doesnt help unless we can find the real disk size, and I
> dont know how to do that for IDE disks bigger than ~8.5 gig.
Seagate has some white papers on disksize / BIOS limitations on their
web site. I don't understand all this bios crap, but perhaps it makes
sense (or gives a hint as to how to proceed) to someone else.
http://www.seagate.com:80/support/disc/faq/8point4.shtml
Overcoming the 8.4-Gbyte Barrier
...
BIOS limitations previously occurred at 528-Mbyte and 2.1-Gbyte
capacities. The next BIOS frontier is the 8.4-Gbyte barrier. This
barrier occurs because of the BIOS's addressing limitation. Unlike
previous BIOS limitations, the solution is more complex, but like
previous constraints, upgrading to the latest version BIOS will
solve this problem.
The 8.4-Gbyte constraint is based on an obscure method of causing
the PC to perform a disc drive operation called an interrupt
(INT). When the BIOS wants to get data onto or off of the hard
disc, it must send a software interrupt. The key storage interrupt
is INT 13h. Older versions of BIOS do not support this interrupt
on disc drives larger than 8.4 Gbytes. Like the rest of PC
architecture, this interrupt has been enhanced to accommodate the
larger capacities required in today's systems.
...
System BIOS Parameters for Drives Greater than 8.4 Gbytes
If system BIOS can break the 8.4-Gbyte barrier, how system BIOS
uses and reports drive parameters becomes a bit misleading and
confusing.
Currently, 16,383 cylinders is the absolute upper limit for system
BIOSs and DOS-type operating systems. When combined with the
normal 16 heads and 63 sectors per track (16,383 x 16 x 63 x 512
bytes per sector = 8,455,200,768 bytes), this produces a limit of
about 8.4 Gbytes for capacity reporting. The normal way of
computing drive capacity (Cylinders x Heads x Sectors x 512
bytes/sector) can no longer be used for drives larger than 8.4
Gbytes. For drives larger than 8.4 Gbytes, we must use the total
number of addressable sectors on the drive times 512 bytes per
sector. For example, the ST39140A label that shows 17,803,440
addressable sectors also shows 16,383C, 16H, 63S. Therefore,
17,803,440 total sectors x 512 bytes per sector = 9,115,361,280
bytes.
The standard C-H-S parameters are displayed on the Seagate drive
label and in the Seagate Desk Reference, along with total
addressable sectors for these large drives. If "User" is used in
system BIOS, even with LBA enabled, and the posted C-H-S
parameters are entered, the drive capacity will be limited to 8.4
Gbytes. With system BIOSs that support large drives, you must use
"Auto" with LBA enabled to get the full capacity of the
drive. (Tip: Some system BIOSs have a separate HDD detect utility
that normally uses the standard C-H-S method and will not function
correctly with large drives). Using System BIOS "Auto" on those
BIOSs that support large drives will use the total addressable
sectors on the drive to compute drive capacity. The total capacity
of the drive may or may not be displayed correctly in system
BIOS. The true capacity as seen by the system BIOS and the
operating system can only be displayed using FDISK or CHKDSK.
Although this discussion is primarily for ATA devices, the BIOS on
some Adaptec (www.adaptec.com) SCSI Adapters (such as
AHA2940U2W-LVD) provides Extended INT 13h support and will
successfully break the 8.4-Gbyte barrier for recognized capacity
when using an operating system that supports Extended INT 13. UNIX
and other non-DOS operating systems do not necessarily suffer from
the 8.4-Gbyte limitation.
...
It sure sounds like there is a way to deal with >8Gig in the bios for
IDE/ATA drives.
-wolfgang