[U-Boot-Users] Re: Using u-boot as application-firmware upgrader / Performing logical operations?

Martin Egholm Nielsen martin at egholm-nielsen.dk
Wed Dec 22 13:29:43 CET 2004


Hi Wolfgang,

>>I have plans of using u-boot as the last-and-ever-working 
>>application-firmware-upgrade (in case my Linux [from NAND] is somehow 
>>damged).
> You're not the first to implement this. See the existing code.
Can you please guide me to where?

>>Hence my plans are that U-boot should perform the following on startup:
>>1) Try fetching new application-image using tftp against some hardcoded 
>>address
> Why a hardcoded address instead of the usual, configurable mechanism?
Because there is no keyboard, nor any display attached to the board.

>>2) Timeout after 2 secs if no connection (skip to pt 5) (logigs needed)
> A timeout is probably not what you want. And how do  you  define  "no
> connection"?  There  is  many  steps  for  a  TFTP download which can
> produce errors, and you will need to handle them - a  simple  timeout
> may  as  well kill running download, or otherwise stuck downloads may
> hang your system.
That's right! But in case there is no tftpserver responding within x 
seconds, the commands should abandon.
Hence, what I'd like, was a way to determine if the download was 
successfull - e.g. by comparing the return value for the command.

>>3) Perform some simple validation of the image - e.g. check that the 
>>last bytes of the image is "egholm" (logics needed)
> Why  not  use  the  built-in  verification  (through  CRC   checksum.
> timestamp, image name etc.) ? See for example board/trab/auto_update.c
Ok, I see your point.
I was hoping to perform the logics using some scripting functionality in 
u-boot (although http://www.denx.de/twiki/publish/DULG/UBootScripts.html 
is quite empty).

As you mention, many before me has done (requested) this, but we all run 
different boards. Hence, wouldn't it be nice if one could use some 
"standard" u-boot runtime scripting to do this, instead of having to 
write the "same" update code in each of our boards' init-blocks?

Of course, the boards' hardware configurations are different, but they 
often have a common denominator - namely serial- and ethernet-connections.

>>I reckon there is a problem with 2) where the remainder of the script 
>>should only run in case the tftp-action went well. And the same goes for 3).
>>Does this idea have a future?
> The ide is OK. It has been implemented before. But  I  disagree  with
> your  approach, at least as far as the timeout and image verification
> are concerned.
Maybe we should gather this information in twiki... Any references?

BR,
  Martin Egholm





More information about the U-Boot mailing list