ROM Monitor Overview

ROM Monitor overview and basic procedures

ROM Monitor is a bootstrap program that

  • provides a recovery mechanism when the normal boot process fails

  • enables basic system diagnostic and recovery functions, and

  • allows manual system initialization and configuration.

ROM Monitor

A ROM Monitor is a bootstrap program that:

  • initializes the hardware and boots the Cisco IOS XE software when you power on or reload a router

  • displays the ROM Monitor (rommon 1>) prompt when you connect a terminal to the router in ROM Monitor mode, and

  • operates as a separate program from the Cisco IOS XE software.

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.

ROM Monitor operational characteristics

During normal operation, users do not use ROM Monitor mode. ROM Monitor mode is used only in special circumstances, such as reinstalling the entire software set, resetting the router password, or specifying a configuration file to use at startup.

Although it is distributed with routers that use the Cisco IOS XE software, ROM Monitor is a separate program from the Cisco IOS XE software. During normal startup, the ROM Monitor initializes the router, and then control passes to the Cisco IOS XE software. After the Cisco IOS XE software takes over, the ROM Monitor is no longer in use.

It is important to remember that ROM Monitor mode is a router mode, not a mode within the Cisco IOS XE software. It is best to remember that ROM Monitor software and the Cisco IOS XE software are two separate programs that run on the same router. At any given time, the router runs only one of these programs.

Environmental variables and configuration register provide the primary connections between ROM Monitor and Cisco IOS XE software:

  • ROM Monitor environment variables: Define the location of the Cisco IOS XE software and describe how to load it. After the ROM Monitor has initialized the router, it uses the environment variables to locate and load the Cisco IOS XE software.

  • Configuration register: A software setting that controls how a router starts up. One of the primary uses of the configuration register is to control whether the router 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 XE software prompt when you need to use ROM Monitor mode. When the maintenance in ROM Monitor mode is complete, you change the configuration register so the router reboots with the Cisco IOS XE software.

Access and network management considerations apply when using ROM Monitor mode:

  • Terminal access: When the router 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 XE software (EXEC mode) is not operating, nonmanagement interfaces are not accessible.

  • Hardware availability: The hardware is available, but no configuration exists to make use of the hardware. Basically, all Cisco IOS XE software resources are unavailable.

  • Management Ethernet interface configuration: When the router is in ROM Monitor mode, the router does not run the Cisco IOS XE software, so that Management Ethernet interface configuration is not available.

When you want to access other devices, such as a TFTP server, while in ROM Monitor mode on the router, you must configure the ROM Monitor variables with IP access information.


Note


TFTP access variables are currently not supported on the IR1800 platform.


Access ROM Monitor mode

Access ROM Monitor mode is a boot process that allows network administrators to enter the device's low-level diagnostic and recovery environment when normal boot processes fail or when manual intervention is required.

ROM Monitor mode access methods

These sections describe how to enter the ROMMON mode.

Check the current ROMmon version

This task helps you identify the current ROMmon version and view all ROMmon variables configured on your router for troubleshooting and system verification purposes.

Follow these steps to check the current ROMmon version.

Procedure

Step 1

Use the show rom-monitor command to display the version of ROMmon running on the router.

Example:
Router# show rom-monitor r0
System Bootstrap, Version 1.4(DEV) [root-vganev 100], DEVELOPMENT SOFTWARE
Copyright (c) 1994-2020 by cisco Systems, Inc.
Compiled at Mon Dec 7 18:02:07 2020 by root

Step 2

Use the show romvar command to display all variables that are set in ROMmon.

Example:
Router# show romvar
ROMMON variables:
PS1 = rommon ! >
THRPUT =
LICENSE_BOOT_LEVEL = network-advantage,all:IR8100;
RET_2_RTS =
BOOT = bootflash:ir8100-universalk9.BLD_V175_THROTTLE_LATEST_20210124_063209_V17_5_0_148.SSA.bin,12;
CONSOLE_LOCK = 0
BSI = 0
RET_2_RCALTS =
RANDOM_NUM = 307121635

Step 3

