[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