[U-Boot-Users] 1.3.3-rc3 - release status

Joakim Tjernlund joakim.tjernlund at transmode.se
Tue May 6 14:37:47 CEST 2008


On Tue, 2008-05-06 at 13:16 +0200, Remy Bohmer wrote:
> Hello All,
> 
> I have found the root-cause of these problems:
> 
> >  > * The environment variables work strange. When the environment section
> >  > in dataflash has been erased (fresh install), the first boot will
> >  > produce garbage when the 'printenv'  command is executed. (It even
> >  > reports that the size of the environment is bigger than possible.)
> >  > * the 'saveenv' command corrects this, but I can store many variables
> >  > with the same name in the environment, I can, for example, enter 10
> >  > 'ipaddr' variables, if I want to, at the same time. 'printenv' will
> >  > list them all, but only the first one is used.
> 
> They appear to be caused by this git-commit
> =================================================
> c0559be371b2a64b1a817088c3308688e2182f93 is first bad commit
> commit c0559be371b2a64b1a817088c3308688e2182f93
> Author: Joakim Tjernlund <joakim.tjernlund at transmode.se>
> Date:   Mon Apr 14 23:01:50 2008 +0200
> 
>     Change env_get_char from a global function ptr to a function.
> 
>     This avoids an early global data reference.
> 
>     Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
> =================================================
> 
> _Without_ this commit, the environment storage works properly.
> 
> So, this is what happens: (we assume an erased environment section in
> dataflash)
> In the old situation the malloc-ed memory area was used for all
> environment read/writes, once it was created. (And saveenv updates the
> flash)
> With this commit the environment is set to be valid after doing a
> memory allocation and fill it with the default values.
> However, this flag (gd->env_valid) is also used to determine if the
> environment must be read from memory or directly from flash by
> env_get_char().
> The data flash is not updated before/after the flag is set to valid,
> so every new read will be done from the non-initialised data flash,
> and thus resulting in bogus data.
> This causes both problems above.
> 
> So, Wolfgang, probably it is better to undo this commit for now, until
> it is fixed? It is a bug in 1.3.3-rc3...

Hmm, if reverted it won't get fixed.
What happens if you modify to this:
 if ((gd->flags & GD_FLG_RELOC) && (gd->env_valid == 1))

   Jocke
> 
> I believe that this bug will also show up in the at91sam9260-ek tree.
> I bet Stelian will also run into these problems when he uses the
> latest git version... :-)
> 
> 
> Kind Regards,
> 
> Remy
> 




More information about the U-Boot mailing list