Hi Felix,

On Monday 22 June 2009 13:08:17 Felix Radensky wrote:
> This patch fixes 2 problems with FDT EBC mappings on Canyonlands.
> First, NAND EBC mapping was missing, making Linux NAND driver
> unusable on this board. Second, NOR remapping code assumed that
> NOR is always on CS0, however when booting from NAND NOR is on CS3.
> ---
>  board/amcc/canyonlands/canyonlands.c |   38
> ++++++++++++++++++++++++++------- include/configs/canyonlands.h        |   
> 2 +
>  2 files changed, 32 insertions(+), 8 deletions(-)
>
> diff --git a/board/amcc/canyonlands/canyonlands.c
> b/board/amcc/canyonlands/canyonlands.c index 2b74689..78c32b0 100644
> --- a/board/amcc/canyonlands/canyonlands.c
> +++ b/board/amcc/canyonlands/canyonlands.c
> @@ -577,20 +577,42 @@ int misc_init_r(void)
>  #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
>  void ft_board_setup(void *blob, bd_t *bd)
>  {
> -     u32 val[4];
>       int rc;
> +     int i;
> +     u32 bxcr;
> +     u32 ranges[EBC_NUM_BANKS * 4];
> +     u32 *p = ranges;
> +     char *ebc_path = "/plb/opb/ebc";
>
>       ft_cpu_setup(blob, bd);
>
> +     /*
> +      * Read 4xx EBC bus bridge registers to get mappings of the
> +      * peripheral banks into the OPB/PLB address space
> +      */
> +     for (i = 0; i < EBC_NUM_BANKS; i++) {
> +             mtdcr(ebccfga, EBC_BXCR(i));
> +             bxcr = mfdcr(ebccfgd);
> +
> +             if ((bxcr & EBC_BXCR_BU_MASK) != EBC_BXCR_BU_NONE) {
> +                     *p++ = i;
> +                     *p++ = 0;
> +                     *p++ = bxcr & EBC_BXCR_BAS_MASK;
> +                     *p++ = EBC_BXCR_BANK_SIZE(bxcr);
> +             }
> +     }

This is a copy from cpu/ppc4xx/fdt.c. I suggest you just call 
__ft_board_setup() and just additionally fixup the canyonlands specifics to 
not duplicate this code.

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
=====================================================================
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to