home | list info | list archive | date index | thread index

Re: [Bulk] Re: [OCLUG-Tech] Harddisk location on a virgin machine ??

Hi Randy;

On Thu, 2007-10-25 at 19:10 -0400, Randy MacLeod wrote:
> On 10/25/07, William Case <billlinux [ at ] rogers [ dot ] com> wrote:
> > Hi;
> >
> > I am trying to figure out how BIOS first gets the address and
> > specifications (whatever they may be exactly) on a new machine?
> ...
> > I think hints or sites would be sufficient to trace down the full
> > answer.
> 
> Have you looked at the linuxbios source?
> http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv2
> 
> (I haven't...)

Yes, I have looked at documents about the LinuxBIOS project.  It is a
fascinating project, with lots of innovation, the main one seeming to be
using cache L1 instead of RAM to shadow the contents of BIOS.

That particular site is an svn trunk site.  My knowledge of svn is
usable but rudimentary.  Even so, I couldn't seen anything in the source
that seemed to respond to my question.  But that could be just me.

However, that seems to miss the point of my question.

While I let the CPU hardware/software interface gestate, I have started
to write up "Getting Started" i.e. what happens when you first fire-up a
desktop computer.  I have about 30 - 40 pages of saved comments and
descriptions including the analysis of the 16 bit binaries (bit by bit)
that are in ROM or shadowed in RAM.  As I started to write, I was forced
to ask myself how did they get there?  

I won't give you chapter and verse other than to say at the very
beginning, before the machine can go to the MBR to follow the path to
the boot loader, something i.e. a high/low voltage, in BIOS ROM that
makes up an initial 16 bit address for the SCSI bus must tell the CPU
where the bus is and where (i.e. open the electronic path) the harddisk
is. In doing so BIOS does it in such a way that the address can be
translated as hd0,0, for example, by GRUB.  GRUB uses that base address
as the start point in gathering initial hardware data to find /boot and
the initrd.  

That address has been copied to RAM (in most cases) so that it can be
found by GRUB.  GRUB, on installation, adds the harddisk address to the
MBR and adds stage 1.5 at the first position past the MBR to the hard
disk.

Even if I have things slightly out of order in the above description
(getting it straight after all is the purpose of doing a writeup for
myself) in terms of hardware/electronics, where and how on my current
machine does it all start? How does BIOS initially get the harddisk
address?

Much of the booting process is necessarily iterative, but even an
iterative process starts somewhere.  That's why I asked about a virgin
machine or a brand new harddisk.

Defensively, I have searched every lead I can find.  No matter how
detailed of an answer I have found so far, for this crucial question,
every answer goes anthropomorphic.  I am sure I am just asking in the
wrong place or using the wrong search criteria.  I am looking for the
type of an answer that P&H might have written.

Sorry Randy; I started out to write a short reply.

-- 
Regards Bill