True.
The downgrade thing is a beast of it's own. Fact is that we're still not even sure why the lock was in place. I mean someone had a reason.
If I had to hazard a guess I'd say that because we've had so much trouble with firmware lately they didn't want to deal with older firmwares that were a problem for sure. So place a downgrade lock so that we know everyone is using the right kernel.
Which would have been fine if the code had worked.
But we have newer firmware with solid performance and it seems to work for almost everyone.
Now that you know you can downgrade, try the new stuff out. Tell me what you think.
I had enough to read this so that all understand
http://developer.ubicom.com/documents/ubicom/ultra/sdk_help_full.html
ipBootDecompressor
ipBootDecompressor implements a stand alone executable that has the ability to decompress data that has been compressed using squish or ARJ compression methods. The selection of the compression method is made while configuring a project. The compressed data is resident in the flash and it is decompressed to the SDRAM. The compressed data is the executable image of a project that has been linked to be resident and runnable from the SDRAM. The extry point for this executable is always the first location in the SDRAM. Once BootDecompressor has expanded the compressed data to the SDRAM it transfers control to the first location in the SDRAM thereby transferring control to the project. Selecting the ipBootDecompressor package in the configuration tool automatically triggers the generation of compressed images of project code. The advantage of this is reduced flash sizes. The disadvantage is that boot times will increase as time is spent decompressing the image.
If ipBootDecompressor has been included in a project it is suggested that in ipFile the Compressed Filesystem box should be unchecked. This helps create somewhat smaller flash images.
Article: In-Field Upgrade Control
The SDK supports reliable in-field upgrading of project firmware through a network connection. Four key components are involved:
Upgrade image (the new firmware image).
This must be constructed to include not only the basic firmware, but also additional functions to control the upgrade process after the firmware is uploaded. This file, whose default name is upgrade.bin, is a compressed self-extracting image.
Upload mechanism.
The upgrade image can be transferred to the target device by any mechanism. TFTP is fully supported by the SDK and the Ubicom Device Manager. HTTP requires application-level support in the form of CGIs, examples of which are available in example projects. Any other upload mechanism can be implemented by applications code.
Upgrade mechanism.
The current firmware is effectively replaced by the upgrade firmware in a single atomic operation; i.e. there is no possibility that an error could result in a partial overwrite of the original firmware. If any errors do occur, the original firmware is left intact. To ensure reliability of the upgrade process, the SDK includes checks to avoid these classes of errors:
Power failure during upgrade.
Corruption of image during storage or transmission
Attempts to upgrade to firmware intended for other type of device
Support for reliable upgrading is spread across several SDK and project components: ipHAL, ipUpgrade, upgradec, optionally ipTFTPServer and ipWebSystemUpgrade, and the Ubicom Device Manager tool, UbiDevMan.exe.
Upgrade Configuration
To make a project upgradeable, set the following configuration points:
ipUpgrade:
The ipUpgrade module must be included to enable upgrade support. It is possible to use either the external flash or the external memory as scratch pad area to store the incoming upgrade image.
Under ipUpgrade there is an "Application Identifier" option (UPGRADE_APPLICATION_IDENTIFIER). Set this to a 32-bit number that uniquely identifies the product. This value is stored in the <project>.elf and upgrade.bin file images.
You also need the .elf file from the original factory programming. The path/filename should be specified in the "Reference elf file" node under ipUpgrade. Note: to create the first factory image, "Reference elf file" must be left blank.
If you want to store the self extracting upgrade image in external memory then enable "Use Extmem" check box under the ip3k node in ipUpgrade. Storing this image in external memory does open up the possibility of losing the upgrade image because of power failure. Enable the "Emergency Upgrade Web Service" node under the "Use Extmem" node if you want an "Emergency Upgrade Web Service" encoded into the <project>.elf and upgrade.bin file images. Refer to In-Field Upgrade Introduction for more details.
During a firmware upgrade, ipUpgrade functions compare the UPGRADE_APPLICATION_IDENTIFIER of an upgrade.bin with the UPGRADE_APPLICATION_IDENTIFIER of the current firmware to ensure that the upgrade is compatible with the current firmware. If the identifiers do not match, an error is raised, and the upgrade fails without changing the current firmware.
