Upgrading Field-Programmable Devices

In general terms, field-programmable devices (FPDs) are hardware devices implemented on router cards that support separate software upgrades. A field-programmable gate array (FPGA) is a type of programmable memory device that exists on most hardware components of the router. The term FPD has been introduced to collectively and generically describe any type of programmable hardware device on SIPs and shared port adapters (SPAs), including FPGAs. Cisco IOS XR software provides the Cisco FPD upgrade feature to manage the upgrade of FPD images on SIPs and SPAs.

This chapter describes the information that you must know to verify image versions and to perform an upgrade for SPA or SIP FPD images when incompatibilities arise.

For complete descriptions of the FPD commands listed in this module, refer to the upcoming sections. To locate documentation for other commands that might appear in the course of performing a configuration task, search online in Cisco ASR 9000 Series Aggregation Services Router Commands Master List.

Table 1. Feature History for Upgrading FPD Software on Cisco IOS XR Software

Release

Modification

Release 3.9.0

Support for FPD upgrades was introduced.

Release 6.3.1

Support for parallel FPD upgrade for power modules.

This module contains the following topics:

Upgrading Field-Programmable Device

An FPD is a field programmable logic device which contains non-volatile, re-programmable memory to define its internal wiring and functionality. The contents of this non-volatile memory are called the FPD image or FPD firmware. Over the lifespan of an FPD, FPD firmware images may need upgrades for bug fixes or functionality improvements. These upgrades are performed in the field with minimum system impact.

Prerequisites for FPD Image Upgrades

You must install the FPD pie before you install the SMUs or Service Packs. If you install the SMU or Service Packs before the FPD pie, the FPDs on the line card may not upgrade. In such cases, you must remove the SMUs and Service Packs and reload the router.

Overview of FPD Image Upgrade Support

An FPD image is used to upgrade the software on an FPD.

Whenever an image is released that supports SIPs and SPAs, a companion SIP and SPA FPD image is bundled. However , the FPD image is not automatically upgraded. You must manually upgrade the FPD image running on the SPA or SIP when you upgrade the Cisco IOS XR software image.

FPD versions must be compatible with the Cisco IOS XR software that is running on the router; if an incompatibility exists between an FPD version and the Cisco IOS XR software, the device with the FPGA may not operate properly until the incompatibility is resolved. An FPGA incompatibility on a SPA does not necessarily affect the running of the SPA interfaces; an FPD incompatibility on a SIP disables all interfaces for all SPAs in the SIP until the incompatibility is addressed.

Use the show hw-module fpd command to determine if an FPD upgrade is required. A value of ‘Yes’ in the Upg/Dng? (upgrade/downgrade) column indicates that an upgrade or downgrade is required.

The NCS 5500 supports upgrades for FPGA devices on its SIPs and SPAs. FPGA and ROMMON software upgrades are part of an FPD image package that corresponds to a Cisco IOS XR software image. SIPs and SPAs support manual upgrades for FPGA devices using the Cisco FPD upgrade feature that is further described in this chapter.


Note


  • It is mandatory to upgrade all the required FPDs before doing a reload when you are upgrading FPDs on line cards. This is because, partial FPD component upgrades might result in booting errors (in some cases).

  • You must not reload any line card or the router before all FPD image upgrades are completed successfully.


Parallel Power Module Upgrade

Power modules can now be upgraded in parallel on Cisco Routers. This feature lets you perform FPD upgrades on multiple power modules simultaneously. The newer power modules (V3) take more time to upgrade separately than their previous counterparts, which increases the total time taken to upgrade a full chassis to an unacceptable limit.

Parallel upgrade process reduces the overall time required to upgrade a full chassis with many power modules. Only power modules that support FPD upgrades can be upgraded in parallel. This includes V3 AC-DC and V2 AC-DC power modules.


Note


Power module upgrades are time consuming and cannot be implicitly upgraded or as a part of automatic FPD upgrades. These modules must be upgraded independent of the other fpga upgrades.

To upgrade the power modules in parallel, use upgrade hw-module location pm-all fpd all or upgrade hw-module fpd all location pm-all command in Admin mode.

To force a power module upgrade, use upgrade hw-module fpd all force location pm-all command in Admin mode.

Pre-requisites to perform Parallel Upgrade

  • Ensure that all power connections to the power supply are energized. To verify the power supply details, use show environment power-supply command in Admin mode.

  • Ensure power available to the power supply is equal to the rated power. For example, 6KW power module must have a 6KW power feed. If the power feed to the power supply is less, the excess power calculation will be incorrect and the chassis may run out of power during an upgrade and suffer a sudden shutdown.

  • Ensure sufficient or excess power is available in the chassis before you start the upgrade process.

  • Do not add or remove any component (Line cards, RPs, power connections) from the chassis during an upgrade. This may cause power failure in the system due to sudden change in power in the system.


Note


  • The system upgrades the power modules in random order.

  • The number of modules that can be upgraded simultaneously depends on the excess power available to the chassis.

  • Ensure you initiate the parallel upgrade process only when all the pre-requisites are satisfied because the upgrade process cannot be aborted in between.


Performing Parallel Power Module Upgrade

To initiate a parallel upgrade process and upgrade all the power modules in the chassis simultaneously, use pm-all keyword in the upgrade hw-module fpd command in Admin mode.

Example

The following section illustrates parallel power module upgrade implementation:

Verification

Use show hw-module fpd command to verify the upgrade:

Manual Power Module Upgrade

Manual Power modules FPD upgrades are supported on Cisco ASR 9000 Series Routers and should be performed in Admin mode only. This feature lets you perform FPD upgrades on individual Power Entry Modules (PEMs) rather than initiating a Parallel Power Module Upgrade.

Only power modules that support FPD upgrades can be upgraded manually. This includes V3 AC-DC and V2 AC-DC power modules


Note


Power module upgrades are time consuming and can’t be implicitly upgraded or as a part of automatic FPD upgrades. These modules must be upgraded independent of the other fpga upgrades.


To determine which PEMs requires upgrade, use show hw-module location all fpd .

PEMs requiring upgrade are in UPGD SKIP status.

Router#show hw-module location all fpd

Auto-upgrade:Enabled
                                                                        FPD Versions
                                                                      ==============
 
Location   Card type             HWver FPD device       ATR Status    Running   Programd 
 
-----------------------------------------------------------------------------------------
 
0/PT0      PWR-4.4KW-DC-V3       2.11  PM0-DT-Pri0MCU       UPGD SKIP   3.00      3.00   
 
0/PT0      PWR-4.4KW-DC-V3       2.11  PM0-DT-Pri1MCU       UPGD SKIP   3.00      3.00   
 
0/PT0      PWR-4.4KW-DC-V3       2.11  PM0-DT-Sec054vMCU    UPGD SKIP   3.00      3.00   
 
0/PT0      PWR-4.4KW-DC-V3       2.11  PM0-DT-Sec154vMCU    UPGD SKIP   3.00      3.00   
 
0/PT0      PWR-4.4KW-DC-V3       2.11  PM0-DT-Sec5vMCU      UPGD SKIP   3.00      3.00   
 

To upgrade the power modules manually, use [admin] upgrade hw-module location 0/PT <location> fpd <fpd_device>.

Router# admin
Router# upgrade hw-module location 0/PT0 fpd PM0-DT-Pri0MCU

Automatic Line Card Reload on FPD Upgrade

This feature automatically reloads a newly inserted line card (LC) after a successful FPD upgrade. The current auto FPD upgrade process does not reload the line card automatically, the user had to manually reload the LC. To enable this feature on Cisco IOS XR 32 bit operating system, use the fpd auto-reload command and use fpd auto-reload enable command in Cisco IOS XR 64 bit OS.

Implementation Considerations

The following limitation must be considered while configuring automatic line card reload on FPD upgrade:

  • In Cisco IOS XR 32-bit OS, FPDs that are part of MPAs are not auto upgraded neither on inserting them to a line card nor when the entire line card gets inserted into a chassis.

  • In Cisco IOS XR 64-bit OS, FPDs that are part of MPAs are auto upgraded. But the MPA will not be auto reloaded.

  • If the FPD upgrade fails on a line card then the automatic line card reload feature (if enabled) stops the LC from reloading.

Configuring Automatic Line Card Reload on FPD Upgrade

The auto-reload feature works only if auto-upgrade feature is also configured on the router. The following sample shows how to configure auto-reload feature for Cisco IOS XR 32-bit OS:

RP/0/RSP0/CPU0:ios(config)#admin
RP/0/RSP0/CPU0:ios(admin-config)#fpd auto-upgrade
RP/0/RSP0/CPU0:ios(admin-config)#fpd auto-reload
RP/0/RSP0/CPU0:ios(admin-config)#commit

The auto-reload feature is only supported on line cards.

The following sample shows how to configure auto-reload feature for Cisco IOS XR 64-bit OS:

RP/0/RSP1/CPU0:ios# config
RP/0/RSP1/CPU0:ios(config)#fpd auto-upgrade enable 
RP/0/RSP1/CPU0:ios(config)#fpd auto-reload enable 
RP/0/RSP1/CPU0:ios(config)#commit


Note


During the FPD upgrade process, the linecard may display IOS XR RUN state before triggering auto-reload.



Note


To manually reload the line card on FPD upgrade

During FPD upgrade process, ensure to use hw-module location node-id reload command in EXEC or administration EXEC mode at the end of the upgrade procedure. This cause the selected card(s) to perform a complete hardware reload, which is required for some FPDs.


Hitless FPD Firmware Upgrade for Optical Transceiver Modules

Table 2. Feature History Table

Feature Name

Release Information

Feature Description

Hitless FPD Firmware Upgrade for Optical Transceiver Modules

Release 7.11.1

We now support a hitless FPD firmware upgrade for some optical transceiver modules where the FPD upgrades without shutting down the laser on the optical line card modules. This functionality avoids operational downtime.

This process is more efficient and avoids traffic loss.

Prior to this release, the FPD upgrades used to shut down the laser. This resulted in traffic loss.

This feature is supported on the following variants:

  • A9K-8HG-FLEX-SE/TR

  • A9K-20HG-FLEX-SE/TR

  • A99-10X400GE-X-SE/TR

  • A9903-20HG-PEC

We are introducing hitless FPD firmware upgrade process to support firmware upgrade without any traffic loss.

In earlier releases, when the FPD upgrade was triggered on the linecards with the Cisco 400G QSFP-DD High-Power (Bright), QSFP-DD ZR+ and ZR optical modules, the laser in these optical modules used to shut down. Once the upgrade was successful, the laser was turned on. This process resulted in traffic loss. From Cisco IOS XR Software Release 7.11.1, as hitless FPD firmware upgrade is introduced, the process of shutting down the laser is eliminated. This makes the FPD upgrade process more robust and avoids traffic loss. This feature enabled by default. The upgrade process is applicable to manual FPD upgrades.