Use the reload command to reload the router and access ROMmon mode if your configuration register is set to the hex value 0x0 or 0x1820.

Example:
Router# reload

Note

 
If your configuration register is set to the hex value 0x0 or 0x1820, the reload operation brings you to the ROMmon mode command prompt (rommon 1>).

Step 4

Use the set command to display the same information as the show romvar command displays in Cisco IOS XE EXEC mode at the ROMmon prompt, .

Example:
rommon 1 > set
PS1=rommon ! >
THRPUT=
LICENSE_BOOT_LEVEL=network-advantage,all:IR8100;
RET_2_RTS=
BOOT=bootflash:ir8100-universalk9.BLD_V175_THROTTLE_LATEST_20210124_063209_V17_5_0_148.SSA.bin,12;
CONSOLE_LOCK=0
BSI=0
RANDOM_NUM=307121635
RET_2_RCALTS=1611876425

Commonly used ROM Monitor commands

The following table summarizes the commands commonly used in ROM Monitor. For specific instructions on using these commands, refer to the relevant procedure in this document.

Table 1. Commonly Used ROM Monitor Commands

ROMMON Command

Description

boot image

Manually boots a Cisco IOS XE software image.

boot image –o config-file-path

Manually boots the Cisco IOS XE software with a temporary alternative administration configuration file.

confreg

Changes the config-register setting.

dev

Displays the available local storage devices.

dir

Displays the files on a storage device.

reset

Resets the node.

set

Displays the currently set ROM Monitor environmental settings.

sync

Saves the new ROM Monitor environmental settings.

unset

Removes an environmental variable setting.

Examples

The following example shows what appears when you enter the ? command on a router:


rommon 1 > ?
alias               set and display aliases command
boot                boot up an external process
confreg             configuration register utility
dev                 list the device table
dir                 list files in file system
help                monitor builtin command help
history             monitor command history
meminfo             main memory information
repeat              repeat a monitor command
reset               system reset
set                 display the monitor variables
showmon             display currently selected ROM monitor
sync                write monitor environment to NVRAM
token               display board's unique token identifier
unalias             unset an alias
unset               unset a monitor variable

Change the ROM Monitor prompt

Changing the prompt is useful if you are working with multiple routers in ROM Monitor at the same time.

Follow these steps to change the ROM Monitor prompt:

Procedure

Use the PS1= command to change the prompt.

Example:
rommon 8 > PS1="IR1800 rommon ! > "
IR1800 rommon 9 > 

This example specifies that the prompt should be "IR1800 rommon ", followed by the line number, and then followed by " > " by the line number.


Display the configuration register setting

The configuration register setting determines various system behaviors, including boot options and console settings. You can display this information using ROM Monitor commands.

Follow these steps to display the configuration register setting.

Procedure


Step 1

Use the confreg command without parameters to display the current configuration register setting.

Example:

rommon > confreg
Configuration Summary
(Virtual Configuration Register: )
enabled are:
[ 0 ] break/abort has effect
[ 1 ] console baud: 9600
boot:...... the ROM Monitor
do you wish to change the configuration? y/n  [n]:

Note

 
  • The configuration register setting is labeled Virtual Configuration Register.

  • The system displays the current configuration register settings and prompts whether you want to change the configuration.

Step 2

Enter no to avoid changing the configuration register setting.


Environment variable settings

Environment variable settings are ROM Monitor configuration parameters that:

  • define the attributes of the ROM Monitor

  • are entered like commands and are always followed by the equal sign (=), and

  • are entered in capital letters, followed by a definition.

Environment variable configuration details

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.

Environment variable settings are entered using the following format:


IP_ADDRESS=10.0.0.2

Frequently used environmental variables

The following table shows the main ROM Monitor environmental variables. For instructions on how to use these variables, see the relevant instructions in this document. The IR1800 boot loader does not support netboot, so any setting like environment variables IP_ADDRESS, IP_SUBNET_MASK, DEFAULT_GATEWAY, TFTP_SERVER, TFTP_FILE are not used.

Table 2. Frequently Used ROM Monitor Environmental Variables

Environmental variable

