Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Import Macro Repair


(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.


Panel
bgColor#ffffff
titleQ

What would be checked when maintenance firmware try to install the new loadable firmware?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.

Panel
bgColor#ffffff
titleA

The maintenance firmware (MFW) will check the following information againt firmware(LFW) device header, if they are not identical, the MFW will not install the new firmware.

To load the new firmware, the device header of firmware should be changed using Tag list Editor or the information on netX 90 flash device lable (FDL) should be changed accordingly.

Manufacture ID

Device class

Hardware compatiblility

Hardware options

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.

Image Added

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).

Image Added

Image Added

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.

Image Added

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.

Image Added

Image Added

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.)

Image Added


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.

Image Added

Panel
bgColor#ffffff
titleSee also...

Filter by label (Content by label)
showLabelsfalse
spaces@self
showSpacefalse
cqllabel = "faq" and space = currentSpace ( )
labelsfaq