Skip to contentSkip to conversation

tools/env: allow overwrite of ethaddr on default

PATCH New Grant Erickson 5 participants 6 messages Dec 22, 2011 – Jan 23, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 tools/env/fw_env.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
tools/env/fw_env.c +12 -2
index 996682e..2185be9 100644
@@ -45,6 +45,8 @@
 
 #include "fw_env.h"
 
+#include <config.h>
+
 #define WHITESPACE(c) ((c == '\t') || (c == ' '))
 
 #define min(x, y) ({				\
@@ -390,15 +392,23 @@ 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';
Signature · 1 line
1.7.7.3
#1 lore raw

PATCH 1/1 tools/env: allow overwrite of ethaddr on default

Dear Grant Erickson,

Quoted 11 lines · In message <[email protected]> you wrote:

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.

---
 tools/env/fw_env.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 7 lines
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
The Buddha, the Godhead, resides quite as comfortably in the circuits
of a digital computer or the gears of a cycle transmission as he does
at the top of a mountain or in the petals of a flower.
            - R.  Pirsig, "Zen and the Art of Motorcycle Maintenance"
#2 lore raw

PATCH 1/1 tools/env: allow overwrite of ethaddr on default

Dear Wolfgang,

Quoted 10 lines · Wolfgang Denk

Dear Grant Erickson,

Quoted 7 lines · In message <[email protected]> you wrote:

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.

Quoted 6 lines
Quoted 4 lines
---
 tools/env/fw_env.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

Applied, thanks.

This patch breaks building 'env' without board configuration. This is bad cause our automatic build environment build this tool for different boards. Specific configuration is done via /etc/fw_env.config. Can't we use some build-time configuration like
http://patchwork.ozlabs.org/patch/120372/ ?

best regards

Andreas Bie?mann

#3 lore raw

[U-Boot] Toradex Colibri, PXA-270 (ARM)

Hello,

i recently stumbled upon a compile-error which appears after trying to compile via

/./MAKEALL --arch arm --cpu pxa --vendor toradex/

, it appears U-Boot uses software-FP whereas the native XScale-libs use hardware-FP, see for yourself please :

/[dmack at Blizzard ~/workspace/u-boot]$ ./MAKEALL --arch arm --cpu pxa --vendor toradex/

/Configuring for colibri_pxa270 board.../

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_udivsi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_udivsi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_divsi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_divsi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_umodsi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_umodsi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_modsi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_modsi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_dvmd_lnx.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_dvmd_lnx.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_lshrdi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_lshrdi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_ashldi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_ashldi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_udivdi3.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_udivdi3.oS)/

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_clz.oS) uses hardware FP, whereas u-boot uses software FP/

/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_clz.oS)/

/make: *** [u-boot] Fehler 1/

/size: './u-boot': No such file/

/--------------------- SUMMARY ----------------------------/

/Boards compiled: 1/

/Boards with warnings or errors: 1 ( colibri_pxa270 )/

/----------------------------------------------------------/

Is there a solution for this, am i missing something?

Best regards,

Daniel

#4 lore raw

[U-Boot] Toradex Colibri, PXA-270 (ARM)

Dear Daniel Mack,

Quoted 8 lines · In message <[email protected]> you wrote:

i recently stumbled upon a compile-error which appears after trying to compile via

/./MAKEALL --arch arm --cpu pxa --vendor toradex/

, it appears U-Boot uses software-FP whereas the native XScale-libs use hardware-FP, see for yourself please :

This is a tool chain problem. You should get one that supports soft-FP, especially on processors that don;t have a FPU in the first place.

Quoted 1 line

/arm-linux-ld: ERROR: /usr/lib/gcc/arm-xscale-linux-gnu/3.4.6/libgcc.a(_udivsi3.oS) uses hardware FP, whereas u-boot uses software FP/

GCC 3.4 has always been (in)famous for causing issues, especially on ARM. And it is so old that you can consider it unsupported.

Quoted 1 line

Is there a solution for this, am i missing something?

I guess you did not bother to check the mailing list archives? You should.

Best regards,

Wolfgang Denk

Signature · 4 lines
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
Often it is fatal to live too long.                          - Racine
#5 lore raw

PATCH 1/1 tools/env: allow overwrite of ethaddr on default

In reply to Andreas Bießmann
Quoted 15 lines · On Monday 23 January 2012 07:23:09 Andreas Bie?mann wrote:
Quoted 14 lines · Wolfgang Denk
Quoted 12 lines · Grant Erickson

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.

---

 tools/env/fw_env.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
Quoted 7 lines
Quoted 1 line

Applied, thanks.

This patch breaks building 'env' without board configuration. This is bad cause our automatic build environment build this tool for different boards. Specific configuration is done via /etc/fw_env.config. Can't we use some build-time configuration like
http://patchwork.ozlabs.org/patch/120372/ ?

update your patch to take the new code into account. you're going to have to rebase anyways to get it merged.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120123/58dedffa/attachment.pgp>