[PATCH] rockchip: sdram: fix DRAM bank declaration around OP-TEE

Kever Yang kever.yang at rock-chips.com
Fri Apr 17 08:48:58 CEST 2020


Hi Justin,

On 2020/4/1 上午1:25, Justin Swartz wrote:
> If OP-TEE is configured, it makes sense to use CONFIG_OPTEE_TZDRAM_BASE
> and CONFIG_OPTEE_TZDRAM_SIZE to declare the boundaries of the TrustZone
> memory reserved for OP-TEE instead of assuming that a 32MB reservation is
> always in place.
>
> In this case, the following calculations may be used to determine the
> boundaries of DRAM bank 0 and 1 which surround the TrustZone reservation:
>
>      [DRAM bank 0]
>          base = CONFIG_SYS_DRAM_BASE
>          size = CONFIG_OPTEE_TZDRAM_BASE - CONFIG_SYS_SDRAM_BASE
>
>      [DRAM bank 1]
>          base = CONFIG_OPTEE_TZDRAM_BASE + CONFIG_OPTEE_TZDRAM_SIZE
>          size = top of memory - base of DRAM bank 1

We do not use CONFIG_OPTEE_TZDRAM_BASE and code in lib/optee/ for 
rockchip platform now,

and this patch update to use this macro without adapt other code will 
break the boards already

run with it.


Thanks,

- Kever

>
> Signed-off-by: Justin Swartz <justin.swartz at risingedge.co.za>
> ---
>   arch/arm/mach-rockchip/sdram.c | 14 ++++++--------
>   1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/sdram.c b/arch/arm/mach-rockchip/sdram.c
> index 530644c043..def2c23294 100644
> --- a/arch/arm/mach-rockchip/sdram.c
> +++ b/arch/arm/mach-rockchip/sdram.c
> @@ -55,16 +55,14 @@ int dram_init_banksize(void)
>   					- CONFIG_SYS_SDRAM_BASE;
>   		gd->bd->bi_dram[1].start = tos_parameter->tee_mem.phy_addr +
>   					tos_parameter->tee_mem.size;
> -		gd->bd->bi_dram[1].size = gd->bd->bi_dram[0].start
> -					+ top - gd->bd->bi_dram[1].start;
> +		gd->bd->bi_dram[1].size = top - gd->bd->bi_dram[1].start;
>   	} else {
>   		gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
> -		gd->bd->bi_dram[0].size = 0x8400000;
> -		/* Reserve 32M for OPTEE with TA */
> -		gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE
> -					+ gd->bd->bi_dram[0].size + 0x2000000;
> -		gd->bd->bi_dram[1].size = gd->bd->bi_dram[0].start
> -					+ top - gd->bd->bi_dram[1].start;
> +		gd->bd->bi_dram[0].size = CONFIG_OPTEE_TZDRAM_BASE
> +					- CONFIG_SYS_SDRAM_BASE;
> +		gd->bd->bi_dram[1].start = CONFIG_OPTEE_TZDRAM_BASE
> +					+ CONFIG_OPTEE_TZDRAM_SIZE;
> +		gd->bd->bi_dram[1].size = top - gd->bd->bi_dram[1].start;
>   	}
>   #else
>   	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;




More information about the U-Boot mailing list