Cisco 800 Series Routers

Cisco IOS Software Upgrade Procedure for Cisco 801, 802, 803, 804, and 805 Series Routers

Document ID: 5277

Updated: Jan 27, 2006



This document takes you through a step-by-step procedure for upgrading your Cisco 800 Series Router. While an 800 series runs Cisco IOS® software like other Cisco routers, the ROM monitor (TinyROM) and some instructions are slightly different.

Note:  If you have a Cisco 806, 826, 827, or 828 series router, see Upgrading Cisco IOS Software for the Cisco 806, 826, 827, 828, and SOHO70 Routers.



A Trivial File Transfer Protocol (TFTP) server or a remote copy protocol (RCP) server application must be installed on a TCP/IP ready workstation. Once the application is installed, a minimal level of configuration must be performed:

  • Firstly, the TFTP application must be configured to operate as a TFTP server and not a TFTP client.

  • Secondly, the outbound file directory must be specified. This is the directory in which the Cisco IOS images are stored. Most TFTP applications provide a set-up routine to assist in these configuration tasks.

Most TFTP applications provide a set-up routine to assist in these configuration tasks.

Note: The TFTP server included on the software feature pack CD-ROM can be used only on a PC running Windows 95. For other operating systems, a number of TFTP or RCP applications are available from independent software vendors or as shareware from public sources on the World Wide Web. The TFTP Server application included on the software feature pack CDs is also available on CCO.

Components Used

The information in this document is based on the software and hardware versions below:

  • Cisco 801, 802, 803, 804, and 805 Series Routers

  • All Cisco IOS software versions

The information presented in this document was created from devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If you are working in a live network, ensure that you understand the potential impact of any command before using it.


For more information on document conventions, see the Cisco Technical Tips Conventions.

Step-by-Step Procedure

