The update mechanism corresponds to the USB Device Class Specification for Device Firmware Upgrade.The purpose of this specification is to provide a multipurpose mechanism for updating the software of a device fitted with USB--for example, a mechanism independent of the manufacturer and specific hardware platform.Under the Openmoko project, DFU is part of a modified version of the U-Boot bootloader.The project also involves the development of the DFU-Util utility, which helps send and write software to the internal NAND memory of the device and writes the program to its random-access memory.An important part of the update process is checking the version of the received files and their integrity.You can do this using such algorithms as MD5, CRC32 and so forth.
If you perform the update process using a program in the OS, you can copy the necessary files from the server using the wget application or the libcurl library.
If the firmware fails an integrity check, the loader will be considered damaged, and it automatically will go into loader mode until the firmware is loaded over the network.
You then can download the new firmware from the PC via TFTP.
Finally, the system launches custom applications stored in the last section of the Flash memory.
So obviously, it's necessary to update the memory sections with user applications and the OS kernel. Sections of the Flash Memory of a Linux-Based Device Events for starting the update process include: You can copy update files though plug media or receive them over the network (in case the system is fitted with an Ethernet port or a Wi-Fi module).This tutorial provides a general description of updating Linux-based firmware and illustrates it with some specific implementations.