FPD upgrade service

The main tasks of the FPD upgrade service are:

  • Check FPD image version to decide if a specific firmware image needs an upgrade or not.

  • Manual FPD Image Upgrade using the upgrade hw-module fpd command.

  • Invoke the appropriate device driver with a name of the new image to load.

An FPD image package is used to upgrade FPD images. The install activate command is used to place the FPD binary files into the expected location on the boot devices.

Supported Upgrade Methods

Method

Remarks

Manual Upgrade

Upgrade using CLI, force upgrade supported.

Auto Upgrade

Upgrade using install SMU activation or during image upgrade. User can enable/disable auto upgrade feature.

Determining Upgrade Requirement

Use the show hw-module fpd command to determine if an FPD upgrade is required. Check for NEED UPGD in the Status column.

Example

Router: #show hw - module fpd

Wed Dec 14 07:08:08.424 UTC
 
Auto-upgrade:Disabled
                                                                         FPD Versions
                                                                        ==============
Location   Card type             HWver FPD device       ATR Status    Running   Programd 
-----------------------------------------------------------------------------------------   
0/0        NC55-18H18F           1.0   MIFPGA               NEED UPGD   7.01      7.01      
0/0        NC55-18H18F           1.0   Bootloader           CURRENT     1.14      1.14   
0/0        NC55-18H18F           1.0   IOFPGA               CURRENT     0.07      0.07   
0/0        NC55-18H18F           1.0   SATA-M600-MCT        CURRENT     0.23      0.23   

Use the show fpd package command to find out which FPGAs are supported with your current software release and minimum hardware requirements for each module.

Automatic FPD upgrade

Use the fpd auto-upgrade enable command to enable the auto upgrade feature.

The FPD images are upgraded as part of the install activation of the new image. The FPDs are upgraded before the router is reloaded.

During an FPD auto-upgrade, the installed FPD rpm package includes an FPD image with a new version of software that is different than the version of the image running on the hardware. Once the FPDs have been upgraded, even if the base image is rolled backed to the older version, the FPD will not be downgraded to its previous version.

When a reload package is installed with new FPD images, the FPD images are upgraded before the router gets reloaded. This feature is controlled through an fpd auto-upgrade configuration option. The auto-upgrade feature does not address the following:

  • FPD Upgrade during initial boot

  • FPD Upgrade during new card insertion

Manual FPD Upgrade

Manual FPD upgrade is performed using the upgrade hw-module fpd command. All cards or all FPGA in a card can be upgraded. If reload is required to activate FPD, the upgrade should be complete. Line-cards, fabric cards and RP cards cannot be reloaded during the process of the FPD upgrade.

FPD upgrade is transaction-based:

  • Each fpd upgrade CLI execution is one transaction.

  • Only one transaction is allowed at any given time.

  • One transaction may include one or many FPD upgrades

The force option can be used to forcibly upgrade the FPD (regardless of whether it is required or not). It triggers all FPDs to be upgraded or downgraded. The force option can also be used to downgrade or upgrade the FPGAs even after the version check.


Note


  • Sometimes, FPDs can have primary and backup images.

  • Force FPD upgrade with upgrade hw-module location all fpd all force command affects forwarding over BVI interface. You must reload involved locations to recover.

  • The use of the force option when performing an FPD upgrade is not recommended except under explicit direction from Cisco engineering or TAC for a one-time purpose only.

  • FPD upgrade should be performed in Admin mode only.

  • A new FPD upgrade should be issued only when previous FPD upgrades have been completed on the same FPD with the following syslog message:

    RP/0/RP0/CPU0:May 10 10:11:44.414 UTC: fpd-serv[205]: %INFRA-FPD_Manager-1-UPGRADE_ALERT : FPD Upgrade Completed (use "show hw-module fpd" to check upgrade status)

These entries are applicable for Cisco N540-FH-CSR-SYS and Cisco N540-FH-AGG-SYS routers.

  • Perform a manual upgrade of the DPFPGA after the software downgrade to Cisco IOS XR Releases 7.3.2, 7.4.x, 7.5.1, or 7.6.2 from higher image versions.

    DPFPGA ports:

    • On N540-FH-CSR-SYS: Ports 0-13

    • On N540-FH-AGG-SYS: Ports 0-23

  • These entries are the commands used to upgrade FPD firmware for specific hardware modules.

    • On N540-FH-CSR-SYS: The command upgrade hw-module location 0/rP0/CPU0 fpd DpFpga force is used in Cisco IOS XR software to upgrade the FPD firmware.

    • On N540-FH-AGG-SYS: The command upgrade hw-module location 0/rP0/CPU0 fpd DpFpgaEth force is used in Cisco IOS XR software to upgrade the FPD firmware Ethernet bundle.

    • On N540-FH-AGG-SYS: The command upgrade hw-module location 0/rP0/CPU0 fpd DpFpgaCpri force is used in Cisco IOS XR software to upgrade the FPD firmware CPRI bundle.

  • Execute the software downgrade to Cisco IOS XR Releases 7.5.1, 7.5.2, or 7.6.2 from higher image versions with the SMU integrated into the maintenance release.

Upgrade TimingIC-A and TimingIC-B FPDs

