[U-Boot-Users] [PATCH] mpc85xx: fix upmconfig

Detlev Zundel dzu at denx.de
Wed Jul 16 13:15:17 CEST 2008


Hi,

> This actually shouldn't work. Imagina 0xf0000000 base address that
> gets translated into 0x1e000 and causes my box to hang. Writing
> to 0xf0000000 seems the better way.
> Also don't compare against the UPM mask but agaist the MSEL mask.
>
> Cc: Sergei Poselenov <sposelenov at emcraft.com>
> Cc: Andy Fleming <afleming at freescale.com>
> Signed-off-by: Sebastian Siewior <bigeasy at linutronix.de>
> ---
>  cpu/mpc85xx/cpu.c |    7 +++----
>  1 files changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/cpu/mpc85xx/cpu.c b/cpu/mpc85xx/cpu.c
> index 0497422..2373b4a 100644
> --- a/cpu/mpc85xx/cpu.c
> +++ b/cpu/mpc85xx/cpu.c
> @@ -71,8 +71,7 @@ struct cpu_type *identify_cpu(u32 ver)
>  
>  static void set_lcb_clock(uint clkdiv)
>  {
> -	volatile immap_t *immap = (immap_t *)CFG_IMMR;
> -	volatile ccsr_lbc_t *lbc= &immap->im_lbc;
> +	volatile ccsr_lbc_t *lbc = (void *)(CFG_MPC85xx_LBC_ADDR);
>  	uint lcrr;
>  
>  	lcrr = lbc->lcrr;

This hunk does not apply for me, but the next one unbreaks the socrates
board, so

> @@ -352,8 +351,8 @@ void upmconfig (uint upm, uint * table, uint size)
>  		 i++, brp += 2, orp += 2) {
>  
>  		/* Look for a valid BR with selected UPM */
> -		if ((in_be32(brp) & (BR_V | upmmask)) == (BR_V | upmmask)) {
> -			dummy = (volatile u8*)(in_be32(brp) >> BR_BA_SHIFT);
> +		if ((in_be32(brp) & (BR_V | BR_MSEL)) == (BR_V | upmmask)) {
> +			dummy = (volatile u8*)(in_be32(brp) & BR_BA);
>  			break;
>  		}
>  	}

Acked-by: Detlev Zundel <dzu at denx.de>

Cheers
  Detlev

-- 
error compiling committee.c: too many arguments to function
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de




More information about the U-Boot mailing list