[U-Boot] U-boot env variables parsing

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Apr 1 14:56:25 CEST 2010


Wolfgang Denk <wd at denx.de> wrote on 2010-04-01 14:47:45:
>
> Dear Joakim Tjernlund,
>
> In message <OFEBF95CA1.44E68372-ONC12576F8.0043F4F7-C12576F8.
> 0044D7F5 at transmode.se> you wrote:
> >
> >  linuxip=ip=$(ipaddr)::$(gatewayip):$(netmask):$(hostname):$(linuxif):off
> >  tboot=setenv bootargs $(linuxroot) $(linuxip) $(extra);tftp 100000; bootm 100000
> >
> > it was fairly simple to do but I don't think WD applied it since the old
> shell was obsolete
>
> I don't think you ever posted this before. I cannot find any trace of
> such a patch - not in the public archives nor locally.

I think I did, but this would have been late 2001 or 2002 I think :)
Not 100% sure about the date since the old CVS log looks a bit fishy
after the repo got converted to Subversion.

>
> >        /* find macros in this token and replace them */
> > -      process_macros (token, finaltoken);
> > +      if(process_macros (token, finaltoken)){
> > +        strcpy(tmptoken,finaltoken);
> > +        while(process_macros (tmptoken, finaltoken))
> > +         strcpy(tmptoken,finaltoken);
> > +      }
>
> Hm... will this not make escaping impossible? Assume you want to pass
>
>    arg=${name}
>
> to Linux. How would you escape this so it does NOT get expanded if
> you run process_macros() arbitrarily often?

Possibly, I never needed that though.
One would probably need to add an escape char for that. Something
like arg=\${name}

 Jocke



More information about the U-Boot mailing list