[U-Boot] [RFC PATCH v1 1/2] armv8: fsl-layerscape: Reserve memory for PPA
York Sun
yorksun at freescale.com
Tue Nov 10 20:44:12 CET 2015
On 11/10/2015 11:31 AM, Scott Wood wrote:
> On Tue, 2015-11-10 at 11:17 -0800, York Sun wrote:
>> Primary Protected Application (PPA) is the base of TrustZone for
>> Freescale Layerscape SoCs. It needs to run in secure memory while
>> the rest of u-boot can run in non-secure memory. The secure memory
>> is reserved at the very end of DDR, before debug server and MC
>> reservations. The address varies depending on the total size of
>> intalled DDR.
>>
>> Signed-off-by: York Sun <yorksun at freescale.com>
>>
>> ---
>>
>> Changes in v1:
>> Initial patch.
>> Depends on http://patchwork.ozlabs.org/patch/540248/
>>
>> README | 14 ++++++++++---
>> arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 23
>> +++++++++++++++++++++
>> arch/arm/include/asm/arch-fsl-layerscape/config.h | 3 +++
>> board/freescale/ls2085a/ls2085a.c | 17 ---------------
>> board/freescale/ls2085aqds/ls2085aqds.c | 17 ---------------
>> board/freescale/ls2085ardb/ls2085ardb.c | 17 ---------------
>> include/configs/ls2085a_common.h | 4 ++--
>> 7 files changed, 39 insertions(+), 56 deletions(-)
>>
>> diff --git a/README b/README
>> index ef8d437..e1ca7c2 100644
>> --- a/README
>> +++ b/README
>> @@ -3881,7 +3881,7 @@ Configuration Settings:
>> Scratch address used by the alternate memory test
>> You only need to set this if address zero isn't writeable
>>
>> -- CONFIG_SYS_MEM_TOP_HIDE (PPC only):
>> +- CONFIG_SYS_MEM_TOP_HIDE:
>> If CONFIG_SYS_MEM_TOP_HIDE is defined in the board config
>> header,
>> this specified memory area will get subtracted from the top
>> (end) of RAM and won't get "touched" at all by U-Boot. By
>> @@ -5048,6 +5048,10 @@ within that device.
>> normal addressable memory via the LBC. CONFIG_SYS_LS_MC_FW_ADDR is
>> the
>> virtual address in NOR flash.
>>
>> +- CONFIG_SYS_MEM_TOP_HIDE_MIN
>> + Define minimum DDR size to be hided from top of the DDR memory.
>
> Defines the minimum DDR size to be hidden from the top of DDR memory.
>
> How is this different from CONFIG_SYS_MEM_TOP_HIDE?
This is used by MC to make sure it is aligned.
>
>> + MC requires the region to be aligned with 512MB.
>
> Why is this generically named symbol documented in the Layerscape section,
> with a reference to MC?
>
> Why is a new symbol being added here rather than Kconfig?
>
> Why does this talk about MC alignment as if this entire region were for MC?
I moved this section out of MC alignment. Maybe I should keep it there.
>
>> +
>> Freescale Layerscape Debug Server Support:
>> -------------------------------------------
>> The Freescale Layerscape Debug Server Support supports the loading of
>> @@ -5060,8 +5064,12 @@ This firmware often needs to be loaded during U-Boot
>> booting.
>> - CONFIG_SYS_DEBUG_SERVER_DRAM_BLOCK_MIN_SIZE
>> Define minimum DDR size required for debug server image
>>
>> -- CONFIG_SYS_MEM_TOP_HIDE_MIN
>> - Define minimum DDR size to be hided from top of the DDR memory
>> +Freescale Layerscape Primary Protected Application (PPA) support
>> +----------------------------------------------------------------
>> +Freescale PPA runs in secure DDR, reserved from DDR pool.
>> +
>> +- CONFIG_FSL_PPA_RESERVED_DRAM_SIZE
>> + If defined, this is reserved in highest address as secure memory
>
> What is Freescale-specific about the concept of reserving memory for a secure
> monitor?
The PPA is a Freescale implementation of TrustZone application.
>
>
>> diff --git a/arch/arm/include/asm/arch-fsl-layerscape/config.h
>> b/arch/arm/include/asm/arch-fsl-layerscape/config.h
>> index 87bb937..77637a9 100644
>> --- a/arch/arm/include/asm/arch-fsl-layerscape/config.h
>> +++ b/arch/arm/include/asm/arch-fsl-layerscape/config.h
>> @@ -17,6 +17,9 @@
>> #define CONFIG_SYS_FSL_DDR /* Freescale DDR driver */
>> #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_5_0
>>
>> +/* High memory for PPA, MC, debug server when applicable */
>> +#define CONFIG_SYS_MEM_TOP_HIDE get_dram_size_to_hide()
>
> Hiding code in config symbols is not friendly to kconfig conversion (and it's
> hard to read besides).
>
It was made complicated by MC and debug server. Maybe we can fix the size for
them. They are fixed anyway for now.
York
More information about the U-Boot
mailing list