Message ID | 1324580395-27004-1-git-send-email-marathon96@gmail.com |
---|---|
State | Accepted |
Headers | show |
Dear Grant Erickson, In message <1324580395-27004-1-git-send-email-marathon96@gmail.com> 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. > > Signed-off-by: Grant Erickson <marathon96@gmail.com> > --- > tools/env/fw_env.c | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) Applied, thanks. Best regards, Wolfgang Denk
Dear Wolfgang, On 05.01.2012 16:59, Wolfgang Denk wrote: > Dear Grant Erickson, > > In message <1324580395-27004-1-git-send-email-marathon96@gmail.com> 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. >> >> Signed-off-by: Grant Erickson <marathon96@gmail.com> >> --- >> 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
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@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
Dear Daniel Mack, In message <4F1D60E8.4030609@lertes.de> 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. > /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. > 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
On Monday 23 January 2012 07:23:09 Andreas Bießmann wrote: > On 05.01.2012 16:59, Wolfgang Denk wrote: > > Grant Erickson 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. > >> > >> Signed-off-by: Grant Erickson <marathon96@gmail.com> > >> --- > >> > >> 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/ ? update your patch to take the new code into account. you're going to have to rebase anyways to get it merged. -mike
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index 996682e..2185be9 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -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';
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> --- tools/env/fw_env.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)