In older Cisco router models, Read-Only Memory (ROM) chips were used to store the IOS software. In newer models, this is no longer the case. As mentioned previously, the IOS image is now stored in Flash memory (it can also be stored on a TFTP server, as I’ll discuss in the next chapter). ROM is now used as the memory area from which a Cisco router begins the boot process, and is made up of a number of elements. These elements are implemented via microcode, a set of programming instructions that are contained in ROM.
- Power-on Self Test (POST). When the router is powered up, microcode stored in ROM performs a POST sequence. This is used to ensure that elements such as the CPU, memory, and interfaces are capable of functioning correctly.
- Bootstrap Program. The bootstrap program is used to initialize the CPU and boot functions of the router. The bootstrap program is responsible for locating and loading the router’s IOS.
- ROM Monitor. A special diagnostic environment used for the purpose of troubleshooting or special configuration. For example, this mode can be used to transfer an IOS image over a console connection.
- RxBoot. When a valid IOS image cannot be found in Flash or on a TFTP server, this limited IOS version is loaded for the purpose of installing a new IOS image into Flash. It is also sometimes referred to as the boot loader, boot image, or helper image. The command set provided is only a subset of normal IOS commands.
On Cisco 2500 series routers, ROM is 2MB in size. In cases where ROM needs to be upgraded (which is rare), the actual chips needs to be replaced on the router’s motherboard. When a router is powered down, the contents of ROM are always retained.