There are at least two pieces of software you can update in a Cisco ASR-1001-X. The ROMMON (firmware) and the IOS itself.
This router uses “Cisco IOS XE Software”. Which is an IOS process on a Linux kernel as far as I know.
Cisco recommends specific ROMMON releases for different generations of software. You can look it up at: https://www.cisco.com/c/en/us/td/docs/routers/asr1000/rommon/asr1000-rommon-upg-guide.html#concept_zdm_2nx_5bb
The software versions for these ASR 1000 series routers had complicated versions numbers like these:
asr1001x-universalk9.03.16.07b.S.155-3.S7b-ext.SPA.bin which is 03.16.07b.S and actually IOS 15.5(3)S7b.
But with IOS 16 it was simplified a current software image looks like this
asr1001x-universalk9_noli.16.09.06.SPA.bin which is IOS 16.9.6.
If you have a cisco account with running service contract, you can download the Cisco software from: https://software.cisco.com/download/home
The IOS XE software, comes with or without “Payload encryption”, and with or without “Lawfull Interception”.
To check the current installed rommon and IOS version enter:
To update the rommon copy the rommon image to flash and enter:
upgrade rom-monitor filename bootflash:asr1000-romm... all
To update the IOS software copy the IOS image to the flash and enter (in config mode):
boot system flash bootflash:asr1001x-universalk9_...
no boot system flash bootflash:...old image...
no boot system flash bootflash:...older images...
boot system flash bootflash:...old image...
This changes the boot order to prefer the new image as default but keep the old one as fallback. After the “wr” you can check the bootvar with “show bootvar” and see if the next reboot should use the new image.
Next, reboot the router with “reload”, and check if the software has changed
after the reboot. You also might want to save a new backup of the configuration and check how it differs after the update.