j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
From: Benjamin Scott hawk@ttlc.net To: openbios@linkscape.net openbios@linkscape.net Date: Sunday, February 22, 1998 6:03 Subject: Re: [OpenBIOS] BIOS extensions are pointless (was: More comments...)
I think it might be better to say that re-implementing things like INT13 in protected-mode would be pointless. The few things that modern OSes actually do *use* the BIOS for are definate canidates for improvement and possible protected-mode reimplementation. However, "BIOS32" implies it may be protected-mode already. Anyone know more about this?
Yes, 32 bit protected mode. See the PCI BIOS spec.
While I do agree in theory, memory space limitations may force us to link the BIOS together before programming the flash. Which isn't really a big deal.
If you own all the sources, you can save yourself the complexity of linking. I don't even use a object linker, my assembler is fast enough to assemble the whole BIOS in about 60 ms.
Actually, to the list in general: Does anyone know exactly *where and how* geometry translation occurs? I've been thinking it must occur in the motherboard BIOS for onboard EIDE controllers. But we already know many OSes bypass the BIOS. I was assuming they were still talking to the EIDE controller through the BIOS, just via a different route. Is that correct? Or is geometry translation implemented in the EIDE controller chipset itself? Or something else?
There are multiple levels of geometry translation. It's a classic example of Winchester Mystery House software design. Read it and weep.
1. DOS translates logical block address into Cylinder / Head / Sector based on BIOS parameters. This is constrained by the 10 bit limit on cylinder and 6 bit on sector number (and sector numbers start at 1, which further mucks things up).
2. The BIOS translates this either into another CHS (the drive can only handle 4 bits for the head number, but 16 bits for the cylinder number, and 8 bits for the sector). Alternatively, the CHS value is converted into a logical block address.
3. The drive translates the CHS into a logical block number, then converts that into the real CHS values (which is not a straight division as the number of sectors per track varies).
The only right thing to do is put up with this nonsense during boot, then use LBA mode.
-------------------------------------------------------------------- Pascal Dornier pdornier@pcengines.com http://www.pcengines.com Your Spec + PC Engines = Custom Embedded PC Hardware --------------------------------------------------------------------
--- OpenBIOS -- http://www.linkscape.net/openbios/ openbios-request@linkscape.net Body: un/subscribe Problems? dcinege@psychosis.com