Understanding Cisco config register

Let’s just get down to business, we all use it but few of us understand what any of it means. The documentation is a little, well, complicated for some people so I aim to give you a better understanding of the Cisco configuration register, also known as the config register or config-reg.

The configuration register is a 16 bit field representing in hexadecimal notation. Here is an example:

0x2102 = 0010000100000010
0010(bits 12-15) | 0001(bits 8-11) | 0000(bits 4-7) | 0010(bits 0-3)
2 1 0 2

  • Bits 0-3 represent the boot field
  • Bits 4-7 only position 6 and 7 matter, ignore NVRAM or OEM**
  • Bit 8 ignore or process the break key, set to 1 to ignore by default
  • Bit 9 is not used
  • Bit 10 advises the system on either all 1’s or 0’s for broadcast, 0 by default, all 1’s
  • Bit 11 works with 14 to control the subnet and network portion of IP broadcast
  • Bit 12 works with 11 to control console data rate
  • Bit 13, when set, tells the router to load from Flash, which is almost always the case
  • Bit 14 is used to interact with bit 11, by default is 0

Looking at the breakdown of our 0x2102 we have bits: 1, 8, 13 (right to left) or 13, 8, 1 (left to right). Thus, the router will load an image from Flash if network boot fails (Bit 13 set to 1) and ignore the break key function (bit 8), and to utilize the boot system commands stored in the startup-configuration to process which image to load (bit 1 set).

Now, this does lead me into one quick note for you. When bit 1 is set, the boot system commands and their order matter! You want the image you’re expecting to load to be above the older one or you can set it to just flash: and it’ll load the oldest image first Here is a small example:

boot system flash:c3900-universalk9-mz.SPA.153-2.T1.bin
boot system flash:

Not so hard, is it?

** I have never set this bit before, but I am sure those who’ve done tons of troubleshooting/worked/working for Cisco use this, I just have never used it, personally so I have no comment on it