[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