diff mbox series

arm: mach-k3: am62a7_init: Open up FSS_DAT_REG3 firewall

Message ID 20230702091654.3515778-1-vigneshr@ti.com
State Accepted
Commit 11626a33fadc32f1315a7b1c278a5d96257537b5
Delegated to: Tom Rini
Headers show
Series arm: mach-k3: am62a7_init: Open up FSS_DAT_REG3 firewall | expand

Commit Message

Raghavendra, Vignesh July 2, 2023, 9:16 a.m. UTC
On security enforced (HS-SE) devices ROM firewalls OSPI data region3 that
is present in above 64bit region. Open this up in bootloader to allow
Linux to access OSPI flashes in mmap mode.

Without this kernel will crash when accessing this region due to
firewall violations on HS-SE devices.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
---
 arch/arm/mach-k3/am62a7_init.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Tom Rini July 21, 2023, 11:34 p.m. UTC | #1
On Sun, Jul 02, 2023 at 02:46:54PM +0530, Vignesh Raghavendra wrote:

> On security enforced (HS-SE) devices ROM firewalls OSPI data region3 that
> is present in above 64bit region. Open this up in bootloader to allow
> Linux to access OSPI flashes in mmap mode.
> 
> Without this kernel will crash when accessing this region due to
> firewall violations on HS-SE devices.
> 
> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/arch/arm/mach-k3/am62a7_init.c b/arch/arm/mach-k3/am62a7_init.c
index 1f51b0408969..8ac834cffdf9 100644
--- a/arch/arm/mach-k3/am62a7_init.c
+++ b/arch/arm/mach-k3/am62a7_init.c
@@ -14,6 +14,10 @@ 
 #include <dm/uclass-internal.h>
 #include <dm/pinctrl.h>
 
+struct fwl_data cbass_main_fwls[] = {
+       { "FSS_DAT_REG3", 7, 8 },
+};
+
 /*
  * This uninitialized global variable would normal end up in the .bss section,
  * but the .bss is cleared between writing and reading this variable, so move
@@ -166,6 +170,9 @@  void board_init_f(ulong dummy)
 	/* Output System Firmware version info */
 	k3_sysfw_print_ver();
 
+       /* Disable ROM configured firewalls right after loading sysfw */
+       remove_fwl_configs(cbass_main_fwls, ARRAY_SIZE(cbass_main_fwls));
+
 #if defined(CONFIG_K3_AM62A_DDRSS)
 	ret = uclass_get_device(UCLASS_RAM, 0, &dev);
 	if (ret)