Perform the following steps to upgrade timing IC-A and Timing IC-B FPDs:

  • Upgrade Timing IC-A FPD.

    Router#upgrade hw-module location 0/[slot-number] fpd TimingIC-A
  • Upgrade TimingIC-B FPD.

    Router#upgrade hw-module location 0/[slot-number] fpd TimingIC-B
  • Run the new XR using the install commit command, if you're performing this manual FPD upgrade.

    Router(admin)#install commit

    If you don't perform the install commit of the new XR, the LC reinstalls itself with this new XR again which could take 30 minutes.

  • Reload the 5th Generation ASR9000 Line Card.

    Router#admin
    sysadmin-vm:0_RP0#hw-module location 0/[slot-number] reload

YANG Data Model for Field Programmable Device

Table 3. Feature History Table

Feature Name

Release Information

Description

Unified Model for FPD: Cisco-IOS-XR-um-fpd-cfg

Release 7.7.1

We have introduced the Cisco-IOS-XR-um-fpd-cfg unified model to enable or disable the automatic reload and automatic upgrade of Field Programmable Devices.

You can access this unified model from the Github repository.

YANG is a data modeling language that helps to create configurations, retrieve operational data and execute actions. The router acts on the data definition when these operations are requested using NETCONF RPCs. The data model handles the following types of requirements on the routers for FPD:

Operational Data

Native Data Model

CLI Commands

Auto Upgrade: Enabling or disabling of automatic upgrade of FPD.

Cisco-IOS-XR-fpd-infra-cfg.yang

  • fpd auto-upgrade enable

  • fpd auto-upgrade disable

Auto Reload: Enabling or disabling of automatic reload of FPD.

Cisco-IOS-XR-fpd-infra-cfg.yang

  • fpd auto-reload enable

  • fpd auto-reload disable

You can access the data models from the Github repository. To learn more about the data models and put them to use, see the Programmability Configuration Guide for Cisco ASR 9000 Series Routers.

How to Upgrade FPD Images

You must determine if an FPD image upgrade is needed using the show hw-module fpd command and perform the upgrade, if needed, under the following circumstances:

  • Migrate the software to a later Cisco IOS XR software release.

  • Swap line cards from a system running a different Cisco IOS XR software release.

  • Insert a new line card.

In the event of an FPD incompatibility with your card, you might receive the following error message:

LC/0/0/CPU0:Jul 5 03:00:18.929 UTC: optics_driver[220]: %L2-OPTICS-3-BAD_FPGA_IMAGE : Detected bad MI FPGA image programmed in MI FPGA SPI flash in 0/0/CPU0 location: Failed to validate meta data CRC 
LC/0/0/CPU0:Jul 5 03:00:19.019 UTC: optics_driver[220]: %L2-OPTICS-3-BACKUP_FPGA_LOADED : Detected Backup FPGA image running on 0/0/CPU0 - primary image corrupted (@0x8c = 0x44)
RP/0/RP0/CPU0:Jul 5 03:00:48.987 UTC: fpd-serv[301]: %PKT_INFRA-FM-3-FAULT_MAJOR : ALARM_MAJOR :FPD-NEED-UPGRADE :DECLARE :0/0:

Upgrades to the Cisco IOS XR software might result in an FPD incompatibility. Ensure that you perform the FPD upgrade procedure and resolve all incompatibilities, for the cards to function properly.


Note


The use of the force option when performing a FPD upgrade is not recommended except under explicit direction from Cisco engineering or TAC for a one-time purpose only.


Before you begin

  • The FPD upgrade procedure is performed while the card is online. At the end of the procedure the card must be reloaded before the FPD upgrade is complete. To reload the card, you can use the hw-module location <location> reload command in Admin mode, during the next maintenance window. The upgrade procedure is not complete until the card is reloaded.

  • During the FPD upgrade, you must not do the following:

    • Reload, perform an online insertion and removal (OIR) of a line card (LC), or power down the chassis. Doing so may cause the node to enter an unusable state.

    • Press Ctrl-C if the console appears to hang without any output. Doing so may abort the upgrade.

  • If you are not sure whether a card requires an FPD upgrade, you can install the card and use the show hw-module fpd command to determine if the FPD image on the card is compatible with the currently running Cisco IOS XR software release.

Procedure

  Command or Action Purpose

Step 1

show hw-module fpd location {all | node-id}

Example:


RP/0/RSP0/CPU0:router# show hw-module fpd location all

or


RP/0/RSP0/CPU0:router# show hw-module fpd location 0/4/cpu0

Displays the current FPD image versions for the specified card or all cards installed in the router. Use this command to determine if you must upgrade the FPD image on your card.

Step 2

admin

Example:


RP/0/RSP0/CPU0:router# admin 

Enters administration EXEC mode.

Step 3

(Optional) show fpd package

Example:


RP/0/RSP0/CPU0:router(admin)# show fpd package
(Optional)

Displays which cards are supported with your current Cisco IOS XR software release, which FPD image you need for each card, and what the minimum hardware requirements are for the various modules. (A minimum hardware requirement version of 0.0 indicates that all hardware can support this FPD image version.)

If there are multiple FPD images for your card, use this command to determine which FPD image to use if you want to upgrade only a specific FPD type.

Step 4

upgrade hw-module fpd {all | fpga-type} [ force] location [all | node-id]

Example:


RP/0/RSP0/CPU0:router(admin)# upgrade hw-module fpd 
all location 0/3/1 
.
.
.
Successfully upgraded 1 FPD for SPA-2XOC48POS/RPR 
  on location 0/3/1

