Open Firmware on the PowerPC - Entering and Interacting

The boot process begins with reading and execution of the builtin firmware. On the G4(powerpc architecture), this is called "Open Firmware", and on the PC(x86) architecture it is commonly referred to as the BIOS (Basic Input Output System).

This code is resonsible for testing the computers integrity on startup, initializing devices, and providing code for input/output functions that allow the Operating System proper to be found, loaded, and executed.

Open Firmware(OF) stores a number of setings in non-volatile battery backed storage(NVRAM) that can be used to configure the boot process. OF also has a built in 'monitor' that allows us to interact with it in order to display and modify these parameters with no other operating system loaded.

This monitor can be accessed by holding down a combination of four keys simultaneously during the boot process. To do this, reboot or reset the machine and hold down the Command, Option, 'O', and 'F' keys simultaneously. You need to hold these keys down when you hear the boot-chime until the Open Firmware prompt appears. The boot-chime can not always be heard however, depending on the state of the sound device. NOTE: The "command" key is the one with the apple and clover leaf symbols printed on it. The "option" key should be right next to it and has a funny two line symbol and "alt" printed on it, at least on this keyboard.

To see all settings, type "printenv" at the OF prompt.

-- BEGIN PASTE --

0 > printenv
-------------- Partition: common -------- Signature: 0x70 ---------------
little-endian?          false                false
real-mode?              false                false
auto-boot?              true                 true
diag-switch?            false                false
fcode-debug?            false                false
oem-banner?             false                false
oem-logo?               false                false
use-nvramrc?            false                false
use-generic?            false                false
default-mac-address?    false                false
real-base               -1                   -1
real-size               -1                   -1
load-base               0x800000             0x800000
virt-base               -1                   -1
virt-size               -1                   -1
pci-probe-mask          -1                   -1
screen-#columns         100                  100
screen-#rows            40                   40
selftest-#megs          0                    0
boot-device             enet:0,bootme,,,2    hd:,\\:tbxi
boot-file                                    
boot-screen                                  
console-screen                               
diag-device             enet                 enet
diag-file               ,diags               ,diags
input-device            keyboard             keyboard
output-device           screen               screen
input-device-1          scca                 scca
output-device-1         scca                 scca
mouse-device            mouse                mouse
oem-banner                                   
oem-logo                                     
nvramrc                                      
boot-command            mac-boot             mac-boot
default-client-ip                            
default-server-ip                            
default-gateway-ip      192.168.2.1          
default-subnet-mask                          
default-router-ip                            
boot-script                                  
aapl,pci                Use PRINT-AAPL,PCI to view 
ASVP                    30313037 333f3030 35363e33
medusa                  74727565
snakebitecpu0           70617373 6564
snakebitecpu1           70617373 6564
 ok

-- END PASTE --

The right hand column shows the default setting, while the left hand column shows the current settings as set up for use in the cluster.

Note in particular the 'boot-device', and the 'default-gateway-ip', settings. These are described in detail in bootsettings.html

[ We are able to tell Open Firmware what device to boot from. Most convenient for us it to boot from the ethernet device, thus allowing us to control the booting from a remote machine on the network. This remote machine will then become our cluster control server. ]

--