Firmware validation for LFW(Protocol stacks) and APP-FW --Troubleshooting guide when MFW fails to start the updated firmware


(warning) Attention: The MFW V1.2.0.0 and later are released. However, the tooling parts associated with it are not. So at the moment, this is merely informative. We are planning on releasing a new example package with new tooling.


Q

MFW (Maintenance Firmware) is responsible for firmware updates. Before MFW installs the new firmware, it will verify the device header of the new firmware(*.nxi, *.nai or fwupdate.zip) against the information on the hardware device. If the information on your hardware matches firmware device header information, the new firmware will be installed and then be started automatically. Otherweise, MFW will refuse to install the firmware with an error code. The system led will turn yellow. After power-on reset, the old firmware will start again.

A

Hardware information on the device

The following four fields on the hardware device will be validated against the new firmware device header. The information is defined in FDL (flash device label)  and HWC (hardware configuration) on your device.

  • Manufacturer ID (FDL)
  • Device Class (FDL)
  • Hardware Compatibility (FDL)
  • Hardware Assembly Options (HWC)

The first three fields are defined in Basic Device Data of the FDL file.

HIL_MANUFACTURER_HILSCHER_GMBH(0x0001) is Hilscher manufacture ID.

CHIP_NETX_90_COM is the device class for netX 90 use case A/B, and CHIP_NETX_90_COM_HIFSDR is for netX 90 use case C. (see also: Firmware device class for use case A/B and C)

Hardware Compatibility is another field, which will be checked by MFW.


The Hardware Assembly Options are configured in your HWC file.

e.g. Ethernet/IP, PROFINET and EtherCAT use DUAL PHY configuration: xC Ports 0/1 assembly options are Realtime Ethernet (0x80).

The assembly option (xC Port 0) for Fieldbus can be configured as Profibus (0x0050), CAN (0x0030), DeviceNet (0x0040) or CC-Link (0x0070).

Validation for LFW (Protocol stacks)

MFW will check the four fields of the device header of the updated LFW (NXI file) againt hardware information on the device. If they don't match each other, the updated firmware will not be installed.

LFW (NXI file) can be opened directly in netX Studio. These four fields can be checked in netX Studio or even be changed directly.

The customer can also use the utility "netX Tag List Editor" to customize Hilscher standard firmware for netX based OEM device, if netX Studio is not installed.

Validation for APP-FW (user application)

The user applicaiton firmware (NAI file) will also be verified by MFW (since V1.2.0.0) in the update process.

The four fields could be modified in the source code (netx90_app_header.c) according to hardware information on the device. (netX Studio will support NAI file just as NXI file in the future.)


Check Error Code when MFW fails to update firmware

If MFW fails to update firmware (Update Start), the system LED turns yellow. You can try to check the System Error code, which could help you finding the problem.

0xC0001178 ERR_HIL_MANUFACTURER_INVALID
0xC0001179 ERR_HIL_DEVICE_CLASS_INVALID
0xC000117A ERR_HIL_HW_COMPATIBILITY_INVALID
0xC000117B ERR_HIL_HW_OPTIONS_INVALID
0xC000117C
ERR_HIL_INIT_FAULT_FTL
0xC000117D ERR_HIL_MD5

More error codes can be found in Hil_Results.h or Firmware update.