Upgrades all the current FPD images that must be upgraded on the specified card with new images.

Before continuing to the next step, wait for confirmation that the FPD upgrade has successfully completed. Status messages, similar to these, are displayed to the screen until the FPD upgrade is completed:


FPD upgrade started.
FPD upgrade in progress..
FPD upgrade in progress..
FPD upgrade sent to location xxxx
FPD upgrade sent to location yyyy
FPD upgrade in progress..
FPD upgrade finished for location xxx
FPD upgrade in progress..
FPD upgrade finished for location yyyy
FPD upgrade completed.
 

The “FPD upgrade in progress.” message is printed every minute. These logs are information logs, and as such, are displayed if the logging console informational command is configured.

If Ctrl-C is pressed while the FPD upgrade is in progress, the following warning message is displayed:


FPD upgrade in progress on some hardware, 
aborting now is not recommended as it might 
cause HW programming failure and result in 
RMA of the hardware.
Do you want to continue? [Confirm(y/n)]
 

If you confirm that you want to abort the FPD upgrade procedure, this message is displayed:

 
FPD upgrade process has been aborted, please 
check the status of the hardware and reissue 
the upgrade command if required.
 

Note

 
  • If your card supports multiple FPD images, you can use the show fpd package admin command to determine what specific image to upgrade in the upgrade hw-module fpd command.

  • A message is displayed when router modules cannot get upgraded during upgrade with location all option indicating that the FPGA is intentionally skipped during upgrade. To upgrade such FPGAs, you can use the CLI command with a particular location explicitly specified. For example, upgrade hw-module fpd all location 0/3/1 .

  • It is recommended to upgrade all FPGAs on a given node using the upgrade hw-module fpd all location {all | node-id} command. Do not upgrade the FPGA on a node using the upgrade hw-module fpd <individual-fpd> location {all | node-id} as it may cause errors in booting the card.

Step 5

exit

Example:

sysadmin-vm:0_RP0# exit

Step 6

hw-module location{ node-id | all } reload

Use the hw-module location reload command to reload a line card.
sysadmin-vm:0_RP0# hw-module location 0/3 reload

Step 7

exit

Step 8

show hw-module fpd

Verifies that the FPD image on the card has been successfully upgraded by displaying the status of all FPDs in the system.

Configuration Examples for FPD Image Upgrade

The following examples indicates the use of commands associated with the FPD image upgrade procedure.

show hw-module fpd Command Output: Example

Use the show hw-module fpd to display the current version of FPD images on the SPAs, SIPs and other cards installed on your router.

This command can be used to identify information about FPDs on any card. If you enter the location of a line card that is not a SPA, the output displays information about any programmable devices on that line card.

The following example shows how to display FPD compatibility for all modules in the router:



RP/0/RSP0/CPU0:router# ios#show hw-module fpd                   
Tue Jan 22 13:56:55.082 UTC
                                                               FPD Versions
                                                               =================
Location   Card type        HWver FPD device       ATR Status   Running Programd
------------------------------------------------------------------------------
0/RP0     NCS-55A2-MOD-S    0.3   MB-MIFPGA            CURRENT    0.19    0.19 
0/RP0     NCS-55A2-MOD-S    0.3   Bootloader           CURRENT    1.10    1.10 
0/RP0     NCS-55A2-MOD-S    0.3   CPU-IOFPGA           CURRENT    1.18    1.18 
0/RP0     NCS-55A2-MOD-S    0.3   MB-IOFPGA            CURRENT    0.18    0.18 
0/PM0     NC55-1200W-ACFW   1.0   LIT-PriMCU-ACFW      NEED UPGD  2.08    2.08 
0/PM1     NC55-1200W-ACFW   1.0   LIT-PriMCU-ACFW      NEED UPGD  2.08    2.08 
RP/0/RP0/CPU0:ios#.

Note


After Release 5.3.x, Upg/Dng? will display Yes only for upgrade.


The following example shows the FPD for which upgrage will be skipped.


RP/0/RSP1/CPU0:router# show hw-module fpd location all 

Mon Jun 29 05:38:50.332 PST

===================================== ==========================================
                                      Existing Field Programmable Devices
                                      ==========================================
                                        HW                       Current SW Upg/
Location     Card Type                Version Type Subtype Inst   Version   Dng?
============ ======================== ======= ==== ======= ==== =========== ====
0/RSP0/CPU0  A9K-RSP-4G                 4.8   lc   fpga3   0       1.13     No 
                                              lc   fpga1   0       1.5      No 
                                              lc   fpga2   0       1.14     No 
                                              lc   cbc     0       1.2      No 
                                              lc   fpga4   0       1.6      No 
                                              lc   rommon  0       1.0      No 
--------------------------------------------------------------------------------
0/RSP0/CPU0  ASR-9010-FAN               1.0   lc   cbc     1       4.0      No 
--------------------------------------------------------------------------------
0/RSP0/CPU0  ASR-9010-FAN               1.0   lc   cbc     2       4.0      No 
--------------------------------------------------------------------------------
0/1/CPU0     A9K-40GE-B                 1.0   lc   fpga1   0       0.38     No 
                                              lc   fpga2   0       0.8      No 
                                              lc   cbc     0       2.2      No 
                                              lc   cpld1   0       0.15     No 
                                              lc   rommon  0       1.0      No 
