
Dear Shinya Kuribayashi,
with all the discussion about relocation on ARM going on, Heiko and me wondered if we had similar problems on MIPS. Unfortunately don't we have to any MIPS board that could be used for testing.
Could you please tru and check if the current top-of-tree version of U-Boot still works on MIPS systems? Please check especially if the new environment commands work, i. e. please try out:
printenv versus env print saveenv versus env save
Thanks in advance!
Best regards,
Wolfgang Denk

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Wolfgang Denk
since my board (Ben NanoNote) is mips. so I test the those commands in my board.
printenv, saveenv: works fine. env print, evn save: make U-Boot hang. (then I must reset the board)
- -- my board patch never touch the common/ folder.
if I have time I will try to debug.
On 10/04/2010 09:03 PM, Wolfgang Denk wrote:
Dear Shinya Kuribayashi,
with all the discussion about relocation on ARM going on, Heiko and me wondered if we had similar problems on MIPS. Unfortunately don't we have to any MIPS board that could be used for testing.
Could you please tru and check if the current top-of-tree version of U-Boot still works on MIPS systems? Please check especially if the new environment commands work, i. e. please try out:
printenv versus env print saveenv versus env save
Thanks in advance!
Best regards,
Wolfgang Denk
- -- Best Regards Xiangfu Liu http://www.openmobilefree.net

Hello Xiangfu,
Xiangfu Liu wrote:
Hi Wolfgang Denk
since my board (Ben NanoNote) is mips. so I test the those commands in my board.
printenv, saveenv: works fine. env print, evn save: make U-Boot hang. (then I must reset the board)
as I thought ... can you try following patch:
From 276bcedbd581b11665a5424b274ae30d07245e1f Mon Sep 17 00:00:00 2001
From: Heiko Schocher hs@denx.de Date: Mon, 4 Oct 2010 10:28:58 +0200 Subject: [PATCH] env: fix cmd_env_sub fct pointers if CONFIG_RELOC_FIXUP_WORKS is not defined
commit ea882baf9c17cd142c99e3ff640d3ab01daa5cec introduces a command_sub_table for the "env" command. On arm, avr32, m68k, mips and sparc architectures, relocation needs manual fixups, so add this for this sub command table too.
Tested on the qong board.
Signed-off-by: Heiko Schocher hs@denx.de --- common/cmd_nvedit.c | 6 ++++++ common/env_common.c | 5 +++++ 2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index c3d63b8..16f5fb0 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -837,6 +837,12 @@ static cmd_tbl_t cmd_env_sub[] = { U_BOOT_CMD_MKENT(set, CONFIG_SYS_MAXARGS, 0, do_env_set, "", ""), };
+#if !defined(CONFIG_RELOC_FIXUP_WORKS) +void env_reloc(void) { + fixup_cmdtable(cmd_env_sub, ARRAY_SIZE(cmd_env_sub)); +} +#endif + static int do_env (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { cmd_tbl_t *cp; diff --git a/common/env_common.c b/common/env_common.c index a415ef8..88f068c 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -227,6 +227,11 @@ int env_import(const char *buf, int check)
void env_relocate (void) { +#if !defined(CONFIG_RELOC_FIXUP_WORKS) + extern void env_reloc(void); + + env_reloc(); +#endif if (gd->env_valid == 0) { #if defined(CONFIG_ENV_IS_NOWHERE) /* Environment not changable */ set_default_env(NULL);

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Heiko
by applied this patch. both works fine.
On 10/04/2010 10:49 PM, Heiko Schocher wrote:
Hello Xiangfu,
Xiangfu Liu wrote:
Hi Wolfgang Denk
since my board (Ben NanoNote) is mips. so I test the those commands in my board.
printenv, saveenv: works fine. env print, evn save: make U-Boot hang. (then I must reset the board)
as I thought ... can you try following patch:
From 276bcedbd581b11665a5424b274ae30d07245e1f Mon Sep 17 00:00:00 2001 From: Heiko Schocher hs@denx.de Date: Mon, 4 Oct 2010 10:28:58 +0200 Subject: [PATCH] env: fix cmd_env_sub fct pointers if CONFIG_RELOC_FIXUP_WORKS is not defined
commit ea882baf9c17cd142c99e3ff640d3ab01daa5cec introduces a command_sub_table for the "env" command. On arm, avr32, m68k, mips and sparc architectures, relocation needs manual fixups, so add this for this sub command table too.
Tested on the qong board.
Signed-off-by: Heiko Schocher hs@denx.de
common/cmd_nvedit.c | 6 ++++++ common/env_common.c | 5 +++++ 2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index c3d63b8..16f5fb0 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -837,6 +837,12 @@ static cmd_tbl_t cmd_env_sub[] = { U_BOOT_CMD_MKENT(set, CONFIG_SYS_MAXARGS, 0, do_env_set, "", ""), };
+#if !defined(CONFIG_RELOC_FIXUP_WORKS) +void env_reloc(void) {
- fixup_cmdtable(cmd_env_sub, ARRAY_SIZE(cmd_env_sub));
+} +#endif
static int do_env (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { cmd_tbl_t *cp; diff --git a/common/env_common.c b/common/env_common.c index a415ef8..88f068c 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -227,6 +227,11 @@ int env_import(const char *buf, int check)
void env_relocate (void) { +#if !defined(CONFIG_RELOC_FIXUP_WORKS)
- extern void env_reloc(void);
- env_reloc();
+#endif if (gd->env_valid == 0) { #if defined(CONFIG_ENV_IS_NOWHERE) /* Environment not changable */ set_default_env(NULL);
- -- Best Regards Xiangfu Liu http://www.openmobilefree.net

Dear Xiangfu Liu,
In message 4CA9EC8E.9080403@openmobilefree.net you wrote:
by applied this patch. both works fine.
Thanks a lot for testing. This confirms that we have a more global issue here, i. e. not only ARM is affected, but also MIPS.
Any MIPS tool chain experts out there to try and follow-up for MIPS what Albert is doing for ARM right now?
Best regards,
Wolfgang Denk

On 10/5/2010 2:02 AM, Wolfgang Denk wrote:
Dear Xiangfu Liu,
In message 4CA9EC8E.9080403@openmobilefree.net you wrote:
by applied this patch. both works fine.
Xiangfu, thank for your testing! I don't have the latest U-Boot ready for test/debug right now, nor couldn't follow the ongoing discussions precisely.
Any MIPS tool chain experts out there to try and follow-up for MIPS what Albert is doing for ARM right now?
I'll have a look at what's discussed, then think about what to do.

Dear Heiko Schocher,
printenv, saveenv: works fine. env print, evn save: make U-Boot hang. (then I must reset the board)
as I thought ... can you try following patch:
Not surprisingly, it makes env subcommands work on ARM/AT91, too:)
Thanks, Reinhard
PS: I still get the "*** Warning - bad CRC, using default environment" when relocation is on :( - of course that is a different issue from command handling... Since the env is read before relocation, I must investigate further there.
participants (5)
-
Heiko Schocher
-
Reinhard Meyer
-
Shinya Kuribayashi
-
Wolfgang Denk
-
Xiangfu Liu