[U-Boot] howto deal with nested $() in bootenv?

Wolfgang Denk wd at denx.de
Fri Mar 5 12:50:14 CET 2010


Dear Arno Steffen,

In message <804f0d21003042336t222c9e65v18ab2f193ff3e81 at mail.gmail.com> you wrote:
>
> I read that chapter and changed to
> set bootargs_nfs    'setenv bootargs mem=128M console=ttyS2,115200n8
> noinitrd rw root=/dev/nfs nfsroot=${serverip}:/opt/rootfs, nolock'
> set boot_nfs		'run bootargs_nfs addip; printenv bootargs; tftpboot
> 0x80000000 uImage;  bootm 0x80000000'
> set bootcmd run boot_nfs
>
> The result keeps the same. For some strange reason I can see the
> result of printenv command, that I inserted for debug purposes. The
> serverip is not replaced.
> What is working is executing to type
>
> "run bootargs_nfs addip" as a single command line
> "print bootargs" than returns the correct:
> bootargs=mem=128M console=ttyS2,115200n8 noinitrd rw root=/dev/nfs > nfsroot=192.1
> 68.90.230:/opt/rootfs, nolock ip=192.168.90.202:192.168.90.230:192.168.90> .1:255.
> 255.255.0::eth0:on
>
> This single line seems to be executed in a different way?!

This most probably means that the "serverip" which does not get
substituted is not the "serverip" you tink it is, i. e. eventually it
contains some non-printing characters or control sequences. I
recommend to re-enter the complete variable definition. Do not copy &
paste, but re-type it from scratch. Then test again.

You can also run "md" on the sector where your environment is stored,
and check what's actually stored there.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I haven't lost my mind -- it's backed up on tape somewhere.


More information about the U-Boot mailing list