diff options
| author | Matthias Fuchs <matthias.fuchs@esd.eu> | 2011-11-24 16:36:06 +0100 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2011-12-01 09:10:44 +0100 | 
| commit | a6569c63b368efeff262e11586319b8c8515ca00 (patch) | |
| tree | 9ac7acfcd0e8cbc5838ee9694189e27196113332 | |
| parent | baa3713fe258b7a970602438916fed9b5b267f82 (diff) | |
| download | olio-uboot-2014.01-a6569c63b368efeff262e11586319b8c8515ca00.tar.xz olio-uboot-2014.01-a6569c63b368efeff262e11586319b8c8515ca00.zip | |
ppc4xx: fix PMC440 painit command
This patch fixes the PMC440 BSP command painit. The implementation was
broken since the step to the new environment handling.
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
Signed-off-by: Stefan Roese <sr@denx.de>
| -rw-r--r-- | board/esd/pmc440/cmd_pmc440.c | 17 | 
1 files changed, 15 insertions, 2 deletions
| diff --git a/board/esd/pmc440/cmd_pmc440.c b/board/esd/pmc440/cmd_pmc440.c index 02028768f..f1ffb7b54 100644 --- a/board/esd/pmc440/cmd_pmc440.c +++ b/board/esd/pmc440/cmd_pmc440.c @@ -342,7 +342,8 @@ U_BOOT_CMD(  #if defined(CONFIG_PRAM)  #include <environment.h> -extern env_t *env_ptr; +#include <search.h> +#include <errno.h>  int do_painit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  { @@ -351,6 +352,10 @@ int do_painit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	u32 param;  	ulong *lptr; +	env_t *envp; +	char *res; +	int len; +  	v = getenv("pram");  	if (v)  		pram = simple_strtoul(v, NULL, 10); @@ -384,7 +389,15 @@ int do_painit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	/* env is first (4k aligned) */  	nextbase -= ((CONFIG_ENV_SIZE + 4096 - 1) & ~(4096 - 1)); -	memcpy((void*)nextbase, env_ptr, CONFIG_ENV_SIZE); +	envp = (env_t *)nextbase; +	res = (char *)envp->data; +	len = hexport_r(&env_htab, '\0', &res, ENV_SIZE, 0, NULL); +	if (len < 0) { +		error("Cannot export environment: errno = %d\n", errno); +		return 1; +	} +	envp->crc = crc32(0, envp->data, ENV_SIZE); +  	*(--lptr) = CONFIG_ENV_SIZE;     /* size */  	*(--lptr) = base - nextbase;  /* offset | type=0 */ |