[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