[U-Boot] [PATCH] vexpress64: use 2nd DRAM bank only on juno

Liviu Dudau Liviu.Dudau at arm.com
Mon Oct 26 11:18:58 CET 2015


On Fri, Oct 23, 2015 at 04:47:04PM +0100, Ryan Harkin wrote:
> This patch makes the 2nd DRAM bank available on Juno only and not on
> other vexpress64 targets, eg. the FVP models.
> 
> The commit below added a 2nd bank of NOR flash for Juno, but also for
> all vexpress64 targets:
> 
>     commit 2d0cee1ca2b9d977fa3214896bb2e30cfec77059
>     Author: Liviu Dudau <Liviu.Dudau at foss.arm.com>
>     Date:   Mon Oct 19 11:08:31 2015 +0100
> 
>     vexpress64: Juno: Declare all 8GB of RAM and make them visible to the kernel.
> 
>     Juno comes with 8GB RAM, but U-Boot only passes 2GB to the kernel.
>     Declare a secondary memory bank and set the sizes correctly.
> 
>     Signed-off-by: Liviu Dudau <Liviu.Dudau at foss.arm.com>
>     Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
>     Reviewed-by: Ryan Harkin <ryan.harkin at linaro.org>
>     Tested-by: Ryan Harkin <ryan.harkin at linaro.org>
> 
> Unfortunately, I only fully tested on Juno R0, R1 and the FVP Foundation
> model.  Whilst FVP Base AEMV8 models run U-Boot OK, they fail to boot
> the kernel.

Hi Ryan,

Thanks for testing this on FVPs. Only a small question on the patch, otherwise:

Acked-by: Liviu Dudau <liviu.dudau at foss.arm.com>

Best regards,
Liviu

> 
> Signed-off-by: Ryan Harkin <ryan.harkin at linaro.org>
> ---
>  board/armltd/vexpress64/vexpress64.c |  2 ++
>  include/configs/vexpress_aemv8a.h    | 13 ++++++++++---
>  2 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
> index f4e8084..22d7e6c 100644
> --- a/board/armltd/vexpress64/vexpress64.c
> +++ b/board/armltd/vexpress64/vexpress64.c
> @@ -44,8 +44,10 @@ void dram_init_banksize(void)
>  {
>  	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
>  	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
> +#ifdef PHYS_SDRAM_2
>  	gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
>  	gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
> +#endif
>  }
>  
>  /*
> diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
> index 0f2f1a3..18ab915 100644
> --- a/include/configs/vexpress_aemv8a.h
> +++ b/include/configs/vexpress_aemv8a.h
> @@ -168,15 +168,22 @@
>  #define CONFIG_SYS_LOAD_ADDR		(V2M_BASE + 0x10000000)
>  
>  /* Physical Memory Map */
> -#define CONFIG_NR_DRAM_BANKS		2
>  #define PHYS_SDRAM_1			(V2M_BASE)	/* SDRAM Bank #1 */
> -#define PHYS_SDRAM_2			(0x880000000)
>  /* Top 16MB reserved for secure world use */
>  #define DRAM_SEC_SIZE		0x01000000
>  #define PHYS_SDRAM_1_SIZE	0x80000000 - DRAM_SEC_SIZE
> -#define PHYS_SDRAM_2_SIZE	0x180000000
>  #define CONFIG_SYS_SDRAM_BASE	PHYS_SDRAM_1
>  
> +#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
> +#define CONFIG_NR_DRAM_BANKS		2
> +#define PHYS_SDRAM_2			(0x880000000)
> +#define PHYS_SDRAM_2_SIZE		0x180000000
> +#define CONFIG_NR_DRAM_BANKS_LIST	{ PHYS_SDRAM_1 , PHYS_SDRAM_2}

Here

> +#else
> +#define CONFIG_NR_DRAM_BANKS		1
> +#define CONFIG_NR_DRAM_BANKS_LIST	{ PHYS_SDRAM_1 }

And here. I could not find any other instance of CONFIG_NR_DRAM_BANKS_LIST usage. Is that something
that has splilled from Linaro's version?

Best regards,
Liviu

> +#endif
> +
>  /* Enable memtest */
>  #define CONFIG_CMD_MEMTEST
>  #define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM_1
> -- 
> 2.1.4
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯


More information about the U-Boot mailing list