Merge "WindCharger: Fix shared variable mapping being set in RO buf."
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index a34f20f..10673b8 100755
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -130,7 +130,7 @@
if (k < 0) {
continue;
}
- if (is_sysvar_shared(name)) {
+ if (get_sysvar_shared(name)) {
puts(">>> ");
}
puts (name);
@@ -393,10 +393,16 @@
printf ("Usage:\n%s\n", cmdtp->usage);
return 1;
}
- if (argc >= 2 && is_sysvar_shared(argv[1])) {
- printf("ERR: %s is a sysvar-shared variable.\n"
- " Please use setvar/sysvar instead\n", argv[1]);
- return 1;
+ if (argc >= 2) {
+ const char *name = get_sysvar_shared(argv[1]);
+ if (name) {
+ printf("ERR: %s is a sysvar-shared variable.\n"
+ " Please edit '%s' using setvar/sysvar "
+ "instead\n",
+ argv[1],
+ name);
+ return 1;
+ }
}
return _do_setenv (flag, argc, argv);
diff --git a/common/cmd_sysvar.c b/common/cmd_sysvar.c
index c454649..b377b20 100644
--- a/common/cmd_sysvar.c
+++ b/common/cmd_sysvar.c
@@ -401,15 +401,28 @@
return SYSVAR_SUCCESS;
}
-int is_sysvar_shared(const char *var) {
+/*
+ * get_sysvar_shared - Determines if there's a mapping from sysvar -> uboot or
+ * vice versa.
+ *
+ * If there is a mapping:
+ * If given a sysvar name, returns the uboot env name that the sysvar name
+ * maps to. If given a uboot env name, returns the sysvar name that it maps
+ * to.
+ *
+ * If there is no mapping, returns NULL.
+ */
+const char *get_sysvar_shared(const char *var) {
int i;
for (i = 0; i < ARRAY_SIZE(su_mappings); ++i) {
- if (strcmp(var, su_mappings[i].uboot_name) == 0 ||
- strcmp(var, su_mappings[i].sysvar_name) == 0) {
- return true;
+ if (strcmp(var, su_mappings[i].uboot_name) == 0) {
+ return su_mappings[i].sysvar_name;
+ }
+ if (strcmp(var, su_mappings[i].sysvar_name) == 0) {
+ return su_mappings[i].uboot_name;
}
}
- return false;
+ return NULL;
}
const char *get_uboot_name(const char *sysvar_name) {
@@ -429,6 +442,7 @@
void set_sysvar_uboot(const char *var, const char *value) {
char *uboot_name = get_uboot_name(var);
if (uboot_name) {
+ printf(">>> mapping SV:'%s' to UB:'%s' . . .\n", var, uboot_name);
setenv(uboot_name, value);
}
}
diff --git a/include/common.h b/include/common.h
index 4a43e59..9865222 100755
--- a/include/common.h
+++ b/include/common.h
@@ -219,7 +219,7 @@
#define MAC_ADDR1_SV "MAC_ADDR1"
#define MAC_ADDR1_UB "ethaddr"
int sysvar_init(void);
-int is_sysvar_shared(const char *var);
+const char *get_sysvar_shared(const char *var);
const char *get_uboot_name(const char *sysvar_name);
void sysvar_uboot_env_clear(void);
void sysvar_uboot_env_load(void);
diff --git a/include/configs/board953x.h b/include/configs/board953x.h
index dc94ede..1b81b53 100755
--- a/include/configs/board953x.h
+++ b/include/configs/board953x.h
@@ -417,8 +417,8 @@
#define CONFIG_COMMANDS (ATH_CFG_COMMANDS | ATH_EXTRA_CMD)
-#define CONFIG_IPADDR 192.168.1.1
-#define CONFIG_SERVERIP 192.168.1.10
+#define CONFIG_IPADDR 192.168.1.2
+#define CONFIG_SERVERIP 192.168.1.1
#define CONFIG_ETHADDR 0x00:0xaa:0xbb:0xcc:0xdd:0xee
#define CFG_FAULT_ECHO_LINK_DOWN 1