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