OpenFirmware settings on running system

Ross Gohlke ross at grinz.com
Fri Sep 25 13:07:03 UTC 2009


It's time for my annual attempt at a working SMP Xserve.
(http://lists.freebsd.org/pipermail/freebsd-ppc/2008-November/003362.html)

So far so good:
% dmesg
...
FreeBSD 8.0-BETA2 #0: Sun Sep 20 19:58:58 CDT 2009
     root at rorty:/usr/obj/usr/src/sys/GENERIC_TUNED
cpu0: Motorola PowerPC 7455 revision 2.1, 1000.06 MHz
cpu0: HID0 8450c0bc<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,BTIC,LRSTK,FOLD,BHT>
real memory  = 2135805952 (2036 MB)
avail memory = 2068119552 (1972 MB)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
cpu0: dev=ff87f908 (BSP)
cpu1: dev=ff880bc8
...

I have a boot-ready mirror on the second drive.
I would like to be able to change Open Firmware's boot-device setting 
while the system is running.

% nvram -p
nvram: /dev/powermac_nvram: No such file or directory

I do have a custom kernel, but powermac_nvram is defined in GENERIC, and 
I did not override it. Here are my kernel configurations.

## /usr/src/sys/powerpc/conf/GENERIC_TUNED
include GENERIC

ident   GENERIC_TUNED

include GENERIC_STRIPPED
include NOTES_STRIPPED
include PF

maxusers        256

options         SMP                     # Symmetric MultiProcessor Kernel
options         EXT2FS                  # ext2/3fs

## /usr/src/sys/powerpc/conf/GENERIC (unedited)
...
device          powermac_nvram  # Open Firmware configuration NVRAM
...

## /usr/src/sys/powerpc/conf/GENERIC_STRIPPED (only contains overrides 
of GENERIC)
nomakeoptions   DEBUG           #Build kernel with gdb(1) debug symbols

nooptions       KTRACE                  #ktrace(1) syscall trace support
nooptions       STACK                   #stack(9) support
nooptions       AUDIT                   # Security event auditing

nooptions       KDB                     #Enable the kernel debugger
nooptions       DDB                     #Support DDB
nooptions       INVARIANTS              #Enable calls of extra sanity 
checking
nooptions       INVARIANT_SUPPORT       #Extra sanity checks of internal 
structures, required by INVARIANTS
nooptions       WITNESS                 #Enable checks to detect 
deadlocks and cycles
nooptions       WITNESS_SKIPSPIN        #Don't run witness on spinlocks 
for speed


nodevice                atapifd         # ATAPI floppy drives
nodevice                atapist         # ATAPI tape drives

nodevice                sa              # Sequential Access (tape etc)

nodevice                dc              # DEC/Intel 21143 and various 
workalikes
nodevice                fxp             # Intel EtherExpress PRO/100B 
(82557, 82558)

nodevice                ulpt            # Printer
nodevice                urio            # Diamond Rio 500 MP3 player

nodevice          aue             # ADMtek USB Ethernet
nodevice          axe             # ASIX Electronics USB Ethernet
nodevice          cdce            # Generic USB over Ethernet
nodevice          cue             # CATC USB Ethernet
nodevice          kue             # Kawasaki LSI USB Ethernet
nomakeoptions   DEBUG           #Build kernel with gdb(1) debug symbols

nooptions       KTRACE                  #ktrace(1) syscall trace support
nooptions       STACK                   #stack(9) support
nooptions       AUDIT                   # Security event auditing

nooptions       KDB                     #Enable the kernel debugger
nooptions       DDB                     #Support DDB
nooptions       INVARIANTS              #Enable calls of extra sanity 
checking
nooptions       INVARIANT_SUPPORT       #Extra sanity checks of internal 
structures, required by INVARIANTS
nooptions       WITNESS                 #Enable checks to detect 
deadlocks and cycles
nooptions       WITNESS_SKIPSPIN        #Don't run witness on spinlocks 
for speed


nodevice                atapifd         # ATAPI floppy drives
nodevice                atapist         # ATAPI tape drives

nodevice                sa              # Sequential Access (tape etc)

nodevice                dc              # DEC/Intel 21143 and various 
workalikes
nodevice                fxp             # Intel EtherExpress PRO/100B 
(82557, 82558)

nodevice                ulpt            # Printer
nodevice                urio            # Diamond Rio 500 MP3 player

nodevice          aue             # ADMtek USB Ethernet
nodevice          axe             # ASIX Electronics USB Ethernet
nodevice          cdce            # Generic USB over Ethernet
nodevice          cue             # CATC USB Ethernet
nodevice          kue             # Kawasaki LSI USB Ethernet

## /usr/src/sys/powerpc/conf/NOTES_STRIPPED
nodevice        fdc
nodevice        ppc
nodevice        splash
# when splash works enable *_saver
nodevice        blank_saver
nodevice        daemon_saver
nodevice        dragon_saver
nodevice        fade_saver
nodevice        fire_saver
nodevice        green_saver
nodevice        logo_saver
nodevice        rain_saver
nodevice        snake_saver
nodevice        star_saver
nodevice        warp_saver
nodevice        daemon_saver
nodevice        star_saver
nodevice        snake_saver
# isa
nodevice        pcii
nodevice        tnt4882
# sound
nodevice        snd_cmi
# wants gdb_cur
nooption        PPC_DEBUG
nooption        PPC_PROBE_CHIPSET
nooption        SC_NO_MODE_CHANGE
nooption        UKBD_DFLT_KEYMAP

## /usr/src/sys/powerpc/conf/PF
device pf
device pflog
device pfsync
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
#options        ALTQ_NOPCC      # Required for SMP build

How can I edit OF boot-device setting while running?

Great work! The system is running smooth and fast right now, though not 
doing much... yet.

Thanks,
Ross Gohlke


More information about the freebsd-ppc mailing list