Relentless Coding

A Developer’s Blog

Make Cisco Device Start Up From NVRAM Again

My ISR4321 was not remembering its config on startup even though I was sure to write memory after making config changes. Turns out, the configuration registry was not set correctly. This post looks at what this registry contains and how to make sure it will load the stored config on bootup.

In my case, the registry value was set to 0x9922.

Here is an overview of what all the different bits mean. When breaking it down:

0x8000 => enables diagnostic messages, ignores NVRAM contents
0x1000 => console line speed
0x0800 => console line speed
0x0100 => break disabled
0x0020 => console line speed
0x0002 => boots into ROM if inital boot fails

These values are ANDed. The first value, 0x8000, causes IOS to ignore the startup-config from NVRAM. We change that value:

ISR4321# conf t
ISR4321(config)# config-register 0x3922

The default is 0x2102, but I want the fasted baud rate (115200) so I add 0x1820 to get 0x3922.