*BSD News Article 7032


Return to BSD News archive

Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!darwin.sura.net!Sirius.dfn.de!mailgzrz.TU-Berlin.DE!news.netmbx.de!Germany.EU.net!mcsun!uknet!pavo.csi.cam.ac.uk!pipex!demon!grendel.demon.co.uk!jes
From: jes@grendel.demon.co.uk (Jim Segrave)
Newsgroups: comp.unix.bsd
Subject: Re: Finding untranslated params for IDE drives (w/ pgm)
Message-ID: <720052151snx@grendel.demon.co.uk>
Date: 25 Oct 92 15:29:11 GMT
References: <1992Oct25.112332.25964@fcom.cc.utah.edu>
Sender: usenet@gate.demon.co.uk
Organization: None
Lines: 47
ReplyTo: jes@grendel.demon.co.uk
X-Mailer: cppnews $Revision: 1.19 $

In article <1992Oct25.112332.25964@fcom.cc.utah.edu> terry@cs.weber.edu writes:

> In article <BwLopC.82n@flatlin.ka.sub.org>, bad@flatlin.ka.sub.org (Christoph Badura) writes:
> |> In <1992Oct19.053131.11296@tfs.com> julian@tfs.com (Julian Elischer) writes:
> |> >Terry feels that tehhe translation in IDE drives is done by the BIOS
> |> >support routines, though I was dubious about this (but hey
> |> >I don't have an IDE drive so what do I know)
> |> 
> |> Terry feels wrong. IDE translation is done "on the drive", because you
> |> can hook up translated IDE drives to machines that know zilch about
> |> IDE, because IDE didn't exist when their BIOS was programmed.
> 
> Terry feels this from disassembling the BIOS *on board* an IDE controller;
> one wonders how AMI BIOS drive type 47 works when the drive hardware only has
> access to the CMOS settings through it's controller firmware?

Odd that. I've been doing PC-AT BIOS work for the last year or two and
worked with Quantam, Coneer, Fujitsu, NEC, Maxtor, and Teac IDE drives.
In every single case, the BIOS at power up sets the drive configuration
from the drive type using either a table in EPROM or values stored in
the CMOS RAM of the RTC chip (for the user defined types). The PC BIOS
sets int 0x41/0x46 to be a segment:offset pointer to a 16 byte table
describing the drive. For predefined types, these are set to preset
entries within the BIOS prom. For user defined drives, the BIOS must
locate some free memory (often by reducing the base memory size by 1K),
create a drive table in this memory, and set the pointer to this newly
created table. After the drive configuration is set, all accesses to
the drive are translated in the drive using the configuration details
supplied.

I can believe that there may have been early IDE drives which did not do
mapping in the controller, but these would be quite rare these days.
Every IDE drive I have encountered uses controller mapping - most of
them do not use an constant number of sectors/track, making BIOS level
mapping very difficult. Except for timing problems with some drives -
Quantams in particular - IDE drives can be fitted to ATs with a BIOS
written for ISA MFM controllers without any problems.

> Terry also feels that, were the translation 100% transparent, no one trying to
> load both DOS and 386BSD on an IDE drive would ever have problems related to
> translation.  Terry wonders *why* the software is sensitive to the "transparent"
> translation of cylinder boundries if Christoph is right?
At a guess - I'm not running 386BSD - the disc label contains different
parameters than the geometry set by the BIOS and once the OS starts up,
it remaps the drive to a new and incompatible configuration.
--
Jim Segrave (Segrave Software Services)     jes@grendel.demon.co.uk