Bill in Co. said:
So what is the process again? I'm still confused. Let's see what I am missing:
When you initially boot the computer, the *system* BIOS 1) enumerates devices, and 2) if it detects BIOS on the added in PCI
controller card, the CPU executes an INT 13H CALL instruction, which then tells it to go out and read a sector on the MBR of a
HD?
Not sure Bill, but I believe that the cards on board "BIOS" would have to
add the storage devices to the system BIOS data area which is then
accessed by int 13h. It may also modify the int 13h code in some way.
(Int 13h is not a hardware interrupt, but a software interrupt and can be
modified. "Drive managers/overlays" do this.)
The BIOS code may or may not use the int 13h disk services to access/load a
boot device. An example of that would be a network boot, which Paul brought
up, which uses a different software int.
When the system BIOS is done with all its initializations, enumerations, etc. ,
all the BIOS needs to worry about is loading the selected "boot" device into
memory and then jumping to that code. After that, it is up to that loaded
code to continue the boot process, however it wants to accomplish the task.
As far as how a PCI device interacts with the BIOS on boot up, I don't really
know the details, but one thing I am positive of is the fact that the boot code
in the Win MBR uses int 13h to load the volume boot sector. If a storage device,
(at that stage), can't be seen by int 13h, then it cannot boot using that standard
MBR code. (might not apply for the newer EFI specification). Again however,
that int 13h code can be modified. And so can the standard MBR boot code.