Description

BOOT= path/file

Identifies the boot software for a node. This variable is usually set automatically when the router boots.

Display environment variable settings

Procedure

Enter the showmon command.

Example:
rommon 1 > showmon 
System Bootstrap, Version 1.4(DEV) [root-vganev 100], DEVELOPMENT SOFTWARE
Copyright (c) 1994-2020 by cisco Systems, Inc.
Compiled at Mon Dec 7 18:02:07 2020 by root

IR8140H-P-K9 platform with CPU platform IRMH-SUP-SP and 8388608 Kbytes of main memory

MCU Version - Bootloader : 0x22, App : 0x38
MCU is in Application mode.

The system displays the current environment variable settings including system bootstrap information, platform details, and MCU version information.

Environment variable settings

Environment variable settings are entered in capital letters, followed by a definition. The following example shows the environmental variables that can be configured in ROMmon mode.


rommon 1 > confreg 0x0
rommon 1> BOOT_WDOG = DISABLE
rommon 1> BOOT = IR8100-K9_image_name

Save environment variable settings

Environment variable values that are not saved with the sync command are discarded whenever the system is reset or booted.

Follow these steps to save the environment variable settings.

Procedure

Use the sync command to save the current environment variable settings.

Example:
rommon > sync

Exit ROM Monitor mode

To exit ROM Monitor mode, you must change the configuration register and reset the router.

Follow these steps to exit ROM Monitor mode.

Procedure


Step 1

Use the confreg command to initiate the configuration register configuration prompts.

Example:

rommon 1> confreg

Note

 
Respond to each prompt as instructed. For more information, see the example that follows this procedure.

Step 2

Use the reset command to reset and initialize the router.

Example:

rommon 2> reset

Configuration example

This example demonstrates the configuration register setup process through ROM Monitor interface, showing the interactive prompts and default settings available during system configuration.


rommon 3 > confreg 
           Configuration Summary
   (Virtual Configuration Register: 0x0)
enabled are:
 [ 0 ] break/abort has effect
 [ 1 ] console baud: 9600
 boot: ...... the ROM Monitor
do you wish to change the configuration? y/n  [n]:  y
 enable  "diagnostic mode"? y/n  [n]:  
 enable  "use net in IP bcast address"? y/n  [n]:  
 enable  "load rom after netboot fails"? y/n  [n]:  
 enable  "use all zero broadcast"? y/n  [n]:  
 disable "break/abort has effect"? y/n  [n]:  
 enable  "ignore system config info"? y/n  [n]:  
 change console baud rate? y/n  [n]:  
change the boot characteristics? y/n  [n]:  
           Configuration Summary
   (Virtual Configuration Register: 0x0)
enabled are:
 [ 0 ] break/abort has effect
 [ 1 ] console baud: 9600
 boot: ...... the ROM Monitor
do you wish to change the configuration? y/n  [n]:  

Upgrade the ROMmon for a router

The ROMmon upgrade on the IR1800-K9 router is done automatically when the image is booted. The latest version of the ROMmon is bundled with the Cisco IOS XE image. An algorithm detects whether the current running version is older than the bundled version; if so, it is automatically upgraded. If the current running version is equal to the bundled version, no upgrade is executed. For every successful upgrade, the router is automatically rebooted so that the new version is loaded and executed.

Follow these steps to upgrade the ROMmon for a router.

Procedure

Step 1

(Optional) Use the show rom-monitor slot command on the router to display the current release numbers of the ROMmon on the hardware.

Note

 
For information about interpreting the output of this command, see the relevant command reference.

Step 2

If autoboot is not enabled using the config-register 0x2102 command, use the boot filesystem:/file-location command at the ROMmon prompt to boot the Cisco IOS XE image, where filesystem:/file-location is the path to the consolidated package file.

Note

 
The ROMmon upgrade is not permanent for any piece of hardware until the Cisco IOS XE image is booted.

Step 3

Use the enable command at the user prompt to enter privileged EXEC mode after the boot is complete.

Step 4

Use the show rom-monitor slot command to verify whether the ROMmon has been upgraded.