Follow the step-by-step instructions provided below to upgrade your Cisco 800 series router:

  1. Install the Cisco IOS software image in the outbound directory of the TFTP server.

    The TFTP server looks for the router's Cisco IOS software image in this directory. Make sure that the Cisco IOS software you want to copy to your Flash is in this directory. Before you know where to put the image, you need to have the right image available. You can find this image in the Download Software area (registered customers only) . Check the memory and Flash requirements for the specific image, and ensure you have sufficient memory in your router using the show version command.

    Router#show version
    Cisco Internetwork Operating System Software
    IOS (tm) C800 Software (C800-NSY6-MW), Version 12.1(3.1), MAINTENANCE INTERIM
    Copyright (c) 1986-2000 by cisco Systems, Inc.
    Compiled Tue 11-Jul-00 01:10 by cmong
    Image text-base: 0x000EA000, data-base: 0x0075F000
    ROM: TinyROM version 1.0(2)
    wiener uptime is 1 week, 4 days, 3 hours, 30 minutes
    System returned to ROM by power-on
    System restarted at 12:36:28 UTC Thu Aug 10 2000
    System image file is "flash:c800-nsy6-mw.121-3.1"
    Cisco C803 (MPC850) processor (revision F) with 52244K bytes of virtual memory.
    Processor board ID
    CPU part number 33
    X.25 software, Version 3.0.0.
    Bridging software.
    Basic Rate ISDN software, Version 1.1.
    2 POTS Ports
    1 Ethernet/IEEE 802.3 interface(s)
    1 ISDN Basic Rate interface(s)
    12M bytes of physical memory (DRAM)
    8K bytes of non-volatile configuration memory
    12M bytes of flash on board (8M from flash card)
    Configuration register is 0x2102
  2. Establish a console session to the router.

    This can either be done with a direct console connection or a virtual telnet connection. A direct console connection is preferred over a Telnet connection because a Telnet connection will be lost during the reboot phase of the software installation (see step 8). The console connection is made with a rolled cable (flat black or blue cable), and connects the console port of the router to the COM-port of the PC. Launch HyperTerminal on the PC, and use the following settings:

    Speed 9600 bits per second 
    8 databits 
    0 parity bits 
    1 stop bit 
    No Flow Control
  3. Verify that the TFTP server has IP connectivity to the router.

    The TFTP server must have a network connection to the router and must be able to ping the IP address of the router targeted for a TFTP software upgrade. To achieve this, the router interface and the TFTP server must have:

    • an IP address in the same range, or

    • a default gateway configured.

      To verify this, check the IP address of the TFTP server.

  4. Check the available space in the Flash memory using the show flash command:

    Router#show flash 
    Directory of flash:/ 
     0 ---- 49096 May 14 1999 23:55:31 TinyROM-1.2(1)
     40 -r-x 3326472 Apr 06 2000 12:32:02 c800-nsy6-mw.bin 
    4194304 bytes total (786432 bytes free)

    If you have enough Flash memory left to install the new image, or if you can delete some files that are not the Cisco IOS software image the router booted from, go directly to step 8.

    If you do not have enough Flash memory available to hold the existing IOS image and the new image, you must delete the existing image when you go into TinyROM, as detailed in Steps 5 and 6 below. The file must be deleted from TinyROM mode because a Cisco 800 will not let you erase the Cisco IOS software image it booted from. Continue on to step 5.

  5. Go to TinyROM mode and configure the download parameters.

    Either reload and send a break (ctrl-break) during the boot sequence, or modify the configuration register:

    Router#configure terminal
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#config-register 0x2100  

    Either way, you end up with the "boot #" prompt. Set up the following parameters to make the download possible:

    • the name of the Cisco IOS software image file on your TFTP server

    • the IP address of the TFTP server (for example:

    • the IP address of the Ethernet interface of the Cisco 800 series router (for example:

    • the subnet mask of the Ethernet interface of the Cisco 800 series router (example:

      To do this, use the following commands (respectively) :

      boot# set file-name = filename 
      boot# set serv-ip = 
      boot# set unit-ip = 
      boot# set netmask = 

      If the TFTP server is on a different subnet than the router, set up an IP address for a gateway server:

      boot# set gate-ip = 

      If you modified the configuration register to go in TinyROM mode, set it back to its initial value (usually 0x2102):

      boot# set ios-conf = 0x2102 

      You can check if the parameters are correctly set with the set command (without any argument). If everything is correct, save the parameters:

      boot# save 
  6. Erase the existing Cisco IOS software image.

    Use the list command to see the different files currently stored in Flash:

    boot# list 
    Status  Size    Dev    Name 
    ------  48K     flash  TinyROM-1.2(1) 
    ---r-x  3249K   flash  c800-nsy6-mw.bin 
            768K    free   4096K total boot# 

    To delete the old Cisco IOS software image (or any other file you want to delete), enter:

    boot# delete c800-nsy6-mw.bin 

    This tags the file as "deleted".

    boot# list 
    Status  Size   Dev    Name 
    ------  48K    flash  TinyROM-1.2(1) 
    --Dr-x  3249K  flash  c800-nsy6-mw.bin

    To effectively erase the file, use the erase flash command:

    boot# erase flash 
    Erasing deleted and invalid files from flash 
    erase: succeeded (7 seconds)
  7. Download the new image by entering the following command:

    boot# upload tftp 
    TFTP initiated. 
    File name: c800-nsy6-mw.bin 
    RAM size: 0x00650bc8 (6622152) 
    Raw size: 0x00541415 (5510228) 
    Image size: 0x002cbc28 (2931752) 
    upload: succeeded (17 seconds)

    Save the file from RAM to Flash:

    boot# save file = c800-nsy6-mw.bin

    Reload the router:

    boot# boot

    Go to step 14.

  8. If you need more free Flash memory, delete the files that are not the Cisco IOS software image the router booted from.

    To tag the file as deleted, use:

    Router#delete flash:filename

    To erase the file, use:

    Router#squeeze flash
    All deleted files will be removed. Continue? [confirm]
    Squeeze operation may take a while. Continue? [confirm] 
    Squeeze of flash complete
  9. Begin the process of copying the new software image from the TFTP server to the router.

    Router> enable 
    Password:  Router# 
    Router# copy tftp flash 

    See How To Copy a System Image from One Device to Another for details on how to do this.

  10. Specify the IP address of the TFTP server.

    When prompted, enter the IP address of the TFTP server as in the following example:

    Address or name of remote host []?
  11. Specify the filename of the new Cisco IOS software image.

    When prompted, enter the IP address of the TFTP server as in the following example:

    Source file name? c800-nsy6-mw.bin 

    Note: The image name varies depending on the name the image has been saved under on the TFTP server.

  12. Specify the destination image filename.

    This is the name the new software image will be called once loaded onto the router. The image can be named anything, but common practice is to enter the same filename.

    Destination file name [c800-nsy6-mw.bin]? c800-nsy6-mw.bin

    This triggers the following download procedure:

    Router#copy tftp flash 
    Address or name of remote host []? 
    Source filename []? c800-nsy6-mw.bin 
    Destination filename [c800-nsy6-mw.bin]? c800-nsy6-mw.bin 
    Accessing tftp:// 
    Loading c800-nsy6-mw.bin from (via Ethernet0): ! 
    Build [BLD-V120_T4_T] -- Wed Dec 30 13:37:06 PST 1998 
    File name: c800-nsy6-mw 
     RAM size: 0x0052c900 (5425408) 
     Raw size: 0x00423da4 (4341156) 
    Image size: 0x002352f4 (2314996) 
    [OK - 2315181/4629504 bytes] 
    2315181 bytes copied in 67.700 secs (34554 bytes/sec) 
  13. Verify the following before reloading:

    • The new Cisco IOS software has been stored properly by using the show flash command to make sure that the file has been saved, that the size is correct, and that you don't have invalid checksum. You need to start the procedure again if you encounter any of the following:

      • the file does not appear

      • the file appears followed by "[invalid checksum]"

      • the size doesn't correspond to the file size on the TFTP server

      Note: The file size is expressed in bytes in the router and can be in Kbytes in some TFTP servers.

    • The boot system commands are in the right order in the configuration.

      The router stores and executes the boot system commands in the order in which you enter them in the configuration file.

      Router#configure terminal 
      Enter configuration commands, one per line. End with CNTL/Z. 
      Router(config)#boot system flash c800-nsy6-mw.bin 
      Router(config)#boot system flash 
      Display the config:
      router#show running-config
      Building configuration...                         
      Current configuration : 952 bytes
      version 12.2
      service timestamps debug datetime msec
      service timestamps log datetime msec
      no service password-encryption
      hostname r806
      boot system flash c800-nsy6-mw.bin
      boot system flash

      If a boot system command entry in the list specifies an invalid device or filename, the router skips that entry. In the boot system commands (required if you have more than one Cisco IOS software image stored in Flash memory - by default the router uses the first one), use the following syntax:

      Router(config)#boot system flash filename
      !--- Do not use boot system flash dir:filename like on other platforms 
  14. After reload is complete, use the show version command to verify that the router is running the desired Cisco IOS software image.

Related Information

Updated: Jan 27, 2006
Document ID: 5277