This chapter provides an overview of ROM Monitor concepts and operations. For instructions on how to perform various tasks in ROM Monitor (ROMMON) mode, see the other chapters in this book.
The ROM Monitor is a bootstrap program that initializes the CRS hardware and boots the Cisco IOS XR software when you power on or reload a router. A version of the ROM Monitor software exists on each card and is factory supplied. The ROM Monitor program provides an initial power-on environment for each card. If the Cisco IOS XR software is rebooted or unable to run, the corresponding card returns to the ROM Monitor mode.
When you connect a terminal to a card that is in the ROM Monitor mode, the ROM Monitor CLI prompt is displayed.
rommon B1>
The ROM Monitor software is known by many names. It is sometimes called ROMMON because of the CLI prompt in ROM Monitor mode. The ROM Monitor software is also called the boot software, boot image, or boot helper.
Although it is distributed with routers that use the Cisco IOS XR software, ROM Monitor is a separate program from the Cisco IOS XR software. During normal startup, the ROM Monitor initializes the cards, and then control passes to the Cisco IOS XR software. After the Cisco IOS XR software takes over, ROM Monitor is no longer in use.
A copy of the ROM Monitor software exists on each card. If a card fails to boot the Cisco IOS XR software, the ROM Monitor software takes control and places the card in ROM Monitor mode. Because a card in ROM Monitor mode is not running the Cisco IOS XR software, that card becomes unavailable for normal router operations.
The active Route Processor (RP) for the owner Secure Domain Router (SDR) is called the Designated Shelf Controller (DSC). This card performs system-wide functions, including the creation of additional non-owner SDRs. If the active DSC is placed in ROM Monitor mode, it is no longer running the Cisco IOS XR software. If a standby DSC is available, the standby RP resumes router operations. If a standby DSC is not available or is also placed in the ROM Monitor mode, then router operations stop.
In addition to the DSC, each SDR in the system contains at least one DSDRSC. The DSDRSCs provide configuration and administrative functions for a single SDR only. The DSC also serves as the DSDRSC for the owner SDR.
When the Designated Secure Domain Router Shelf Controller (DSDRSC) in an SDR is placed in ROM Monitor mode, the router operations are transferred to the standby DSDRSC (if available). If both the primary and standby DSDRSCs are in ROM Monitor mode, then the router operations cease because the Cisco IOS XR software is no longer running.
In most situations, you interact with the ROM Monitor mode only on the DSC (DSDRSC for the owner SDR). The DSC contains the administration configuration for the entire system and distributes the required software to all the other nodes in the router. All the tasks in this document describe ROM Monitor mode accessed through the DSC for the system.
Remember, the DSC is also the Active RP of rack 0 and DSDRSC for the owner SDR.
Two primary connections exist between ROM Monitor and the Cisco IOS XR software: the ROM Monitor environment variables and the configuration register.
The ROM Monitor environment variables define the location of the Cisco IOS XR software and describe how to load it. After ROM Monitor has initialized the card, it uses the environment variables to locate and load the Cisco IOS XR software. The common environment variables are BOOT, IP_ADDRESS, DEFAULT_GATEWAY, TFTP_FILE, TURBOBOOT and SUBNET_MASK.
The configuration register is a software setting that controls how a card starts up. One of the primary uses of the configuration register is to control whether the card starts in ROM Monitor mode or Administration EXEC mode. The configuration register is set in either ROM Monitor mode or Administration EXEC mode as needed. Typically, you set the configuration register using the Cisco IOS XR software prompt on the active RP when you need to use ROM Monitor mode. When the maintenance in ROM Monitor mode is complete, you change the configuration register so the card reboots with the Cisco IOS XR software.
When an RP is in ROM Monitor mode, you can access the ROM Monitor software only from a terminal connected directly to the console port of the card. Because the Cisco IOS XR software (EXEC mode) is not operating, the nonmanagement interfaces (such as POS interfaces) are not accessible. Basically, all Cisco IOS XR software resources are unavailable. The hardware is there, but no configuration exists to make use of the hardware.
Some people get confused when they start to use ROM Monitor mode. It is important to remember that ROM Monitor mode is a router mode, not a mode within the Cisco IOS XR software. It is best to remember that ROM Monitor software and the Cisco IOS XR software are two separate programs that run on the same router. At any given time, the router is running one of these programs, but it never runs both at the same time.
One area that can be confusing when using ROM Monitor and the Cisco IOS XR software is the area that defines the IP configuration for the Management Ethernet interface. Most router users get comfortable with configuring the Management Ethernet interface in the Cisco IOS XR software. When the router is in ROM Monitor mode, however, the router is not running the Cisco IOS XR software, so that Management Ethernet interface configuration is not available.
To access other devices, such as a TFTP server, while in ROM Monitor mode on the Cisco CRS, you must configure the ROM Monitor variables with IP access information.
The following sections describe two ways to enter ROM Monitor mode:
Before you place a DSC in ROM Monitor mode, verify that the system is in a steady state:
Prepare the DSC:
Anticipate substantial downtime, including the loss of packet forwarding on the system.
Verify the sanity of the configuration file system using the cfs check command in EXEC mode.
Verify that all changes to the active router configuration are saved with the commit command in any configuration mode.
Verify that all changes to the active software set are saved with the install commit command in Administration EXEC mode.
Verify that all install commit processes are complete with the show install committed command in Administration EXEC mode. This command displays the committed packages that become active during the next router boot. If any of the processes are not committed, use the install commit command in the Administration mode.
Verify that the other nodes in the system are in a steady state:
After you have verified that the system is in a stable state, you can enter ROM Monitor mode by setting the configuration register setting and entering the reload command, as described in the following steps:
In normal operating conditions, it should not be necessary to use ROM Monitor mode. If you do find it necessary to place a designated shelf controller (DSC) in ROM Monitor mode, make sure that the system is in a steady state and that you are prepared for the consequences of a system reload.
1. Verify the router is in a steady state.
2. Connect a terminal to the DSC console port and log in to the router.
4.
config-register 0x0
command,
exit command and
reload command
or
config-register 0x0 location
all command and
reload location all command.
The following example shows the redundancy roles of both RPs and shows that both are operating in IOS XR RUN state:
RP/0/RP0/CPU0:router#show redundancy Redundancy information for node 0/RP0/CPU0: ========================================== Node 0/RP0/CPU0 is in ACTIVE role Partner node (0/RP1/CPU0) is in STANDBY role Standby node in 0/RP1/CPU0 is ready Standby node in 0/RP1/CPU0 is NSR-ready Reload and boot info ---------------------- RP reloaded Mon May 17 21:51:57 2010: 2 weeks, 5 days, 6 hours, 20 minutes ago Active node booted Mon May 17 21:51:57 2010: 2 weeks, 5 days, 6 hours, 20 minutes ago Standby node boot Mon May 17 21:51:32 2010: 2 weeks, 5 days, 6 hours, 20 minutes ago Standby node last went not ready Mon May 17 22:03:03 2010: 2 weeks, 5 days, 6 hours, 9 minutes ago Standby node last went ready Mon May 17 22:03:03 2010: 2 weeks, 5 days, 6 hours, 9 minutes ago Standby node last went not NSR-ready Fri Jun 4 17:59:52 2010: 1 day, 10 hours, 12 minutes ago Standby node last went NSR-ready Fri Jun 4 18:00:28 2010: 1 day, 10 hours, 11 minutes ago There have been 0 switch-overs since reload Active node reload "Cause: Lost DSC" Standby node reload "Cause: User reload request" Sun Jun 6 04:14:44.888 DST Node Type PLIM State Config State --------------------------------------------------------------------------------------- 0/6/CPU0 MSC Jacket Card IOS XR RUN PWR,NSHUT,MON 0/6/0 MSC(SPA) 4XOC3-POS OK PWR,NSHUT,MON 0/6/1 MSC(SPA) 1x10GE OK PWR,NSHUT,MON 0/6/4 MSC(SPA) 8XOC3/OC12-POS OK PWR,NSHUT,MON 0/6/5 MSC(SPA) 8X1GE OK PWR,NSHUT,MON 0/RP0/CPU0 RP(Active) N/A IOS XR RUN PWR,NSHUT,MON 0/RP1/CPU0 RP(Standby) N/A IOS XR RUN PWR,NSHUT,MON
The following example shows how to place the RP0 in the ROM Monitor mode:
RP/0/RP0/CPU0:router# admin RP/0/RP0/CPU0:router(admin)# config-register 0x0 RP/0/RP0/CPU0:router(admin)# reload Proceed with reload? [confirm] System Bootstrap, Version 12.0(20040624:164256) [assafb-misc1 1.14dev(0.91)] DEV ELOPMENT SOFTWARE Copyright (c) 1994-2004 by cisco Systems, Inc. DRAM DIMM Slot 1: 512M found, Slot 2: Empty MPC7450 platform with 524288 Kbytes of main memory rommon 1 > Configuring MPPs ... Configuring PCMCIA slots ... System Bootstrap, Version 2.06 , Copyright (c) 1994-2009 by Cisco Systems, Inc. Acquiring backplane mastership .... successful Preparing for fan initialization............. ready Setting fan speed to 4000 RPMs successful Reading backplane EEPROM ... Released backplane mastership ... Board type is 0x100002 (1048578) Switch 0 initialized Backplane FE port Up... Enabling Enabling watchdog G4(7457-NonSMP-MV64360 Rev 3) platform with 4096 MB of main memory rommon B1 >
To force the DSC to stop loading and enter ROM Monitor mode, press Ctrl-C when you see the following message:
MBI validation sending request. HIT Ctrl-C to abort TYPE 'Send Break'to abort
This message usually appears during the first 20 seconds of system startup. Press the Ctrl-C key combination immediately. It may be necessary to press the Ctrl-C keys repeatedly during this time to ensure that the initialization process stops and the system enters ROM Monitor mode. This ends your Telnet session to the console or auxiliary port.
This operation can be performed only from a terminal directly connected to the DSC console port. For more information, see the “Connecting and Communicating with the Router” section in Cisco IOS XR Getting Started Guide for the Cisco CRS Router.
![]() Note | When the DSC is placed in ROMMON, it switches over to the standby DSC, which can then also be placed in ROMMON. Repeat this process for both RP cards. |
The commands in the ROM Monitor mode are different from those available in the Cisco IOS XR software. You can run ROM Monitor commands only while in ROM Monitor mode, and you cannot run Cisco IOS XR software commands. This section includes the following topics:
The table below summarizes the commands commonly used in ROM Monitor. For specific instructions on using these commands, refer to the relevant procedure in this document.
Manually boots the Cisco IOS XR software with a temporary alternative administration configuration file. |
|||
Manually boots the Cisco IOS XR software with an alternative SDR configuration file. |
|||
Changes the config-register setting.
|
|||
Displays the available local storage devices (for example, disk0: and disk1:). |
|||
Displays the currently set ROM Monitor environmental settings. |
|||
The table below describes the available help commands for ROM Monitor mode.
![]() Note | Commands are case sensitive. You can halt any command by pressing Ctrl-C. |
The following example shows what appears when you enter the ? command on a Cisco CRS:
rommon B5 > ? addrloop walk 1 thru range of addresses alias set and display aliases command alter alter locations in memory bcm_init Initialise Broadcom switch for ROMMON getPciReg Get BCM 5600 PCI memory mapped Reg. setPciReg Set BCM 5600 PCI Memory mapped Reg. getSocReg Get BCM 5600 On-chip reg value setSocReg Set BCM 5600 On-chip reg value getMiiReg Get BCM 5600 FE PHY Regs. setMiiReg Set BCM 5600 FE PHY Regs. bcm_links_update Update links status of BCm 5600 show_bcm_regs Show all Broadcom switch registers show_bcm_raw Show Broadcom Switches port info berrscan scan range of addresses for bus errors boot boot up an external process break set/show/clear the breakpoint call call a subroutine at address with converted hex args cat concatenate files checksum checksum a block of memory clrerr clear the error log compare compare two blocks of memory dcompare compare two blocks of memory accessed as 8 bytes confreg configuration register utility cont continue executing a downloaded image context display the context of a loaded image cpu cpu / system information and control dev list the device table dir list files in file system dis disassemble instruction stream dnld serial download a program module dump display a block of memory ddump display a block of memory as double words echo monitor echo command errlog display the error log fdump file dump utility fill fill a block of memory dfill fill a block of memory with double words dpar test the CPU bus data parity flash flash services command frame print out a selected stack frame getPci0ConfigReg print out PCI0 config space reg getPci1ConfigReg print out PCI1 config space reg setPci0ConfigReg set PCI0 config space reg setPci1ConfigReg set PCI1 config space reg help monitor builtin command help history monitor command history hang_i2c_bus cause a hang on the I2C bus test_unhang_i2c_bus cause unhang sequence to be generated on the I2C bus ifill fill a block of memory w/incrementing pattern initfs re-initialize the file system access structures jump call a subroutine at address with argc/argv launch launch a downloaded image memdebug write/read/verify scope loop meminfo main memory information memloop write or read scope loop memtest simple memory test move move a block of memory pingdsc validate MBI and rack number w/ the dSC prt6729 print CLPD6729 internal registers dmove move a block of memory accessed as 8 bytes dumpspd Dump the Serial Presents Detect info from the SDRAM DIMMs dumpplaneeeprom Dump the contents of the back plane dumpphys Dumps registers of all ethernet phys readi2c read an I2c device repeat repeat a monitor command reset system reset resetd dump core and reset a card resetsp reset an sp card scanpci0 scan for devices on PCI bus 0 scanpci1 scan for devices on PCI bus 1 set display the monitor variables setprocmask Change the mask of CPUs passed to the OS in EMT_GET_SMP_MASK setromA Set rommon to force it to rommon A upon next reset showerr show crash error message smptest Test the other CPU on an SMP board speed timed performance loop stack produce a stack trace sync write monitor environment to NVRAM tcal timer calibration test tftpdnld tftpdnld no longer available, use boot tscope timer scope loop unalias unset an alias unset unset a monitor variable version display rommon software, board, version watchdog test watchdog rebooting of the box writei2c Write to an I2C device
The following example shows the parameters for the dir (directory) command:
rommon B5> dir -? bad device name usage: dir <device>
![]() Note | Fat 32 devices are not readable from ppc ROMMON. |
You can change the prompt in ROM Monitor mode by using the PS1= command as shown in the following example:
rommon B5> PS1= "CRS_rp1_rommon!>”
Changing the prompt is useful if you are working with multiple routers in ROM Monitor at the same time. This example specifies that the prompt is CRS_rp1_rommon followed by the line number.
To display the current configuration register setting, enter the confreg command without parameters as follows:
rommon B5> confreg Configuration Summary (Virtual Configuration Register: 0x0) enabled are: console baud: 9600 boot: the ROM Monitor do you wish to change the configuration? y/n [n]:
The configuration register setting is labeled Virtual Configuration Register. Enter the no command to avoid changing the configuration register setting.
The ROM Monitor environment variables define the attributes of the ROM Monitor, such as the IP address for an RP control Ethernet port or the location of the Cisco IOS XR software and describe how to load it. Environmental variables are entered like commands and are always followed by the equal sign (=). Environment variable settings are entered in capital letters, followed by a definition. For example:
TURBOBOOT=on,disk0,format
Under normal operating conditions, you do not need to modify these variables. They are cleared or set only when you need to make changes to the way ROM Monitor operates.
The table below shows the main ROM Monitor environmental variables. For instructions on how to use these variables, see the relevant instructions in this document.
Sets the IP address for the Management Ethernet interface on the DSC. (On the Cisco CRS RP only.) |
|
Sets the subnet mask for the Management Ethernet interface on the DSC. (On the Cisco CRS RP only.) |
|
Sets the default gateway that serves the DSC. (On the Cisco CRS RP only.) |
|
Sets the IP address of the TFTP server where a bootable software image is located. |
|
Sets the default gateway that serves the DSC. (On the Cisco CRS RP only.) |
|
Completely replaces the existing software when the router is reloaded. |
|
Sets the directory and filename of a a bootable software image. |
|
Completely replaces the existing software when the router is reloaded. |
|
Identifies the boot software for a node. This variable is usually set automatically when the router boots. |
|
Bypasses ksh authentication. A reboot is required only on the card that has to bypass authentication. |
|
Permanently changes the default location where configuration files are saved. |
To display the current environment variable settings, enter the set command :
rommon B1> set
PS1=rommon ! >
TFTP_SERVER=172.23.16.81
IP_ADDRESS=172.29.52.71
IP_SUBNET_MASK=255.255.255.0
DEFAULT_GATEWAY=172.29.52.1
IOX_ADMIN_CONFIG_FILE=
TURBOBOOT=
BOOT_DEV_SEQ_CONF=disk0:;disk1:
MIRROR_ENABLE=Y
?=0
ReloadReason=68
BSI=0
BOOT_DEV_SEQ_OPER=disk0:;disk1:
EASYBAKE=0x0
BOOT=disk0:hfr-os-mbi-4.2.0/mbihfr-rp.vm,1;
Environment variable settings are entered in capital letters, followed by a definition. The following example shows the environmental variables used to configure the control Ethernet port on a Cisco CRS Router:
rommon B1> IP_ADDRESS=1.1.1.1 rommon B2> IP_SUBNET_MASK=255.255.254.0 rommon B3> DEFAULT_GATEWAY=1.1.0.1
To save the current environment variable settings, enter the sync command:
rommon B1> sync
![]() Note | Environmental values that are not saved with the sync command are discarded whenever the system is reset or booted. |
To clear the environment variable settings, enter the unset command:
rommon B1> unset
To make the change permanent, use the sync command.
![]() Note | Environmental values that are not saved with the sync command are discarded whenever the system is reset or booted. |
The chassis serial number is required for multishelf routers and can be read from an SC or RP that is running in ROM Monitor mode. RP may be necessary if the physical label is missing or damaged.
![]() Note | You can view the chassis serial numbers using the Cisco IOS XR software. |
Attach a console to the console port of an SC or RP in the chassis. (Only the SC or RP needs to run to perform this procedure. Other cards need not be inserted.)
Enter the dumpplaneeeprom command in privilege mode of the ROM Monitor prompt to display the chassis serial number. In the following example, the serial number is TBC0636606900000:
rommon B3 > priv rommon B4 > dumpplaneeeprom EEPORM data backplane 000000 00 00 01 e2 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000030 00 00 00 00 00 00 08 00 45 3b 61 01 04 00 00 00 ........E;a..... 000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000050 54 42 43 30 36 33 36 36 30 36 39 30 30 30 30 30 TBC0636606900000 000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ rommon B3 > priv rommon B4 > dumpplaneeeprom EEPORM data backplane 000000 00 00 01 e2 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000030 00 00 00 00 00 00 08 00 45 3b 61 01 04 00 00 00 ........E;a..... 000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000050 54 42 43 30 36 33 36 36 30 36 39 30 30 30 30 30 TBC0636606900000 000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
![]() Note | The chassis serial number is displayed in the output to the right (row “00050”). A similar number is present for every chassis. |
To exit ROM Monitor mode, you must change the configuration register to 0x102 and reset the RP. This process can be done by either entering CLI commands or responding to prompts.
Perform this task to reset the configuration register in ROM Monitor mode and start the RP in EXEC mode.
Command or Action | Purpose |
---|
To change the configuration register settings in the ROM Monitor mode, enter the confreg command at the ROM Monitor mode. Entering this command displays the configuration summary and the prompts used to change the configuration.
Command or Action | Purpose |
---|
You must follow these steps in order to attach to the primary RP from standby RP:
The following sections provide references related to the ROM Monitor.
Displaying the Chassis Serial Numbers in Cisco IOS XR System Management Configuration Guide for the Cisco CRS Router |
|
Connecting and Communicating with the Router in Cisco IOS XR Getting Started Guide for the Cisco CRS Router |
|
Cisco IOS XR Software Documentation: http://www.cisco.com/en/US/products/ps5845/tsd_products_support_series_home.html |
The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies. To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds. Access to most tools on the Cisco Support website requires a Cisco.com user ID and password. |