[U-Boot] [PATCH 01/16] Blackfin: BF60x: new processor port

Mike Frysinger vapier at gentoo.org
Wed Aug 8 06:39:53 CEST 2012


On Tuesday 07 August 2012 04:07:40 Bob Liu wrote:
> From: Mike Frysinger <vapier at gentoo.org>
> 
> Add basic support for blackfin new processor BF60x.

i had always intended to clean & split this 1 change up, but never got a 
chance before i left

>  arch/blackfin/cpu/cpu.c                            |    4 +-
>  arch/blackfin/cpu/gpio.c                           |   36 +-
>  arch/blackfin/cpu/initcode.c                       |   53 +-
>  arch/blackfin/cpu/reset.c                          |    2 +
>  arch/blackfin/cpu/serial.c                         |   65 +-
>  arch/blackfin/cpu/serial.h                         |  222 +-
>  arch/blackfin/cpu/serial1.h                        |  236 ++
>  arch/blackfin/cpu/serial4.h                        |  113 +
>  arch/blackfin/include/asm/blackfin_cdef.h          |    3 +
>  arch/blackfin/include/asm/blackfin_def.h           |    5 +
>  arch/blackfin/include/asm/blackfin_local.h         |    2 +
>  arch/blackfin/include/asm/dma.h                    |  113 +-
>  arch/blackfin/include/asm/gpio.h                   |    2 +-
>  arch/blackfin/include/asm/mach-bf609/BF609_cdef.h  |  540 +++
>  arch/blackfin/include/asm/mach-bf609/BF609_def.h   | 3752
>  arch/blackfin/include/asm/mach-bf609/anomaly.h     | 
>  arch/blackfin/include/asm/mach-bf609/def_local.h   |    5 +
>  arch/blackfin/include/asm/mach-bf609/gpio.h        |  151 +
>  arch/blackfin/include/asm/mach-bf609/portmux.h     |  251 ++
>  arch/blackfin/include/asm/mach-bf609/ports.h       |   63 +
>  arch/blackfin/include/asm/mach-common/bits/cgu.h   |   78 +
>  arch/blackfin/include/asm/mach-common/bits/dde.h   |   88 +
>  arch/blackfin/include/asm/mach-common/bits/dma.h   |    1 +
>  arch/blackfin/include/asm/mach-common/bits/pll.h   |    5 +
>  arch/blackfin/include/asm/mach-common/bits/uart4.h |   66 +
>  arch/blackfin/lib/board.c                          |    2 +-
>  arch/blackfin/lib/clocks.c                         |  128 +-
>  arch/blackfin/lib/string.c                         |   97 +-
>  include/configs/bfin_adi_common.h                  |    2 +

i would split this into at least 5 pieces:
 - gpio changes
 - dma changes
 - serial changes
 - new headers (asm/mach-bf609/* and the blackfin_{cdef,def,local} changes 
which include those)
 - core changes (cpu/reset/board/etc...)

once that's been split up, it'll be much easier to digest/review.  some 
changes i won't mind merging now, but others (see below) will clearly need 
updating first

> --- a/arch/blackfin/cpu/initcode.c
> +++ b/arch/blackfin/cpu/initcode.c
> @@ -16,17 +16,21 @@
>  #include <asm/mach-common/bits/bootrom.h>
>  #include <asm/mach-common/bits/core.h>
>  #include <asm/mach-common/bits/ebiu.h>
> -#include <asm/mach-common/bits/pll.h>
> -#include <asm/mach-common/bits/uart.h>
> +
> +#define BUG() while (1) { asm volatile("emuexcpt;"); }
> 
>  #define BUG() while (1) { asm volatile("emuexcpt;"); }

looks like you got a rebase error here

> +#if 0
> +
> +#include <asm/mach-common/bits/pll.h>

well that'll obviously need updating :)

> +#else
> +
> +#include <asm/mach-common/bits/cgu.h>
> +
> +#ifndef CONFIG_CGU_CTL_VAL
> +# define CONFIG_CGU_CTL_VAL ((CONFIG_VCO_MULT << 8) | CONFIG_CLKIN_HALF)
> +#endif
> +
> +#ifndef CONFIG_CGU_DIV_VAL
> +# define CONFIG_CGU_DIV_VAL \
> +	((CONFIG_CCLK_DIV   << CSEL_P)   | \
> +	 (CONFIG_SCLK0_DIV  << S0SEL_P)  | \
> +	 (CONFIG_SYSCLK_DIV << SYSSEL_P) | \
> +	 (CONFIG_SCLK1_DIV  << S1SEL_P)  | \
> +	 (CONFIG_DCLK_DIV   << DSEL_P)   | \
> +	 (CONFIG_OCLK_DIV   << OSEL_P))
> +#endif
> +
> +BOOTROM_CALLED_FUNC_ATTR
> +void initcode(ADI_BOOT_DATA *bs)
> +{
> +}
> +
> +#endif

there was no bootrom when i did the initial port.  i'd like to think that 
there's a bootrom now that you guys have actual silicon back.  is that not the 
case ?  this will def need implementing, otherwise how can you boot a bf60x 
cpu ?

> --- a/arch/blackfin/lib/board.c
> +++ b/arch/blackfin/lib/board.c
>
>  		"(Detected Rev: 0.%d) "
>  		"(%s boot)\n",
>  		gd->bd->bi_cpu,
> -		bfin_revid(),
> +		/*bfin_revid()*/0,
>  		get_bfin_boot_mode(CONFIG_BFIN_BOOT_MODE));
>  	return 0;
>  }

that needs implementing :)

> --- a/include/configs/bfin_adi_common.h
> +++ b/include/configs/bfin_adi_common.h

>  #ifndef CONFIG_DEBUG_EARLY_SERIAL
> +#ifndef __ADSPBF60x__
>  # define CONFIG_SERIAL_MULTI
>  # define CONFIG_SYS_BFIN_UART
>  #endif
> +#endif

i don't recall if i turned this off as an optimization for early work, or 
because it was unimplemented.  i think the former, but if it's the latter, 
it'll need implementing and this ifdef thrown away.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120808/fb561e01/attachment.pgp>


More information about the U-Boot mailing list