Didj BootLoader Firmware Updating

From eLinux.org
Revision as of 03:06, 14 March 2010 by PhilKll (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This is a method that should work with nothing more than USB connectivity to update the Didj's Bootloader and Firmware. When starting up the Didj looks for new firmware and bootloader versions, by checking the Didj folder, which is accessible by USB. I haven't tested this method, but it is straight from the Didj source, so it should work.

Firmware Update

When the script /usr/bin/launch_main runs, it runs the fwcheck command, which checks for new firmware that has been uploaded to the Didj by either of these means. (from the fwcheck help)

1) If a directory named firmware-* exists in the DEVICE_ROOT (i.e., /Didj) and contains any files other than the meta.inf file. If multiple firmware-* directories exist, the one with the latest version is installed.

2) If a package named firmware-*.lfp exists in the default DEVICE_ROOT (i.e.,/Didj) whose version is different than the current firmware version. If multiple such packages exist, the one with the greatest version is installed.


for the bootloader (from the bwcheck help)

1) An unpacked .lfp package is found in /Didj/Base/bootstrap-*/ that contains the bootloader image lightning-boot.bin whose md5 sum differs from that of the installed bootloader.

2) A package named bootstrap-*.lfp exists in the default DEVICE_ROOT (i.e., /Didj) whose lightning-boot.bin has a different md5 sum than that of the currently installed bootloader.

if any of these are true, launch_main sets new_state FIRMWARE_UPDATE_STATE, launch_main is the "state machine" it looks to loop thru all the possibilities until it either launches AppManager, or shuts down. There is also bwcheck-cart and fwcheck-cart, which check for bootloader and firmware updates from the cartridges.


It is possible to brick your Didj messing with these files, I recommend you know what you are doing, before replacing these files.