summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2010-10-05 14:17:00 +0200
committerWolfgang Denk <wd@denx.de>2010-10-06 22:34:30 +0200
commit60f7da1f421cbbf6f54f3e9cde4e25b0a23a928a (patch)
tree86e725eca65b6c4fc64a2b6ecf4a041d579523d3 /common
parenta7d54346e025d91bb4413c61b5f5ec13ae2a6bfc (diff)
downloadu-boot-imx-60f7da1f421cbbf6f54f3e9cde4e25b0a23a928a.zip
u-boot-imx-60f7da1f421cbbf6f54f3e9cde4e25b0a23a928a.tar.gz
u-boot-imx-60f7da1f421cbbf6f54f3e9cde4e25b0a23a928a.tar.bz2
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 these fixups for this sub command table too. Tested on arm/qong board. mips board (Ben NanoNote) from Xiangfu Liu arm/AT91 board from Reinhard Meyer Signed-off-by: Heiko Schocher <hs@denx.de> cc: Wolfgang Denk <wd@denx.de> cc: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> cc: Xiangfu Liu <xiangfu@openmobilefree.net> cc: Reinhard Meyer <u-boot@emk-elektronik.de> cc: sshtylyov@mvista.com
Diffstat (limited to 'common')
-rw-r--r--common/cmd_nvedit.c7
-rw-r--r--common/env_common.c5
2 files changed, 12 insertions, 0 deletions
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index c3d63b8..3d30c32 100644
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -837,6 +837,13 @@ 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);