Firmware update can't be done without physicall access to the device and
requires you to have
preconfigured update server with
the firmware update file (if you're updating over network),
and configured
TPS firmware update settings.
If you have firmware update source and set firmware update settings
as mentioned above, grab your Linux TPS device and...
If everything is done correctly bootloader will start the firmware update
procedure by uploading firmware update file from media or network into RAM
and write it to NAND then.
During the upload step blue LEDS will light chaotically.
On firmware write step blue LEDS will sign the numerical part number in a
binary form.
Please do not interrupt firmware write process
Right after firmware update (failed or successfull) bootloader will start
operating system.
Read more on status LEDS signals if you run into
problems.
Serial console how to attach?
may give you more information about firmware update process.
Firmware update file is the binary file that have the global technical header
and may contain several parts with it's own technical headers and conditions.
Each part of the file have a checksum, description and other technical
information that's used in update procedure.
You can see some of it's information headers in serial console (if available)
during the update process.
After download firmware update file from media or network into RAM it
will be checked and
if any byte of it is corrupted it will not be flashed. Bootloader will
continue normal boot then.
Here is example of the serial console output while firmware update process is running:
Forced TFTP source 'upd.itb' for update link up on port 0, speed 100, full duplex Using cpsw device TFTP from server 192.168.75.150; our IP address is 192.168.75.210 Filename 'upd.itb'. Load address: 0x82000000 Loading: *################################################################# ################################################################# .... ################################## 1.6 MiB/s done Bytes transferred = 268284493 (ffdb24d hex) Processing update 'update@1' :sha1+ 'tps-upd-to'='NAND.SPL0' Doing upd from 0x820000B8 size 0x122C0 at NAND.SPL0 Erase off:0 len:20000 Erasing at 0x0 -- 100% complete. Done upd offset:0x0 lim:0x20000, actually wrote:0x122C0 /ret:0 Processing update 'update@2' :sha1+ 'tps-upd-to'='NAND.SPL1' Doing upd from 0x82012448 size 0x122C0 at NAND.SPL1 Erase off:20000 len:20000 Erasing at 0x20000 -- 100% complete. Done upd offset:0x20000 lim:0x20000, actually wrote:0x122C0 /ret:0 Processing update 'update@3' :sha1+ 'tps-upd-to'='NAND.SPL2' Doing upd from 0x820247D8 size 0x122C0 at NAND.SPL2 Erase off:40000 len:20000 Erasing at 0x40000 -- 100% complete. Done upd offset:0x40000 lim:0x20000, actually wrote:0x122C0 /ret:0 Processing update 'update@4' :sha1+ 'tps-upd-to'='NAND.SPL3' Doing upd from 0x82036B68 size 0x122C0 at NAND.SPL3 Erase off:60000 len:20000 Erasing at 0x60000 -- 100% complete. Done upd offset:0x60000 lim:0x20000, actually wrote:0x122C0 /ret:0 Processing update 'update@5' :sha1+ 'tps-upd-to'='NAND.u-boot' Doing upd from 0x82048EFC size 0x8A0DC at NAND.u-boot Erase off:140000 len:140000 Erasing at 0x140000 -- 10% complete. .. Erasing at 0x260000 -- 100% complete. Done upd offset:0x140000 lim:0x140000, actually wrote:0x8A0DC /ret:0 Processing update 'update@6' :sha1+ 'tps-upd-to'='NAND.kernel-dts0' Doing upd from 0x820D30A8 size 0x86A6 at NAND.kernel-dts0 Erase off:280000 len:20000 Erasing at 0x280000 -- 100% complete. Done upd offset:0x280000 lim:0x20000, actually wrote:0x86A6 /ret:0 Processing update 'update@7' :sha1+ 'tps-upd-to'='NAND.kernel-dts1' Doing upd from 0x820DB838 size 0x86A6 at NAND.kernel-dts1 Erase off:2A0000 len:20000 Erasing at 0x2a0000 -- 100% complete. Done upd offset:0x2A0000 lim:0x20000, actually wrote:0x86A6 /ret:0 Processing update 'update@8' :sha1+ 'tps-upd-to'='NAND.kernel' Doing upd from 0x820E3FC4 size 0x3B6FF8 at NAND.kernel Erase off:2C0000 len:500000 Erasing at 0x2c0000 -- 2% complete. ... Erasing at 0x7a0000 -- 100% complete. Done upd offset:0x2C0000 lim:0x500000, actually wrote:0x3B6FF8 /ret:0 Processing update 'update@9' :sha1+ 'tps-upd-to'='NAND.rootfs' Doing upd from 0x8249B098 size 0xFB40000 at NAND.rootfs Erase off:7C0000 len:1F840000 Erasing at 0x7c0000 -- 0% complete. Erasing at 0xcc0000 -- 1% .... Erasing at 0x1ffe0000 -- 100% complete. Done upd offset:0x7C0000 lim:0x1F840000, actually wrote:0xFB40000 /ret:0 .... Hit any key to stop autoboot: 1 0 Booting from nand ... NAND read: device 0 offset 0x280000, size 0x20000 131072 bytes read: OK