[U-Boot] [PATCH 03/16] Blackfin: Bf60x: support big cplb page

Mike Frysinger vapier at gentoo.org
Wed Aug 8 06:48:33 CEST 2012


On Tuesday 07 August 2012 04:07:42 Bob Liu wrote:
> Bf60x support 16K, 64K, 16M and 64M cplb pages, this patch add support for
> them. So that bf609-ezkit can use it's 128M memory.

"it's" -> "its"

>  arch/blackfin/include/asm/cplb.h                 |   13 +++++++++-
>  arch/blackfin/include/asm/mach-common/bits/mpu.h |    6 ++++-
>  arch/blackfin/lib/board.c                        |   28
> ++++++++++++++++------ include/configs/bf609-ezkit.h                    | 
>   6 +----
>  4 files changed, 39 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/blackfin/include/asm/cplb.h
> b/arch/blackfin/include/asm/cplb.h index cc21e93..5a0588b 100644
> --- a/arch/blackfin/include/asm/cplb.h
> +++ b/arch/blackfin/include/asm/cplb.h
> @@ -46,8 +46,11 @@
>  #define CPLB_IDOCACHE		CPLB_INOCACHE | CPLB_L1_CHBL
> 
>  /* Data Attibutes*/
> -
> +#if defined(__ADSPBF60x__)
> +#define SDRAM_IGENERIC          (PAGE_SIZE_16MB | CPLB_L1_CHBL |
> CPLB_USER_RD | CPLB_VALID)
> +#else
>  #define SDRAM_IGENERIC          (PAGE_SIZE_4MB | CPLB_L1_CHBL |
>  CPLB_USER_RD | CPLB_VALID)
> +#endif

many of these ifdefs are largely the same thing.  add a define at the top like:
#ifdef __ADSPBF60x__
# define PAGE_SIZE_MAX PAGE_SIZE_16MB
#else
# define PAGE_SIZE_MAX PAGE_SIZE_14MB
#endif

and then use that in all the other places.  this way you don't need to 
duplicate the vast majority of the content.

> --- a/arch/blackfin/include/asm/mach-common/bits/mpu.h
> +++ b/arch/blackfin/include/asm/mach-common/bits/mpu.h

this should get merged into the main cpu update patch i think

> --- a/arch/blackfin/lib/board.c
> +++ b/arch/blackfin/lib/board.c
> 
>  void init_cplbtables(void)
>  {
> ...
> +#if defined(__ADSPBF60x__)
> +	icplb_add(0x0, 0x0);

err, why ?

> +	dcplb_add(CONFIG_SYS_FLASH_BASE, PAGE_SIZE_16MB | CPLB_DIRTY |
> +			CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID);

can't you use SDRAM_EBIU/SDRAM_INON_CHBL like BF5xx ?  that's what the code 
below is for:
> +#ifndef __ADSPBF60x__
>  	icplb_add(0x20000000, SDRAM_INON_CHBL);
>  	dcplb_add(0x20000000, SDRAM_EBIU);
>  	++i;
> +#endif

this is the async memory blocks ...

> +	cplb_page_size = (4 * 1024 * 1024);
> +	cplb_page_mask = (~(cplb_page_size - 1));

why only use CPLBs of 4 megs for external memory on BF60x ?  you would want to 
maximize the usage of 16MiB to reduce CPLB overhead.

> --- a/include/configs/bf609-ezkit.h
> +++ b/include/configs/bf609-ezkit.h
> @@ -62,11 +62,10 @@
>  #define CONFIG_BFIN_GET_SCLK0 (get_sclk()/CONFIG_SCLK0_DIV)
>  #define CONFIG_BFIN_GET_SCLK1 (get_sclk()/CONFIG_SCLK1_DIV)
> 
> -
>  /*
>   * Memory Settings
>   */
> -#define CONFIG_MEM_SIZE		32
> +#define CONFIG_MEM_SIZE		128
> 
>  #define CONFIG_SMC_GCTL_VAL	0x00000010
>  #define CONFIG_SMC_B1CTL_VAL	0x01002001
> @@ -76,9 +75,6 @@
>  #define CONFIG_SYS_MONITOR_LEN	(256 * 1024)
>  #define CONFIG_SYS_MALLOC_LEN	(256 * 1024)
> 
> -#define CONFIG_ICACHE_OFF
> -#define CONFIG_DCACHE_OFF
> -
>  /*
>   * Network Settings
>   */

once the CPLB code is updated, you can squash this into the new bf609-ezkit 
patch
-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/3f815085/attachment.pgp>


More information about the U-Boot mailing list