DescriptionA standard embedded device or module usually executes a firmware. The firmware is a file stored on the hardware either as a binary in FLASH sectors or in a file system. On netX90 and netX4000 devices, the chip internal ROM loader is responsible to start such a firmware. Because of the available options (e.g. XiP / hardware layout / security requirements), such a firmware is not always able to update itself in FLASH.
Therefore a so called Maintenance Firmware (MFW) is introduced. This firmware is a dedicated / standalone firmware offering the necessary services to update a regular firmware files (LFW). Function overview: - Basic firmware (Recovery firmware) which is started if there is no regular firmware available or if it fails to start.
- Perform a firmware download or update (replacing) an existing firmware.
- Support additional downloads for configuration and other files.
Block diagram Drawio |
---|
baseUrl | https://hilscher.atlassian.net/wiki |
---|
diagramName | MFW_overview_pub.drawio |
---|
tempPreview | MFW_overview_pub.png |
---|
width | 500 |
---|
zoom | 1 |
---|
pageId | 120423091 |
---|
custContentId | 180195715 |
---|
lbox | 1 |
---|
contentVer | 1 |
---|
height | 500 |
---|
revision | 1 |
---|
|
Starting / StoppingThe MFW can be started in multiple ways: When the MFW is started, it runs on the COM CPU and no other firmware is running in parallel (not even on the APP CPU). Executing MFW specific FunctionsThe main function of the MFW is the firmware update by installing new firmware files on the system and to offer diagnostic functions if a firmware could not be started. Furthermeore it allows a firmware to boot into maintenance mode by using specific reset commands. These reset commands can be either issued by a so call packet command (see HIL_FIRMWARE_RESET_REQ / ulResetMode parameter) or by using a special netX chip internal "Reset Save" register to detect such requests from other software components. Activating MFW Functions: - by issuing a software command (
HIL_FIRMWARE_RESET_REQ / ulResetMode) - by netX "Reset Save" register content
The netX "Reset Save" register is also used by the MFW to detect a "power up" start. In this case, the netX register will be empty and the MFW will not run any update functionality.Interaction with the netX ROM LoaderThe netX ROM Loader will automatically execute the MFW if no firmware is found or if the available firmware is corrupted. A boot image of the firmware has "chunks" (ROM loader specific data entries) storing a CRC32 checksum of the firmware. This CRC32 value is verified by the ROM Loader to decide if the firmware is usable. Furthermore, the ROM loader passes hardware information via the so called boot parameter (handover parameter) to the MFW. Alternative Boot Jumper: Some netX hardware (evaluation boards) offer a DIP switch to setup an alternative boot mode (alt. boot). This instructs the ROM loader to skip the LFW evaluation/startup and to directly start the MFW. |