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 <h...@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 <h...@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);
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to