Sparc Openboot

SPARC systems has OpenBOOT.
OpenBoot is executed after immediately you turn on your system.
It aims testing,debugging and initializing all devices before booting. It is defined by IEEE standard 1275-1994
OpenBoot is machine-independent. Its firmware has such a generic name like Fcode which means "firmware code"
Device drivers are written in this machine-independent Fcode language.
Device drivers have plug-in feature. Plug-in device drivers provide any new device functionality, so you don't need changing PROM code. Each OpenBoot system PROM contains an FCode interpreter, so same device and driver can be used on different CPU instruction sets. It also includes a built-in FORTH dissambler and decompiler. You can write codes with NVEDIT in FORTH language and run these codes before system boot. Your any custom device aliases will be lost with power-cycle. To make aliases persistent, you can write nvramrc feature. To use it, you must set use-nvramrc variable to TRUE.NVRAMRC variables are stored in NVRAM and executed before system boots.In this way, you can make your aliases persistent.

You can think OBP as Sparc machine command-line BIOS.
It includes any facility in Intel servers.
In Intel machines, you need to press many keys to do different things. (F2 for BIOS, F12 for PXE, any other key to enter SCSI hardware Raid utility etc..) OBP is an open-standart central mechanism including these all facilities.

You can configure if OS boots automatically or not with auto-boot? variable.
You can boot the machine from any device with arguments of boot command.
You can make hardware raid device with commands like create-raid0-volume of create-raid1-volume.
Any other commands can appear regarding new functionalities with new Fcodes on different hardwares.
You can get help about the commands with help command or sifting command.
You can change some OBP variables inside Solaris OS with command EEPROM.
Also nvramrc usage inside Solaris OS can also be used to create new aliases at OBP automatically on next power-cycle.

probe-scsi-all is a good command to scan all SCSI devices.
But probe commands are risky because system may hung if there exists a problem at probing phase. ( if system hungs, you may need to power cycle it) Instead of power cycling at a probe problem, you can follow below safe procedure before probing

- setenv auto-boot? false ( set auto-boot to false )
- reset-all ( reset system to clear all buffers and registers)
- display all registers and confirm that values are all ZERO with the command ".registers"
- now you can safely run "probe-scsi-all"

 

* Please feel free to communicate by bulent.yucesoy@gmail.com