DHCOM Update Mechanism

From Wiki-DB
Revision as of 16:42, 16 July 2015 by Lzenz (talk | contribs)
Jump to navigationJump to search

The DHCOM Update Mechanism for the i.MX6 Module can be used to flash a complete system image or to replace on some parts (e.g. linux kernel) of the system. It is not necessary to have a running os. The only requirement is a running bootloader.

Overview

The following updates are supported:

  • Bootloader
  • Splashimage
  • Settings
  • copy
  • kernel
  • devicetree
  • rootfilesystem
  • finetuning
  • Display adaptor EEPROM

How does it work

Modes

== Automatically Update =="

Is called after the start of the bootloader if the environment variable bootcmd contains "update auto". The functionality tries to update the flash content via the DHupdate.ini file. The update mechanism is searching for the update files on the specified storage devices. The update devices must be defined at the settings block (Please have a look at DHCOM settings). With the DHupdate.ini file you have the possibility to run more then one updates, e.g. OS image and settings block.

Command line Update

  1. Instruction: "update"
    The functionality tries to update the flash content via the DHupdate.ini file. In contrast to Automatically Update (which you can start with "update auto") the update mechanism is searching on every available storage device for the update files.
  2. Instruction: "update <type> [filename]"
    The functionality doesn't use the DHupdate.ini file. It allows only one update and the update mechanism is searching on every available storage device for the update files. With the <type> parameter you have to specify the update type.
    The following <type> parameters are possible from command line:
    • bootloader = Bootloader update
    Note: The ENV in Flash memory is created on the first start of u-boot. If you run a bootloader update and the ENV at the new bootloader has changed, the ENV in Flash memory remains unchanged with the bootloader update. But you could delete the ENV block in flash memory before the update, then u-boot will create the new default ENV at the next start after the bootloader update.
    • eeprom = Display adaptor EEPROM update with DH settings
    • reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file.
    Note: Be careful with the reset command. You can easily build a endless update loop by mistake.
    • script = Run bootloader script.
    The [filename] parameter could be used to specify a non default filename. The default filenames are:
    • bootloader = default file name u-boot.imx
    • eeprom = default file name eeprom.bin
    • reset = no file to specify
    • script= default file name script.bin

DHupdate.ini file

The DHupdate.ini file is a text file, which describes the user specified update mechanism.
The <type> parameter could be specified as follows:
  • linux = Linux image update
  • rootfs = Create or replace the linux root-filesystem which is stored in the Flash. The rootfs update has to be the last item (or second to last item if you insert the reset command) in the DHupdate.ini file. For further Details: DHCOM Update: Linux Root Filesystem
  • bootloader = Bootloader update
  • splash = Bootbitmap update
  • settings = DHCOM Settings block update
Note: Please have a look at DHCOM settings.
  • eeprom = Display adaptor EEPROM update with DH settings
  • reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file.
Note: Be careful with the reset command. You can easily build a endless update loop by mistake.
  • script = Run bootloader script file
  • refresh = Refresh Display parameter before display update bitmaps.
Note: If you update the DHCOM settings, it is possible to use the new settings for the update progress notifications on the display, by inserting the "refresh" command to the [update] section. The bootloader loads the new settings and calls the update kernel with the new parameters. The update kernel displays the bitmaps which are specified in the display section. Example:
[update]
settings 00_PV.bin
refresh
splash DH_800x480.bmp
...
[end]
The following updates are done by the bootloader:
  • bootloader (only in case of command line update)
  • eeprom
  • script
The following updates are done by the update kernel:
For this updates u-boot loads a minimal linux kernel which does the work. We call this tiny kernel in the further description "Update Kernel". The update kernel is loaded via the env variable "load_update_kernel". These variable needs to be set before. This could be done with the update script functionality.
Before the bootloader loads the update kernel the variables "dev" and "part" will be set with the current update medium. So this variable could be used in "load_update_kernel" as placeholder for loading the update kernel from the current update device.
  • bootloader (only in case of DHupdate.ini File update)
  • linux
  • rootfs
  • settings
  • splash
The [filename] parameter could be used to specify a non default filename. The default filenames are:
  • wince = default file names nk.gz or nk.bin
  • linux = default file name uImage + default script file name uImage.env
  • rootfs = default file name fsroot.tar.gz
  • bootloader = default file name u-boot.bin
  • splash = default file name splash.bmp
  • settings = default file name settings.bin
  • eeprom = default file name eeprom.bin
  • reset = no file to specify
  • script = default file name script.bin
For DHupdate.ini File Example, please have a look at the Please have a look at Download area iMX25 or Download area AM35x.
Notes:
  • It is necessary to use UNIX End Of Line conversion!!!
  • The order of the bitmap-filenames in the section display tells the system when to display which bitmap.

.*If you use "refresh" command, please ensure that settings bin update is listed in DHupdate.ini file before "refresh" command.

Update progress LED description:
The LED GPIO is activated as soon as update has started. This takes roughly 6 - 8 seconds. If the update was finished without an error, the LED GPIO is deactivated. If an error occurs during the update the LED GPIO begins blinking.
LED error code:
1 LED blinking interval = DHupdate.ini File error (Wrong file content or no valid file found)
2 LED blinking interval = Necessary File for Update not found
3 LED blinking interval = Flash write or erase error
4 LED blinking interval = Wrong OS Image type (e.g. no WinCE *.gz or *.bin file)
5 LED blinking interval = Specified file not valid (e.g. linux *.env file)
6 LED blinking interval = Image file size is to large
7 LED blinking interval = Can't load update kernel