[U-Boot] MIPS relocation?
Xiangfu Liu
xiangfu at openmobilefree.net
Mon Oct 4 17:02:38 CEST 2010
-----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 at 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 at 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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkyp7I4ACgkQRRAEFRxkgLR/RACgmpYBqc74PeMT3DkngPy9zuD6
bAMAoISoyBKy4A1B3aTmLdg0hFsLRYMS
=hr/V
-----END PGP SIGNATURE-----
More information about the U-Boot
mailing list