[PATCH] arm, omap2, sram: On HS/EMU devices, only 64K internal SRAM is available.
Heiko Schocher
hs at denx.de
Wed Oct 14 20:57:13 PDT 2015
Hello Tony,
Am 14.10.2015 um 19:49 schrieb Tony Lindgren:
> * Heiko Schocher <hs at denx.de> [151012 22:58]:
>> Of this, secure content (including PPA) uses initial
>> portion of the SRAM. This chunk is not (and shouldn't
>> be) accessible from the public code.
>>
>> The minimum size of this chunk (0x350) is used in this
>> patch. Available size is rounded off to 63K.
>>
>> Both values would require a change if size of secure
>> content grows beyond 0x350.
>
> Makes sense to me. And something similar is needed at least for
> dm814x to get rid of the imprecise abort during boot with
> commit bbeb92095159 ("ARM: 8422/1: enable imprecise aborts during
> early kernel startup") applied.
>
> Is this needed as a fix to the -rc cycle, or can this wait for
> v4.4?
I need it for an upcoming boards support, so 4.4 is fine for me,
thanks!
bye,
Heiko
>
> Regards,
>
> Tony
>
>
>> Signed-off-by: Heiko Schocher <hs at denx.de>
>> Signed-off-by: Ayoub Zaki <Ayoub.Zaki at bosch-si.com>
>> ---
>>
>> arch/arm/mach-omap2/sram.c | 25 +++++++++++++++++++++++++
>> 1 file changed, 25 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap2/sram.c b/arch/arm/mach-omap2/sram.c
>> index cd488b8..2e7c00f 100644
>> --- a/arch/arm/mach-omap2/sram.c
>> +++ b/arch/arm/mach-omap2/sram.c
>> @@ -47,6 +47,28 @@
>>
>> #define GP_DEVICE 0x300
>>
>> +/**
>> + * Size of chunk used by secure content in the HS/EMU devices.
>> + *
>> + * This size is not fixed. It depends upon the implementation of PPA.
>> + * May need to be modified if the size grows.
>> + */
>> +#define AM33XX_HS_HEADER_SIZE 0x0350
>> +
>> +/**
>> + * Start of public SRAM on HS/EMU devices.
>> + */
>> +#define AM33XX_SRAM_PA 0x40300000
>> +#define AM33XX_SRAM_PUB_PA (AM33XX_SRAM_PA + AM33XX_HS_HEADER_SIZE)
>> +
>> +/**
>> + * Size of public SRAM available on HS/EMU devices.
>> + *
>> + * This size also depends upon AM33XX_HS_HEADER_SIZE.
>> + * Current value is derived from nearest round-off.
>> + */
>> +#define AM33XX_SRAM_PUB_SIZE 0xfc00 /* 63K */
>> +
>> #define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1)))
>>
>> static unsigned long omap_sram_start;
>> @@ -99,6 +121,9 @@ static void __init omap_detect_sram(void)
>> } else {
>> omap_sram_size = 0x8000; /* 32K */
>> }
>> + } else if (soc_is_am33xx()) {
>> + omap_sram_start = AM33XX_SRAM_PUB_PA;
>> + omap_sram_size = AM33XX_SRAM_PUB_SIZE;
>> } else {
>> omap_sram_start = OMAP2_SRAM_PUB_PA;
>> omap_sram_size = 0x800; /* 2K */
>> --
>> 2.1.0
>>
>
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the linux-arm-kernel
mailing list