System Initialization (Sparc)

From OSDev Wiki
Jump to navigation Jump to search

At boot time, a SPARC system will load the OpenBoot firmware, which then initializes basic hardware (such as the framebuffer, serial ports, keyboard, and disks), tests system functioning, and, optionally, (if the auto-boot? option is set to true) loads a primary bootloader in some way. Otherwise, it gives the user an "ok" prompt, at which to type initialization commands or FORTH instructions.

In theory, one could load an operating system from any device they wish, regardless of whether the device is directly supported by OpenBoot (eg, by typing in FORTH words to stick the raw bytes of the operating system code in memory). In practice, however, an operating system is generally loaded from the hard disk, a floppy, or the network.

Hard disk

Typing "boot disk" or "b sd(0,3,0)" for older boot proms at the boot prompt loads a bootloader from the hard disk, starting with sector 1 (512 bytes from the beginning of the disk) and continuing for 15 more sectors (7.5 Kb), assuming that the disk has a proper Sun Disklabel on it. Alternatively, "load disk" loads the bootloader into memory but does not execute it.

CD/DVD

Typing "boot cdrom" or "b sd(0,6,0)" for older boot proms will load the boot loader from the system architecture specific partition of the cdrom. This allows different code to be executed on the various sun architectures sun-4 sun4c sun4m sun4d etc... In the case linux and bsd the partitions are all mapped to the same bootblock. The SILO bootloader documentation covers this in some detail.

Floppy

Somebody who has tried this, please fill this in. Theoretically, because disk-label provides the load command, it should work the same way, but who knows?

If you have a v2 prom a the prom type

boot floppy

or if you have a v0 prom

b fd()

BSD boot floppies work at least on v2 proms tested on Sparc Station 5 and 10 and supposedly work on v0 boot proms as well though initial testing showed it isn't as reliable. Also see the SILO page.

Network

Loading from the network uses RARP to configure an IP address. It then connects to the TFTP server on the machine that responded to the RARP request, and downloads a file whose name is the machine's IP address in hex (with ".SUN4C" or ".SUN4M" appended if it's a V7 or V8 SPARC, respectively). This is then used as the bootloader.


See Also

Articles

Links