--------------------------------------------------------------------------------
0/1/CPU0     A9K-40GE-B                 1.0   lc   fpga1   1       0.38     No 
--------------------------------------------------------------------------------
0/4/CPU0     A9K-8T/4-B                 1.0   lc   fpga1   0       0.38     No 
                                              lc   fpga2   0       0.10     No 
                                              lc   cbc     0       2.2      No 
                                              lc   cpld2   0       0.7      No 
                                              lc   cpld1   0       0.15     No 
                                              lc   cpld3   0       0.3      No 
                                              lc   rommon  0       1.0      No 
                                              lc   fpga3   0      14.42     No 
--------------------------------------------------------------------------------
0/4/CPU0     A9K-8T/4-B                 1.0   lc   fpga1   1       0.38     No 
--------------------------------------------------------------------------------
0/6/CPU0     A9K-4T-B                   1.0   lc   fpga1   0       0.38     No 
                                              lc   fpga2   0       0.10     No 
                                              lc   cbc     0       2.2      No 
                                              lc   cpld2   0       0.7      No 
                                              lc   cpld1   0       0.15     No 
                                              lc   cpld3   0       0.3      No 
                                              lc   rommon  0       1.0      No 
                                              lc   fpga3   0      14.42     No 
--------------------------------------------------------------------------------
0/6/CPU0     A9K-4T-B                   1.0   lc   fpga1   1       0.38     No 
--------------------------------------------------------------------------------
  

The following example shows how to display FPD compatibility for a specific module in the router:

Table 4. show hw-module fpd Field Descriptions

Field

Description

Location

Location of the module in the rack/slot/module notation.

Card Type

Module part number.

HW Version

Hardware model version for the module.

Type

Hardware type. Can be one of the following types:

  • spa—Shared port adapter
  • lc—Line card

Subtype

FPD type. Can be one of the following types:

  • fabldr—Fabric downloader
  • fpga1—Field-programmable gate array
  • fpga2—Field-programmable gate array 2
  • fpga3—Field-programmable gate array 3
  • fpga4—Field-programmable gate array 4
  • fpga5—Field-programmable gate array 5
  • rommonA—Read-only memory monitor A
  • rommon—Read-only memory monitor B

Inst

FPD instance. The FPD instance uniquely identifies an FPD and is used by the FPD process to register an FPD.

Current SW Version

Currently running FPD image version.

Upg/Dng?

Specifies whether an FPD upgrade or downgrade is required. A downgrade is required in rare cases when the version of the FPD image has a higher major revision than the version of the FPD image in the current Cisco IOS XR software package.

show fpd package Command Output: Example

Use the show fpd package command in administration EXECAdmin EXEC mode mode to find out which line cards are supported with your current Cisco IOS XR software release, which FPD image package you need for each line card, and what the minimum hardware requirements are for each module. If multiple FPD images are available for your card, they are listed as Subtype fpga2, fpga3, and so on.


Note


The FPD name used in the FPD Description column of the output of the show fpd package command includes the last ten characters of DCO-PID. Depending on the slot and port numbers, the FPD name is appended with DCO_0, DCO_1, or DCO_2. For example, the FPD names for CFP2-WDM-D-1HL in port 0 and port 1 are -WDM-D-1HL_DCO_0 and WDM-D-1HL_DCO_1 respectively.


The following example shows sample output from the show fpd package command:

show fpd package
Tue Jan 22 13:56:00.212 UTC
 
=============================== ================================================
                                        Field Programmable Device Package
                                ================================================
                                               Req     SW      Min Req   Min Req
Card Type            FPD Description           Reload  Ver     SW Ver  Board Ver
=================== ========================== ====== ======= ======== =========
--------------------------------------------------------------------------------
NC55-1200W-ACFW      LIT-PriMCU-ACFW(A)         NO      2.09    2.09    0.0 
--------------------------------------------------------------------------------
NC55-900W-ACFW-I     LIT-PriMCU-ACFW-I(A)       NO      1.04    1.04    0.0 
--------------------------------------------------------------------------------
NC55-900W-DCFW-I     LIT-PriMCU-DCFW-I(A)       NO      2.260   2.260   0.0 
--------------------------------------------------------------------------------
NC55-930W-DCFW-C     LIT-PriMCU-DCFW-C(A)       NO      2.259   2.259   0.0 
--------------------------------------------------------------------------------
NC55-MPA-12T-S       MPAFPGA                    YES     0.27    0.27    0.0 
--------------------------------------------------------------------------------
NC55-MPA-1TH2H-S     -WDM-D-1HL_DCO_2           NO     38.518  38.518   0.1 
                     MPAFPGA                    YES     0.53    0.53    0.0 
                     WDM-DE-1HL_DCO_2           NO     38.518  38.518   0.1 
                     WDM-DS-1HL_DCO_2           NO     38.268  38.268   0.1 
--------------------------------------------------------------------------------
NC55-MPA-2TH-HX-S    -WDM-D-1HL_DCO_0           NO     38.518  38.518   0.1 
                     -WDM-D-1HL_DCO_1           NO     38.518  38.518   0.1 
                     MPAFPGA                    YES     0.53    0.53    0.0 
                     WDM-DE-1HL_DCO_0           NO     38.518  38.518   0.1 
                     WDM-DE-1HL_DCO_1           NO     38.518  38.518   0.1 
                     WDM-DS-1HL_DCO_0           NO     38.268  38.268   0.1 
                     WDM-DS-1HL_DCO_1           NO     38.268  38.268   0.1 
