mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
tools/env: allow overwrite of ethaddr on default
This patch allows the U-Boot user space companion utility, fw_setenv, to overwrite the 'ethaddr' key/value pair if the current value is set to a per-board-configured default. This change allows 'fw_setenv' to match the behavior of 'setenv' / 'env set' on the U-Boot command line. Signed-off-by: Grant Erickson <marathon96@gmail.com> Fixed excessive white space. Signed-off-by: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
145afab32c
commit
aa701b9433
1 changed files with 11 additions and 2 deletions
13
tools/env/fw_env.c
vendored
13
tools/env/fw_env.c
vendored
|
@ -45,6 +45,8 @@
|
|||
|
||||
#include "fw_env.h"
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#define WHITESPACE(c) ((c == '\t') || (c == ' '))
|
||||
|
||||
#define min(x, y) ({ \
|
||||
|
@ -390,15 +392,22 @@ int fw_env_write(char *name, char *value)
|
|||
* Delete any existing definition
|
||||
*/
|
||||
if (oldval) {
|
||||
#ifndef CONFIG_ENV_OVERWRITE
|
||||
/*
|
||||
* Ethernet Address and serial# can be set only once
|
||||
*/
|
||||
if ((strcmp (name, "ethaddr") == 0) ||
|
||||
(strcmp (name, "serial#") == 0)) {
|
||||
if (
|
||||
(strcmp(name, "serial#") == 0) ||
|
||||
((strcmp(name, "ethaddr") == 0)
|
||||
#if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) && defined(CONFIG_ETHADDR)
|
||||
&& (strcmp(oldval, MK_STR(CONFIG_ETHADDR)) != 0)
|
||||
#endif /* CONFIG_OVERWRITE_ETHADDR_ONCE && CONFIG_ETHADDR */
|
||||
) ) {
|
||||
fprintf (stderr, "Can't overwrite \"%s\"\n", name);
|
||||
errno = EROFS;
|
||||
return -1;
|
||||
}
|
||||
#endif /* CONFIG_ENV_OVERWRITE */
|
||||
|
||||
if (*++nxt == '\0') {
|
||||
*env = '\0';
|
||||
|
|
Loading…
Reference in a new issue