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