Didj BootLoader Firmware Updating

From eLinux.org
Revision as of 08:04, 14 April 2010 by Awesomenesser (talk | contribs) (Bootloader Update)
Jump to: navigation, search

This is a way to manually upgrade your firmware and bootloader.

Programs Needed

Terminal program, Hyperterminal or equivalent (except when using SCSI Commands)

Hardware Needed

UART connection (except when using SCSI Commands)

Files Needed

LFP packages DIDJ-0x000E0002-000001 (bootloader) and DIDJ-0x000E0003-000001 (firmware). Mostly just needed to reference what is expected to be found in the firmware and bootloader packages, or to just test it out the update process with known good files.

USB Connection

Firmware Update

This requires you create a folder with contents similar to the firmware-LF_LF1000 folder in the lfp packages, the folder name should start with "firmeware-", or if you want it should work as an lfp extension zip archive. Place the folder or archive in the /Didj/Base directory, there might be one there already. This can be done over the USB connection.

In the terminal run the command 'fwcheck' it should return a result /Didj/Base/firmware-<your name> then run 'fwupdate /Didj/Base/firmware-LF_LF1000/ > /dev/console' it should have an output like this.

# fwupdate /Didj/Base/firmware-LF_LF1000/ > /dev/console
Found /Didj/Base/firmware-LF_LF1000/
Package Integrity Test Passed
Installing kernel.bin in Kernel1 (mtd5)
Kernel install successful.
Installing erootfs.jffs2 in Linux_RFS1 (mtd6)
Rootfs install successful.
Switching from RFS0 to RFS1

Bootloader Update

Bootloader is exactly the same as firmware, but the folder is named bootstrap-LF_LF1000, the name of the folder you put on the Didj must start with 'bootstrap-'. The only files that are needed are:

lightning-boot.bin
lightning-boot.md5

In the terminal run 'blcheck' and make sure it returns /Didj/Base/bootstrap-<your name> then run 'blupdate /Didj/Base/boostrap-<your name> > /dev/console' and it should return output like.

# blupdate /Didj/Base/bootstrap-LF_LF1000/ > /dev/console
Found /Didj/Base/bootstrap-LF_LF1000/
Package Integrity Test Passed
Installing lightning-boot.bin in LF1000_uniboot (mtd0)
Bootloader install successful.

Force Update with Custom SCSI Commands

This update can be done with out a console connection, and mimics how LFConnect handles the task. They can be done at the same time.

Check out SCSI Commands for how to use SCSI Commands.

Mount the Didj usb storage

bootloader

For bootloader create a folder in /Didj/Base called bootstrap-LF_LF1000

It should have the same files as in LFP package DIDJ-0x000E0002-000001

Make sure meta.inf has a version number higher than Version="1.35.2.4222" or if you've changed the version number in your file system, higher than that one.

Then run the SCSI Command C6 "Disconnect Ok", which will cause it to say its "Learning New Tricks" before saying its okay to disconnect your Didj.

Then turn the Didj off.

This processes causes the Didj state machine to look for a folder called bootstrap-LF_LF1000, if its a newer version, which is found in meta.inf and compared to /etc/version on the Didj, it will update the files with the new ones.


firmware For the firmware create a folder in /Didj/Base called firmware-LF_LF1000

It should have the same files as in LFP package DIDJ-0x000E0003-000001

Make sure meta.inf has a version number higher than Version="1.35.2.4222" or if you've changed the version number in your file system, higher than that one.

Then run the SCSI Command C6 "Disconnect Ok", which will cause it to say its "Learning New Tricks" before saying its okay to disconnect your Didj.

Then turn the Didj off.

This processes causes the Didj state machine to look for a folder called firmware-LF_LF1000, if its a newer version, which is found in meta.inf and compared to /etc/version on the Didj, it will update the files with the new ones.

Caution

It is possible to cause a major malfunction with your Didj replacing these files, I recommend you know for sure they are working first, also double check your SCSI commands and which device they are being sent to, if you use them.