prom(1M)
prom - PROM monitor
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME prom - PROM monitor DESCRIPTION The PROM monitor is a program that resides in permanently programmed read-only memory, which controls the startup of the system. The PROM is started whenever the system is first powered on, reset with the reset button, or shutdown by the administrator. The PROM contains features that vary from system to system. Description of various commands, options, and interfaces below may not apply to the PROM in your system and may vary between systems. Furthermore, because PROMs are not normally changed after the manufacture of the system, newly added features are not present in older systems. Systems such as the Indigo R4000, Indigo2, Indy, O2, Onyx, and CHALLENGE contain an ARCS PROM. Machines that contain an MIPS R8000 or R10000 such as the POWER CHALLENGE, POWER Onyx, POWER Indigo2, Indigo2 10000, and OCTANE use a 64-bit version of the ARCS PROM. The ARCS PROM offers the same functionality as previous PROMs, but in some cases with a different interface. Refer to the ARCS PROM section below for details. When the system is first powered on, the PROM runs a series of tests on the core components of the system. It then performs certain hardware initialization functions such as starting up SCSI hard disks, initializing graphics hardware and clearing memory. Upon successful completion of these tasks, the PROM indirectly starts the operating system by invoking a bootstrap loader program called sash, which in turn reads the IRIX kernel from disk and transfers control to it. Menu Commands By default, the PROM attempts to boot the operating system kernel when the system is powered on or reset. Before doing so, however, the opportunity to press the <Escape> key is given. If the <Escape> key is pressed within approximately ten seconds, the PROM displays a menu of alternate boot up options. These other choices allow various types of system maintenance to be performed: 1. Start System This option causes the system to boot in the default way. It is the same as if the system had been allowed to boot on its own. 2. Install System Software This option is used when system software needs to be installed or upgraded. The PROM first attempts to find a tape drive on the system and if one is found, it prompts the user to insert the installation tape in it. If a tape device is not found, then installation is expected to take place by Ethernet. In this case, the PROM prompts the user for the name of the system that will be used as the server. Systems with an ARCS PROM uses a menu to select the installation device. See ARCS PROM section below for details. 3. Run Diagnostics This option invokes the extended hardware diagnostic program, which performs a thorough test of the CPU board and any graphics boards present. It reports a summary. 4. Recover System This option can be used to perform special system administration tasks such as restoring a system disk from backup tapes. It follows a sequence similar to installing system software, but instead of starting the installation program, it invokes an interactive restoration tool. 5. Enter Command Monitor Additional functions can be performed from an interactive command monitor. This option puts the PROM into a manual mode of operation. 6. Select Keyboard Layout Some systems display a sixth option when the console is on the graphics display which allows the keyboard map to be interactively selected for SGI supported international keyboards. Manual Mode The PROM command monitor allows the user to customize certain features of the boot process for one-time only needs or longer term changes. The command monitor has some features that are similar to an IRIX shell such as command line options and environment variables. Some of the environment variables used in the PROM are stored in nonvolatile RAM, which means that their values are preserved even after the power to the system is turned off. The command monitor has a different method of specifying disks and files than is used under IRIX. A pathname is formed by prefixing the filename with a device name as shown: devicename(controller,unit,partition)filename Valid device names include: tpsc SCSI tape drive dksc SCSI disk drive bootp network by BOOTP and TFTP protocols (ethernet only) The controller designates which hardware controller to use if multiple controllers for the same type of device exist. Controllers are numbered starting at zero. The unit designates which drive to use when a single controller is used with multiple drives. When used with a SCSI device, the unit number is the same as the SCSI target number for the drive. The partition designates which disk partition is to be used. Partitions are numbered 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f. The controller, unit, and partion all default to zero. The devices supported by the PROM varies from system to system. Manual Mode Commands auto Attempts to boot the system into normal operation. This is the equivalent of the Start System menu command. boot [-f] [-n] pathname Starts an arbitrary standalone program or kernel as specified by its arguments. The -f option suppresses the invocation of the bootstrap loader program. The -n option causes the named program to be loaded, but not started. eaddr Prints the Ethernet address of the built-in Ethernet controller. This address is set at the factory and cannot be changed. date [mmddhhmm[ccyy|yy][.ss]] Prints the date or sets the date when given an argument. The PROM does not understand time zones, so times should be given relative to GMT. exit Exits manual mode and returns to the PROM menu. help Displays a short summary of the commands available in manual mode. init Causes a partial restart of the PROM. This command can be used to change the default console immediately. See the console environment variable. hinv Lists the hardware present in the system. This list includes any disk or tape drives, memory, and graphics options. It lists only those devices known to the PROM and may not include all optional boards. ls device List files contained on the device specified. This can be used to examine devices whose layout is known by the PROM such as the disk volume header. It cannot be used to list directories on disk partitions containing IRIX filesystems. off Turns off the power. Supported only on a subset of systems with software power control. passwd Set the PROM password. The PROM password can be set to restrict operation of certain PROM modes. With a password set, any attempt to do anything other than a standard system boot requires that the password be reentered. The password is remembered after the system is powered off. If the password is forgotten, some systems allow the superuser to reset it while running IRIX. Use the nvram command to set the passwd_key variable to a null string (nvram passwd_key ""). Other systems also have a jumper on the system board that can be removed to disable the PROM password. In addition some systems force the console environment variable to g while the jumper is removed. This jumper should only be removed temporarily in order to reset the password or fix the console environment variable. Indy, Indigo2 and OCTANE have this feature. printenv List the current state of the PROM environment variables. Some of the variables listed retain their value after the system is powered off. resetenv Set all of the PROM nonvolatile environment variables to their factory defaults. This does not affect the PROM password. resetpw Remove the PROM password. With no PROM password set, all commands and menu options function without restriction. setenv [-p] variable value Set the specified environment variable to a particular value. Environment variables that are stored in nonvolatile RAM are changed there as well. The -p option specifies that this variable should be saved as a persistent variable by means of adding the variable to nonvolatile RAM. This is particularly useful for setting frequently used options when starting up the system. Note that a fixed nonvolatile RAM variable is not superseded by this option, but the command behaves as if the -p flag is not present. Currently this option is available only on some system types. Among them are the Indy, the O2, OCTANE and the Origin series. single Start the system in single user mode. The system is booted as in the auto command described above, except that it enters initstate s instead of initstate 2. See init(1M) for more information on initialization states. unsetenv variable Disassociates any value with the named environment variable. version Prints a message containing information about the PROM. In addition to the commands above, a pathname can be entered directly, which the PROM attempts to load and execute. PROM Environment Variables netaddr Used when booting or installing software from a remote system by Ethernet. This variable should be set to contain the Internet address of the system. It is stored in nonvolatile RAM. dbaud Diagnostic baud rate. It can be used to specify a baud rate other than the default when a terminal connected to serial port #1 is to be used as the console. This variable is stored in nonvolatile RAM. bootfile This variable controls two aspects of the automatic boot up process. First, it names the standalone loader that is used as an intermediary when booting from disk. Second, the device portion of the filename is used to determine the default boot disk. The PROM assumes that the disk specified as part of the standalone loader pathname is the disk where the IRIX root filesystem exists. Furthermore, during software installation, the PROM uses that disk's swap partition for the miniroot. The actual partitions assumed by the PROM to contain the root filesystem and swap area are determined by reading the volume header. See vh(7M) for more information. This variable is stored in nonvolatile RAM. bootmode The default mode of operation after you turn on power to the system is determined by the bootmode variable. If the bootmode is set to c, then the system is automatically booted whenever it is reset or power is turned on to the system. If the bootmode is set to m, the PROM displays the menu and waits for a command instead. Setting bootmode to d has the same affect as m, with the addition of more verbose power-on diagnostics. This variable is stored in nonvolatile RAM. boottune Selects among the available boot tunes. It is specified as a small integer such as 1, which is the default tune. A setting of 0 selects a random tune. Currently only the POWER Indigo2 and the Indigo2 10000 support this variable. This variable is stored in nonvolatile RAM. autopower On systems with software power control, a setting of y allows the system to automatically power back on after an AC power failure. The default setting of n requires the power switch to be pressed to restart the system. This variable is stored in nonvolatile RAM. console The system console can be set with the console variable. If console is set to g or G, the console is assumed to be the graphics display. On some systems with multiple graphics adapters, setting console to g0 (identical to g), g1, or g2 can be used to select alternate graphics displays. If console is set to d, the console is assumed to be a terminal connected to the first serial port. In addition, some systems also accept d2 for a terminal connected to second serial port. Lastly, this can be overridden on some systems by removing the password jumper and forcing the console to g, which is useful for for recovering from setting console to d when a terminal is not available. This variable is stored in nonvolatile RAM. diskless If set to 1, the kernel assumes that the system is to be started up as a diskless node. This variable is stored in nonvolatile RAM. monitor Overrides the default monitor setting when an unrecognized monitor is attached to an Indy system. Specifying h or H indicates the attached monitor supports high resolution mode (1280x1024 @ 60Hz). Otherwise the default resolution is low resolution (1024x768 @ 60Hz). This variable is usable only on an Indy system and is stored in nonvolatile RAM. nogfxkbd If set to 1, the system does not require the keyboard to be plugged in. By default, if the console is the graphics display and the keyboard is not plugged in or is otherwise unresponsive to commands, it is assumed to be broken. The system switches to the serial terminal console and waits for a command. This variable is stored in nonvolatile RAM. notape If set to 1, the PROM assumes that the Ethernet is to be used for software installation or system recovery even if a tape drive is present on the system. By default, if the PROM sees a tape drive in the hardware inventory, it assumes that it will be used for software installation; setting notape allows that assumption to be overruled. volume Sets the speaker volume during boot up. This controls the volume of the startup, shutdown, and bad graphics tunes generated on systems with integral audio hardware. This variable is stored in nonvolatile RAM. pagecolor Sets the background color of the textport set with a six character string of hex RGB values. This variable is stored in nonvolatile RAM. path The path variable is used with some commands to provide a default device name. It is derived from the bootfile variable. prompoweroff If set to y, the IRIX operating system returns to the PROM to do the actual powering off of the system. Powering off the system by the PROM is preceded by the playing of the "shutdown" tune that is normally played when returning to the PROM monitor via the shutdown or halt commands. This variable is available only on Indy systems and must be set with the command setenv -p prompoweroff y command to retain the setting after power is turned off. rebound If set to y, the system attempts to automatically reboot in the event of a kernel panic overriding the value of the reboot_on_panic systune parameter. This variable is stored in nonvolatile RAM. sgilogo If set to y, the SGI logo and other product information is shown on systems that support the standalone GUI. This variable is stored in nonvolatile RAM. ef0mode If the user wants to disable autonegotiation and select prom ethernet mode manually, this variable needs to be set to one of {10, H10, F10, 100, H100, F100}, where H means half duplex, F means full duplex, and numbers mean either 10Mb/sec or 100Mb/sec. This variable exists for OCTANE prom only. ARCS PROM Machines with the ARCS PROM behave similar to what is described above. Changes were made to support the Advanced Computing Environment's (ACE) Advanced Risc Computing Standard (ARCS), provide a graphical user interface, and clean up various loopholes in older PROMs. In many cases efforts were made to maintain old syntax and conventions. The ARCS document describes system requirements, which includes minimum system function, procedure entry points, environment variables, hardware inventory, and other system conventions. Programmatic interfaces and other hardware requirements are outside the scope of this reference page. ARCS pathnames are tied directly to the hardware inventory, which is stored in a tree that represents the system's device architecture. It is rooted with a system entry and grows to peripheral devices such as a disk drive. ARCS pathnames are written as a series of type(unit) components that parallel the inventory tree. Old-style pathnames are automatically converted to new-style pathnames, so the old names can still be used. The PROM matches the first device described by the pathname, so full pathnames are not always required. The -p option to hinv prints the pathnames to all user accessible devices. Some examples of common pathnames are: scsi(0)disk(1)partition(1) dksc(0,1,1) disk(1)part(1) same as above scsi(0)cdrom(5)partition(7) dksc(0,5,7) network(0)bootp()host:file bootp()host:file serial(0) first serial port keyboard() graphics keyboard video() graphics display On Origin systems, one more type of device-naming is supported. The ARCS device naming scheme has been extended to allow the use of full hardware graph names to specify devices not residing in the master module. Refer to the hwgraph(4) manual page for more information about device naming. For example, in the kernel, the path /hw/module/1/slot/io1/baseio/pci/1/scsi_ctlr/0/ target/1/lun/0/disk/partition/0 refers to partition 0 of a disk in module 1, slot io1, controller 0 scsi target id of 1, scsi lun 0. The old device naming scheme: devicename(controller,unit,partition)filename has been retained, but cannot reference devices outside the master BASEIO board. The master BASEIO board is the board that has the system console connected to it. The old device naming scheme is not implemented for non-disk devices like tty. For example: tty(0), serial(0) are not implemented in the Origin BASEIO prom. ARCS defines environment variables that provide the same function as in older PROMs, but with different names and values: ConsoleIn/ConsoleOut These two variables are set at system startup automatically from the console variable. They are maintained for ARCS compatibility only. OSLoadPartition The device partition where the core operating system is found. For IRIX, this variable is used as the root partition when the root variable is unused or not available and the device configured in the system(4) file with the ROOTDEV directive is not available. This variable is stored in nonvolatile RAM, but is normally left unset, which allows the PROM to automatically configure it at system power-on. OSLoader The operating system loader. For IRIX, this is sash. This variable is stored in nonvolatile RAM, but is normally left unset, which allows the PROM to automatically configure it at system power-on. SystemPartition The device where the operating system loader is found. This variable is stored in nonvolatile RAM, but is normally left unset, which allows the PROM to automatically configure it at system power-on. OSLoadFilename The filename of the operating system kernel. For IRIX this is /unix. This variable is stored in nonvolatile RAM, but is normally left unset, which allows the PROM to automatically configure it at system power-on. OSLoadOptions The contents of this variable are appended to the boot command constructed when autobooting the system. This variable is stored in nonvolatile RAM. AutoLoad Controls if the system boots automatically on reset/power cycle. Can be set to Yes or No. Previously this function was controlled by setting bootmode to c or m. This variable is stored in nonvolatile RAM. To try and improve the looks and usability of the PROM, the ARCS PROM uses a graphical interface when console=g. In all cases the keyboard can be used instead of the mouse, and in most cases the familiar keystrokes from previous PROMs work. For example, the traditional five item menu consists of a list of buttons containing one icon each. To make a selection, either click any mouse button with the button, or press the corresponding 1 through 5 key. The only major user interface changes are for Install Software and Recover System (menu items 2 and 4). The interface allows interactive selection of a device type and then selection among devices of that type. This makes it easier than previous PROMS to install from local drives or remote directories without hacks like notape and tapedevice. The set of commands available from the command monitor is relatively unchanged: hinv By default hinv prints a formatted abbreviated list similar to the old-style PROM. A -t option has been added to print the ARCS configuration tree directly. A secondary option -p, valid only with -t, prints the corresponding ARCS pathnames for peripheral devices. There has also been some changes/additions to the SGI-defined environment variables: diskless This controls if the system is run as a diskless system. Since some of the other environment variables are changed for ARCS compliance, diskless setup is slightly different. The environment should be set as follows. diskless=1 SystemPartition=bootp()host:/path OSLoader=kernelname keybd Normally this variable is left unset and the system automatically configures the keyboard to use its native key map. To override the default, keybd should be set to a three to five character string. The following strings are recognized, depending on the PROM revision: USA, DEU, FRA, ITA, DNK, ESP, CHE-D, SWE, FIN, GBR, BEL, NOR, PRT, CHE-F or US, DE, FR, IT, DK, ES, de_CH, SE, FI, GB, BE, NO, PT, fr_CH on systems with the keyboard layout selector. On newer systems, JP is also acceptable. Alternatively you can select between swiss french and swiss german by setting keybd to d or D for the german map. On systems with PC keyboards, a string not matching one of the above is passed to the X server and used as the name of the keyboard map to load. This variable is stored in nonvolatile RAM. diagmode If set to v, power-on diagnostics are verbose. In addition, more diagnostics are run. This is similar to bootmode=d, however it does not affect the behavior of AutoLoad. This variable is stored in nonvolatile RAM. The ARCS standard specifies different error numbers than IRIX: ESUCCESS 0 E2BIG 1 EACCES 2 EAGAIN 3 EBADF 4 EBUSY 5 EFAULT 6 EINVAL 7 EIO 8 EISDIR 9 EMFILE 10 EMLINK 11 ENAMETOOLONG 12 ENODEV 13 ENOENT 14 ENOEXEC 15 ENOMEM 16 ENOSPC 17 ENOTDIR 18 ENOTTY 19 ENXIO 20 EROFS 21 EADDRNOTAVAIL 31 ETIMEDOUT 32 ECONNABORTED 33 ENOCONNECT 34 Examples To boot the disk formatter, fx(1M), from a local tape containing the installation tools: 1. Get into the command monitor by choosing option 5 from the menu. 2. Determine the type of CPU board in your system with the hinv command. The board type is listed as the letters IP followed by a number. Also, look for the item that lists the tape drive to determine the format of the device name. For instance, a SCSI tape addressed as device 7 might be listed as SCSI tape: tpsc(0,7) in which case the device is tpsc(0,7). 3. With the installation tools tape in the drive, boot fx as follows: boot -f tpsc(0,7)fx.IP6 where tpsc(0,7) is the device name and IP6 is the CPU board type. To change the system console from the graphics display to a terminal connected to serial port #1: 1. Get into the command monitor by choosing option 5 from the menu. 2. Change the console variable to d as follows: setenv console d 3. Reinitialize the PROM with the init command: init SEE ALSO bootp(1M), fx(1M), inst(1M), nvram(1M), tftpd(1M).