[U-Boot] [PATCH 2/3] Automatic software update from TFTP server

Bartlomiej Sieka
2008-09-25T09:49:55Z

Wolfgang Denk wrote:
> Dear Bartek,
>
> in message <48DB48F5.3010204@semihalf.com> you wrote:
>>> I think "auto-update" is not a good name (especially since it has a
>>> different meaning than the similar sounding "autoload"0; also there is
>>> a typo in "sofware".
>>>
>>> But most of all - do we really need a new environment variable? What's
>>> wrong with our good old "bootfile" ?
>> The only concern here is the interaction with bootp and dhcp commands --
>> they will set the "bootfile" env. variable to the file name
>> got from the server, and the next time around U-Boot will try to use
>> that file name to get the update. So I'd rather stick with a separate
>> env. variable for the name of the update file.
>
> I see. Maybe we should call the variable "updatefile" or similar,
> then?

How about "au_file"? "updatefile" suffers from similarity to the
commonly used (although not documented) "update" env. variable. But I'm
fine either way, just let me know what you prefer.

[...]
>>>> @@ -290,6 +293,10 @@ void main_loop (void)
>>>> char bcs_set[16];
>>>> #endif /* CONFIG_BOOTCOUNT_LIMIT */
>>>>
>>>> +#if defined(CONFIG_AU_TFTP)
>>>> + au_tftp ();
>>>> +#endif /* CONFIG_AU_TFTP */
>>>> +
>>>> #if defined(CONFIG_VFD) && defined(VFD_TEST_LOGO)
>>>> ulong bmp = 0; /* default bitmap */
>>>> extern int trab_vfd (ulong bitmap);
>>> You definitely don't want to add the function call right in the
>>> middle of variable declarations, or do you?
>> The idea is to have au_tftp() called as early as possible, before any
>> other functions in main_loop().
>
> Yes, but this is C, not C++, so declarations go only at the bginning
> of the function, then follows code (and no more declarations unless
> you open a new block).
>
>> So if we move the call to au_tftp() someplace below, then when
>> both CONFIG_VFD and VFD_TEST_LOGO are defined, we'll have a call to
>> trab_vfd(), which will happen before the software update.
>
> So you will either have to add some more #ifdef's, or think what
> could happen if the VFD (Vacuum Fluorescent Display) initialization
> code runs first - I would not expect any negative impact?

I don't think there will be any negative impact per se, the update
procedure will just start a bit later (the time needed to display the
bitmap on the FVD).

Will move au_tftp() call till after the VFD stuff.

Regards,
Bartlomiej Sieka