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