--------------------------------------------------------------------------------
NC55-MPA-2TH-S       -WDM-D-1HL_DCO_0           NO     38.518  38.518   0.1 
                     -WDM-D-1HL_DCO_1           NO     38.518  38.518   0.1 
                     MPAFPGA                    YES     0.53    0.53    0.0 
                     WDM-DE-1HL_DCO_0           NO     38.518  38.518   0.1 
                     WDM-DE-1HL_DCO_1           NO     38.518  38.518   0.1 
                     WDM-DS-1HL_DCO_0           NO     38.268  38.268   0.1 
                     WDM-DS-1HL_DCO_1           NO     38.268  38.268   0.1 
--------------------------------------------------------------------------------
NC55-MPA-4H-HD-S     MPAFPGA                    YES     0.53    0.53    0.0 
--------------------------------------------------------------------------------
NC55-MPA-4H-HX-S     MPAFPGA                    YES     0.53    0.53    0.0 
--------------------------------------------------------------------------------
NC55-MPA-4H-S        MPAFPGA                    YES     0.53    0.53    0.0 
--------------------------------------------------------------------------------
NC55A2-MOD-SE-H-S    Bootloader(A)              YES     1.11    1.11    0.0 
                     CPU-IOFPGA(A)              YES     1.18    1.18    0.1 
                     MB-IOFPGA(A)               YES     0.18    0.18    0.1 
                     MB-MIFPGA                  YES     0.19    0.19    0.0 
                     SATA(A)                    NO      5.00    5.00    0.0 
--------------------------------------------------------------------------------
NCS-55A2-MOD-HD-S    Bootloader(A)              YES     1.11    1.11    0.0 
                     CPU-IOFPGA(A)              YES     1.18    1.18    0.1 
                     MB-IOFPGA(A)               YES     0.18    0.18    0.1 
                     MB-MIFPGA                  YES     0.19    0.19    0.0 
                     SATA(A)                    NO      5.00    5.00    0.0 
--------------------------------------------------------------------------------
NCS-55A2-MOD-HX-S    Bootloader(A)              YES     1.11    1.11    0.0 
                     CPU-IOFPGA(A)              YES     1.18    1.18    0.1 
                     MB-IOFPGA(A)               YES     0.18    0.18    0.1 
                     MB-MIFPGA                  YES     0.19    0.19    0.0 
                     SATA(A)                    NO      5.00    5.00    0.0 
--------------------------------------------------------------------------------
NCS-55A2-MOD-S       Bootloader(A)              YES     1.11    1.11    0.0 
                     CPU-IOFPGA(A)              YES     1.18    1.18    0.1 
                     MB-IOFPGA(A)               YES     0.18    0.18    0.1 
                     MB-MIFPGA                  YES     0.19    0.19    0.0 
                     SATA(A)                    NO      5.00    5.00    0.0 
--------------------------------------------------------------------------------
NCS-55A2-MOD-SE-S    Bootloader(A)              YES     1.11    1.11    0.0 
                     CPU-IOFPGA(A)              YES     1.18    1.18    0.1 
                     MB-IOFPGA(A)               YES     0.18    0.18    0.1 
                     MB-MIFPGA                  YES     0.19    0.19    0.0 
                     SATA(A)                    NO      5.00    5.00    0.0 
                     STATSFPGA                  YES     0.01    0.01    0.0

This table describes the significant fields shown in the display:

Table 5. show fpd package Field Descriptions

Field

Description

Card Type

Module part number.

FPD Description

Description of all FPD images available for the line card.

Type

Hardware type. Possible types can be:

  • spa—Shared port adapter

  • lc—Line card

Subtype

FPD subtype. These values are used in the upgrade hw-module fpd command to indicate a specific FPD image type to upgrade.

SW Version

FPD software version recommended for the associated module running the current Cisco IOS XR software.

Min Req SW Vers

Minimum required FPD image software version to operate the card. Version 0.0 indicates that a minimum required image was not programmed into the card.

Min Req HW Vers

Minimum required hardware version for the associated FPD image. A minimum hardware requirement of version 0.0 indicates that all hardware can support this FPD image version.


Note


In the show fpd package command output, the “subtype” column shows the FPDs that correspond with each line card image. To upgrade a specific FPD with the upgrade hw-module fpd command, replace the fpga-type argument with the appropriate FPD from the “subtype” column, as shown in the following example:


RP/0/RSP0/CPU0:router(admin)# upgrade hw-module fpd fpga2 location 0/3/1 reload

upgrade hw-module fpd Command Output: Example

Use the upgrade hw-module fpd command to upgrade the FPD image on a line card. The upgrade can be executed for all FPDs or for specific FPDs that need an upgrade. To upgrade all FPDs, use upgrade hw-module fpd all location all command. To upgrade a specific FPD image type, use the FPD subtype value in the upgrade hw-module fpd command.


RP/0/RSP0/CPU0:router# admin
RP/0/RSP0/CPU0:router(admin)# upgrade hw-module fpd fpga location 0/1/cpu0

 Mon Jan 12 05:44:37.611 PST 

% RELOAD REMINDER:  - The upgrade operation of the target module will not interrupt its normal
    operation. However, for the changes to take effect, the target module
    will need to be manually reloaded after the upgrade operation. This can
    be accomplished with the use of "hw-module <target> reload" command.
  - If automatic reload operation is desired after the upgrade, please use
    the "reload" option at the end of the upgrade command.
  - The output of "show hw-module fpd location" command will not display
    correct version information after the upgrade if the target module is
    not reloaded.
