Re: [U-Boot] fw_setenv writes to bootdelay but not ethaddr

On Sunday 08 April 2012 18:16:51 Bishop, Mark wrote:
-----Original Message----- From: Mike Frysinger [mailto:vapier@gentoo.org] Sent: Sunday, April 08, 2012 5:32 PM To: Bishop, Mark Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] fw_setenv writes to bootdelay but not ethaddr
On Sunday 08 April 2012 17:15:26 Bishop, Mark wrote:
From: Mike Frysinger [mailto:vapier@gentoo.org]
On Thursday 05 April 2012 16:32:11 Bishop, Mark wrote:
root:/> fw_setenv ethaddr X1:X2:X3:X4:X5:X6 Can't overwrite "ethaddr"
looks correct to me. you probably didn't set CONFIG_ENV_OVERWRITE.
I wish it was so: #define CONFIG_ENV_OVERWRITE 1 is present in my board file.
I've checked to make sure that it is the correct header file. I've also checked to make sure that CONFIG_OVERWRITE_ETHADDR_ONCE is not
set.
I'm using the slightly outdated uclinux uboot from their head repo
and
I am checking the patches applied to the uboot head if any were to
fix
something like this.
sorry, should have been a little clearer. the tools installed by uclinux-dist do not have a config, so it uses the default one. the CONFIG_xxx settings in your u-boot don't get used. fw_printenv has to be built with those config settings. -mike
The entire conditional in fw_env_write() is wacked out.
If the value is already set, then it never sets it again.
..... if ((oldval = envmatch (name, env)) != NULL) break; }
/* * Delete any existing definition */ if (oldval) { /* * Ethernet Address and serial# can be set only once */ if ((strcmp (name, "ethaddr") == 0) || (strcmp (name, "serial#") == 0)) { fprintf (stderr, "Can't overwrite \"%s\"\n", name); errno = EROFS; return -1;
.........
I would have expected it to use a #ifdef CONFIG_OVERWRITE_ETHADDR_ONCE, but this is only supposed to be an example.
maybe the code base you're using is old. when i look at u-boot mainline, i see that being protected by "#ifndef CONFIG_ENV_OVERWRITE".
I am just going to remove the guard and move on.
should be fine as well -mike
participants (1)
-
Mike Frysinger