HenryCase wrote:
I thought the BIOS would give us some clues about how the drivers worked, didn't realise the HAL (HAL = Hardware Abstraction Layer, right?) was purely run through software.
Hans, can you explain how the A1 version of OS4 boots (from your understanding of the matter)? I have never seen an A1 booting so my knowledge is limited. Does the system perform a POST?
UBoot looks a lot like a PC bios. It has an x86 emulator so that it can use the VGA-bios to display text/menus. After power-on tests it searches for a hard-drive with a Second-Level Booter (SLB). You can configure UBoot to boot via other methods too, e.g., via TFTP. The second-level booter scans the hard-drive for a partition containing Amiga OS4, and for Linux boot directories containing a boot.conf (or is that a1boot.conf? I can't remember). The user can select whatever configuration he/she wishes to boot. If OS4 is selected, the SLB loads the kickstart modules into RAM and starts ExecSG and UBoot drops out of the picture. The kickstart modules must include all the drivers for the essential hardware components (i.e., the IDE drivers, VGA drivers, northbridge, etc.). Holding down both mouse buttons at this point brings up the Amiga Boot menu that people are used to from Amiga OS 2.0 and up.
This is my basic understanding of the boot process on my A1. Note that I've never seen any code, nor tried to analyse the process in any detail. I think that loading the kickstart into memory would be the easiest thing to do if you were porting OS4, and the OS4 developers have said that different BIOSes are fairly trivial to adapt to. The HAL, on the other hand, must be adapted to whatever particular PowerPC variant is being used.
Hans