All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew F. Davis <afd@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/7] arm: K3: Avoid use of MCU_PSRAM0 before SYSFW is loaded
Date: Thu, 14 Feb 2019 15:51:59 -0600	[thread overview]
Message-ID: <61d014cb-3717-25ef-37bd-bf34ad6edb32@ti.com> (raw)
In-Reply-To: <40f6bb6c-c530-9def-46c1-d47126a7043a@ti.com>

On 2/13/19 9:32 PM, Lokesh Vutla wrote:
> 
> 
> On 14/02/19 12:07 AM, Andrew F. Davis wrote:
>> On HS devices the 512b region of reset isolated memory called
>> MCU_PSRAM0 is firewalled by default. Until SYSFW is loaded we
>> cannot use this memory. It is only used to store a single value
>> left at the end of SRAM by ROM that will be needed later. Save
>> that value to a global variable stored in the .data section.
>> This section is used as .bss will be cleared between saving
>> this value and using it.
>>
>> Signed-off-by: Andrew F. Davis <afd@ti.com>
>> ---
>>  arch/arm/mach-k3/am6_init.c                  | 8 +++-----
>>  arch/arm/mach-k3/include/mach/am6_hardware.h | 3 ---
>>  2 files changed, 3 insertions(+), 8 deletions(-)
>>
>> diff --git a/arch/arm/mach-k3/am6_init.c b/arch/arm/mach-k3/am6_init.c
>> index a5553190b4..462538e45d 100644
>> --- a/arch/arm/mach-k3/am6_init.c
>> +++ b/arch/arm/mach-k3/am6_init.c
>> @@ -49,11 +49,11 @@ static void ctrl_mmr_unlock(void)
>>  	mmr_unlock(CTRL_MMR0_BASE, 7);
>>  }
>>  
>> +u32 bootindex __attribute__((section(".data")));
> 
> After thinking a bit more I realized that backup bootmode might fail. R5 SPL is
> fine but when it jumps to A53 SPL it is trying to read the bootindex again from
> K3_BOOT_PARAM_TABLE_INDEX_VAL(this is already the case and is wrong). It is not
> guaranteed that R5 SPL did not damage this ROM param table. We should somehow
> pass bootindex to A53 SPL using scratchpad space.
> 

I don't know of any super good way to pass data from R5-SPL to A53-SPL,
but I don't think MCU_PSRAM0 will be the way to do it. For all we know
before A53-SPL has started the R5-SPL may have shutdown and something
else has booted, which could have used that MCU local RAM space. I think
we need something that gets passed to A53 anyway, maybe a DT fixup?

>> +
>>  static void store_boot_index_from_rom(void)
>>  {
>> -	u32 *boot_index = (u32 *)K3_BOOT_PARAM_TABLE_INDEX_VAL;
>> -
>> -	*boot_index = *(u32 *)(CONFIG_SYS_K3_BOOT_PARAM_TABLE_INDEX);
>> +	bootindex = *(u32 *)(CONFIG_SYS_K3_BOOT_PARAM_TABLE_INDEX);
>>  }
>>  
>>  void board_init_f(ulong dummy)
>> @@ -94,7 +94,6 @@ u32 spl_boot_mode(const u32 boot_device)
>>  {
>>  #if defined(CONFIG_SUPPORT_EMMC_BOOT)
>>  	u32 devstat = readl(CTRLMMR_MAIN_DEVSTAT);
>> -	u32 bootindex = readl(K3_BOOT_PARAM_TABLE_INDEX_VAL);
>>  
>>  	u32 bootmode = (devstat & CTRLMMR_MAIN_DEVSTAT_BOOTMODE_MASK) >>
>>  			CTRLMMR_MAIN_DEVSTAT_BOOTMODE_SHIFT;
>> @@ -170,7 +169,6 @@ static u32 __get_primary_bootmedia(u32 devstat)
>>  u32 spl_boot_device(void)
>>  {
>>  	u32 devstat = readl(CTRLMMR_MAIN_DEVSTAT);
>> -	u32 bootindex = readl(K3_BOOT_PARAM_TABLE_INDEX_VAL);
>>  
>>  	if (bootindex == K3_PRIMARY_BOOTMODE)
>>  		return __get_primary_bootmedia(devstat);
>> diff --git a/arch/arm/mach-k3/include/mach/am6_hardware.h b/arch/arm/mach-k3/include/mach/am6_hardware.h
>> index b5244609af..3343233aa3 100644
>> --- a/arch/arm/mach-k3/include/mach/am6_hardware.h
>> +++ b/arch/arm/mach-k3/include/mach/am6_hardware.h
>> @@ -44,7 +44,4 @@
>>  #define CTRLMMR_LOCK_KICK1				0x0100c
>>  #define CTRLMMR_LOCK_KICK1_UNLOCK_VAL			0xd172bc5a
>>  
>> -/* MCU SCRATCHPAD usage */
>> -#define K3_BOOT_PARAM_TABLE_INDEX_VAL	CONFIG_SYS_K3_MCU_SCRATCHPAD_BASE
> 
> Can we move scratchpad base to a different location ? This will be used for
> eeprom storing also.
> 

It's okay to use MCU_PSRAM0 after SYSFW has been loaded, does the EEPROM
data need to be moved between SPLs? Or is it local to each?

Andrew

> Thanks and regards,
> Lokesh
> 
>> -
>>  #endif /* __ASM_ARCH_AM6_HARDWARE_H */
>>

  reply	other threads:[~2019-02-14 21:51 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-13 18:37 [U-Boot] [PATCH 0/7] AM65x HS device support Andrew F. Davis
2019-02-13 18:37 ` [U-Boot] [PATCH 1/7] arm: K3: Avoid use of MCU_PSRAM0 before SYSFW is loaded Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-13 21:16     ` Andrew F. Davis
2019-02-14  3:32   ` Lokesh Vutla
2019-02-14 21:51     ` Andrew F. Davis [this message]
2019-02-18  4:40       ` Lokesh Vutla
2019-02-13 18:37 ` [U-Boot] [PATCH 2/7] firmware: ti_sci: Add support for firewall management Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-14  3:43   ` Lokesh Vutla
2019-02-13 18:37 ` [U-Boot] [PATCH 3/7] firmware: ti_sci: Modify auth_boot TI-SCI API to match new version Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-13 18:37 ` [U-Boot] [PATCH 4/7] arm: mach-k3: Add secure device support Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-13 18:37 ` [U-Boot] [PATCH 5/7] arm: mach-k3: Add secure device build support Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-13 21:20     ` Andrew F. Davis
2019-02-14  3:46   ` Lokesh Vutla
2019-02-14 22:55     ` Andrew F. Davis
2019-02-15 12:13       ` Lokesh Vutla
2019-02-16 22:18         ` Tom Rini
2019-02-18 13:05           ` Andrew F. Davis
2019-02-13 18:37 ` [U-Boot] [PATCH 6/7] configs: Add a config for AM65x High Security EVM Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-13 18:37 ` [U-Boot] [PATCH 7/7] doc: Update info on using K3 secure devices Andrew F. Davis
2019-02-13 20:27   ` Tom Rini
2019-02-13 21:12 ` [U-Boot] [PATCH 0/7] AM65x HS device support Andreas Dannenberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=61d014cb-3717-25ef-37bd-bf34ad6edb32@ti.com \
    --to=afd@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.