Continue? [confirm] y

Starting the upgrade/download of following FPD:

=========== ==== ======= ======= =========== =========
                                   Current    Upg/Dng
Location    Type Subtype Upg/Dng   Version    Version
=========== ==== ======= ======= =========== =========
0/1/CPU0    lc   fpga    upg         0.40         0.40    
------------------------------------------------------
LC/0/1/CPU0:Jan 12 05:44:43.700 : lc_fpd_upgrade[192]: %PLATFORM-UPGRADE_FPD-6-START : 
  Starting to upgrade fpga subtype image from 0.4 to 0.4 for for this card  on location 0/1/CPU0
LC/0/1/CPU0:Jan 12 05:44:42.990 : fabricq_mgr[152]: EES:Internal clock detect IDLE 
  period(-106461) more than threshold(1200000)
LC/0/1/CPU0:Jan 12 05:44:42.990 : ingressq[179]: EES:Internal clock detect IDLE 
  period(-106461) more than threshold(1200000)
LC/0/1/CPU0:Jan 12 05:45:09.240 : fabricq_mgr[152]: EES:Internal clock detect IDLE 
  period(-105945) more than threshold(1200000)
LC/0/1/CPU0:Jan 12 05:45:09.241 : ingressq[179]: EES:Internal clock detect IDLE 
  period(-105944) more than threshold(1200000)
SP/0/1/SP:Jan 12 05:45:16.020 : upgrade_daemon[280]: ...programming...
SP/0/1/SP:Jan 12 05:45:16.034 : upgrade_daemon[280]: ...it will take a while...
SP/0/1/SP:Jan 12 05:45:16.053 : upgrade_daemon[280]: ...it will take a while...
SP/0/1/SP:Jan 12 05:47:42.967 : upgrade_daemon[280]: ...programming...
SP/0/1/SP:Jan 12 05:47:42.981 : upgrade_daemon[280]: ...it will take a while...

% SLC/0/1/CPU0:Jan 12 05:48:08.737 : lc_fpd_upgrade[192]: %PLATFORM-UPGRADE_FPD-6-PASSED : 
  Successfully upgrade fpga subtype image for for this card  on location 0/1/CPU0 
  

show platform Command Output: Example

Use the show platform command to verify that the line card is up and running.

Troubleshooting Problems with FPD Image Upgrades

This section contains information to help troubleshoot problems that can occur during the upgrade process.

Power Failure or Removal of a SPA During an FPD Image Upgrade

If the FPD upgrade operation is interrupted by a power failure or the removal of the SPA, it could corrupt the FPD image. This corruption of the FPD image file makes the SPA unusable by the router and the system displays the following messages when it tries to power up the SPA. When it cannot successfully power up the SPA, it places it in the failed state, as shown in the following example:

LC/0/3/CPU0:Feb  4 08:23:16.672 : spa_192_jacket[188]: %L2-SPA-5-OIR_INSERTED : SPA discovered in bay 0
  LC/0/3/CPU0:Feb  4 08:23:23.349 : spa_192_jacket[188]: %L2-SPA-5-OIR_ERROR : SPA (0): An error occurred (0x1002), error recovery action: reset SPA
  LC/0/3/CPU0:Feb  4 08:23:26.431 : spa_192_jacket[188]: %L2-SPA-5-OIR_INSERTED : SPA discovered in bay 0
  LC/0/3/CPU0:Feb  4 08:23:32.593 : spa_192_jacket[188]: %L2-SPA-5-OIR_ERROR : SPA (0): Too many retries, error recovery stopped
  LC/0/3/CPU0:Feb  4 08:23:32.593 : spa_192_jacket[188]: %L2-SPA-5-OIR_ERROR : SPA (0): An error occurred (0x1002), error recovery action: hold SPA in reset 
 

When a SPA is in the failed state, it may not register itself with the FPD upgrade mechanism. In this case, you do not see the SPA listed when you use the show hw-module fpd command. To verify the state of a SPA, use the show hw-module subslot error command and the show hw-module subslot status command.

Performing a SPA FPD Recovery Upgrade

To recover a SPA from the failed state because of a corrupted FPD image, you must manually shut down the SPA. Use the hw-module subslot subslot-id shutdown command in Global Configuration mode to administratively shutdown the SPA. After the SPA is shut down, you can use the upgrade hw-module fpd command in administration EXEC mode:


RP/0/RSP0/CPU0:router# admin
RP/0/RSP0/CPU0:router(admin)# upgrade hw-module fpd fpga location 0/3/0
  

Performing a SIP FPD Recovery Upgrade

If a SIP upgrade fails for whatever reason, do not reload the SIP. Try to perform the upgrade procedure again. You can perform the upgrade procedure multiple times, as long as you do not reload the SIP. The FPD upgrade procedure takes several minutes to complete; do not interrupt the procedure. If you reload the SIP when the FPD image is corrupted, the SIP malfunctions and you must contact Cisco technical support for assistance.

To recover a SIP from the failed state because of a corrupted FPD image, you must contact Cisco technical support.

To recover a SIP from the failed state because of a corrupted FPD image, you must turn off the automatic reset of the SIP card. Use the hw-module reset auto disable command in administration configuration mode, as shown in the following example:


RP/0/RSP0/CPU0:router(admin-config)# hw-module reset auto disable location 0/1/4