ROM Monitor

This chapter contains the following sections:

ROM Monitor Overview

The 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. When you connect a terminal to the router that is in ROM Monitor mode, the ROM Monitor (rommon 1>) prompt is displayed.

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.

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 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.

Environmental Variables and the Configuration Register

Two primary connections exist between ROM Monitor and the Cisco IOS XE software: the ROM Monitor environment variables and the configuration register.

The 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.

The configuration register is 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.

Accessing ROM Monitor Mode with a Terminal Connection

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, non-management interfaces are not accessible. Basically, all Cisco IOS XE software resources are unavailable. The hardware is available, but no configuration exists to make use of the hardware.

Network Management Access and ROM Monitor Mode

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, .

One area that can be confusing when using ROM Monitor and the Cisco IOS XE software is the area that defines the IP configuration for the Management Ethernet interface. Most users are comfortable with configuring the Management Ethernet interface in the Cisco IOS XE software. When the router is in ROM Monitor mode, however, 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 IR1101 platform.

Access ROM Monitor Mode

The following sections describe how to enter the ROMMON mode, and contains the following sections:

Checking the Current ROMMON Version

To display the version of ROMmon running on a router, use the show rom-monitor command . To show all variables that are set in ROMmon, use show romvar.


Router#show rom-monitor r0
System Bootstrap, Version 1.2, RELEASE SOFTWARE
Copyright (c) 1994-2018  by cisco Systems, Inc.

Router# show romvar
ROMMON variables:
 PS1 = rommon ! >
 MCP_STARTUP_TRACEFLAGS = 00000000:00000000
 LICENSE_SUITE =
 RET_2_RTS =
 Diagnostic = 1
 THRPUT =
 USER_BOOT_PARAM =  DEBUG_CONF=/bootflash/debug.conf
 EULA_ACCEPTED = TRUE
 BOOT_WDOG = DISABLE
 LICENSE_BOOT_LEVEL =
 BOOT = bootflash:ir1101_crashkernel.bin,1;
 CRASHINFO = bootflash:crashinfo_RP_00_00_20180619-204307-UTC
 RET_2_RCALTS =
 BSI = 0
 RANDOM_NUM = 1662155698

Router# reload

If your configuration register was set to hex value 0x0 or 0x1820, reload operation will bring you to the ROMmon mode command prompt (rommon 1>). Invoking the set command at the prompt (rommon 1> set) will display the same information as "show romvar" above in IOS/XE exec mode.


rommon 1 > set
PS1=rommon ! > 
MCP_STARTUP_TRACEFLAGS = 00000000:00000000
 LICENSE_SUITE =
 RET_2_RTS =
 Diagnostic = 1
 THRPUT =
 USER_BOOT_PARAM =  DEBUG_CONF=/bootflash/debug.conf
 EULA_ACCEPTED = TRUE
 BOOT_WDOG = DISABLE
 LICENSE_BOOT_LEVEL =
 BOOT = bootflash:ir1101_crashkernel.bin,1;
 CRASHINFO = bootflash:crashinfo_RP_00_00_20180619-204307-UTC
 RET_2_RCALTS =
 BSI = 0
 RANDOM_NUM = 1662155698

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.

Rommon Command 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

Changing the ROM Monitor Prompt

You can change the prompt in ROM Monitor mode by using the PS1= command as shown in the following example:


rommon 8 > PS1="IR1101 rommon ! > "
IR1101 rommon 9 > 

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 should be “IR1101 rommon ”, followed by the line number, and then followed by “ > “ by the line number.

Displaying the Configuration Register Setting

To display the current configuration register setting, enter the confreg command without parameters as follows:

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]:

The configuration register setting is labeled Virtual Configuration Register . Enter the no command to avoid changing the configuration register setting.

Environment Variable Settings

The ROM Monitor environment variables define the attributes of the ROM Monitor. 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:

IP_ADDRESS=10.0.0.2

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.

This section includes the following topics:

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 IR1101 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.

Displaying Environment Variable Settings

To display the current environment variable settings, enter the showmon command :

rommon 1 > showmon 
System Bootstrap, Version 1.3(REL), RELEASE SOFTWARE
Copyright (c) 1994-2018 by cisco Systems, Inc.

IR1101-K9 platform with 4188160 Kbytes of main memory

MCU Version - Bootloader: 4, App: 4
MCU is in application mode.

Entering 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 = IR1101-K9_image_name

Saving Environment Variable Settings

To save the current environment variable settings, enter the sync command:

rommon > sync

Note


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

Exiting ROM Monitor Mode

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

Procedure

  Command or Action Purpose

Step 1

confreg

Example:


rommon 1> confreg

Initiates the configuration register configuration prompts.

Step 2

Respond to each prompt as instructed.

See the example that follows this procedure for more information.

Step 3

reset

Example:


rommon 2> reset

Resets and initializes the router.

ROMMON Configuration Example

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]:  

Upgrading the ROMmon for a Router

ROMmon upgrade on the IR1101-K9 router is automatically done when the image is booted. The latest version of the ROMmon is bundled with the IOSXE image. An algorithm detects if 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 in order for the new version to get loaded and executed.:

Procedure

  Command or Action Purpose

Step 1

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

See the Checking the Current ROMMON Version for information about interpreting the output of the command that you run.

Step 2

If autoboot has not been enabled by using the config-register 0x2102 command, run 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.

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

Step 3

Run the enable command at the user prompt.

Enters the privileged EXEC mode after the boot is complete.

Step 4

Run the show rom-monitor slot command.

Verifies whether the ROMmon has been upgraded.

Async Serial Port for Console

The IR1101 console port is a USB port. Some installations require that the console port be an RS232 port. This release provides a workaround that allows the Async 0/2/0 port to be used as a console port.

This change requires to ROMMON variables as well as IOS XE. You will need to setup both Mini-USB console and Async 0/2/0 with the same baudrate and 8-N-1.

To change the ROMMON variable, perform the following:

  1. Access ROMMON by following the procedure in the IR1101 Software configuration Guide.

  2. Set the ROMMON variable CONSOLE_SERIAL with value as 1 using the following command in ROMMON: set CONSOLE_SERIAL=1

  3. sync

When ROMMON detects CONSOLE_SERIAL=1, it should start to use the new variable. It will also pass console=ttyS1 as boot parameter instead of console=ttyS0.

After setting the ROMMON variable, then boot up the Cisco IOS XE 17.11.1a image. It will read the new variable and use console=ttyS1 as boot parameter instead of console=ttyS0. Cisco IOS XE 17.11.1a should update the new ROMMON image. Then, reboot the device again and setup auto boot if needed.


Note


Async 0/2/0 pinout is EIA-TIA-561 DTE. When CONSOLE_SERIAL=1 is setup, Async 0/2/0 won’t exist. Do NOT perform a factory reset or downgrade the software below 17.11.