1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-01-12 01:20:20 +00:00

trusted-firmware-a/optee-os: Add LPM support on few platforms

Adds the required TF-A and OP-TEE patches to enable LPM support on
J7200, J784s4, J742s2.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This commit is contained in:
Manorit Chawdhry
2025-11-29 00:11:25 +05:30
committed by Ryan Eatmon
parent 7bec7f73c6
commit b05876bb9c
6 changed files with 446 additions and 0 deletions

View File

@@ -1,5 +1,7 @@
# NOTE: This .inc file with customizations only gets included for K3 platforms # NOTE: This .inc file with customizations only gets included for K3 platforms
FILESEXTRAPATHS:prepend := "${THISDIR}/trusted-firmware-a:"
PV = "2.13+git" PV = "2.13+git"
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e" LIC_FILES_CHKSUM = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
@@ -28,3 +30,14 @@ EXTRA_OEMAKE += "${@ 'BL32_BASE=' + d.getVar('TFA_K3_BL32_BASE') if d.getVar('TF
EXTRA_OEMAKE += "${@ 'PRELOADED_BL33_BASE=' + d.getVar('TFA_K3_PRELOADED_BL33') if d.getVar('TFA_K3_PRELOADED_BL33') else ''}" EXTRA_OEMAKE += "${@ 'PRELOADED_BL33_BASE=' + d.getVar('TFA_K3_PRELOADED_BL33') if d.getVar('TFA_K3_PRELOADED_BL33') else ''}"
EXTRA_OEMAKE += "${@ 'K3_PM_SYSTEM_SUSPEND=' + d.getVar('TFA_K3_SYSTEM_SUSPEND') if d.getVar('TFA_K3_SYSTEM_SUSPEND') else ''}" EXTRA_OEMAKE += "${@ 'K3_PM_SYSTEM_SUSPEND=' + d.getVar('TFA_K3_SYSTEM_SUSPEND') if d.getVar('TFA_K3_SYSTEM_SUSPEND') else ''}"
EXTRA_OEMAKE:append:ti-falcon = " PRELOADED_BL33_BASE=0x82000000 K3_HW_CONFIG_BASE=0x88000000" EXTRA_OEMAKE:append:ti-falcon = " PRELOADED_BL33_BASE=0x82000000 K3_HW_CONFIG_BASE=0x88000000"
# LPM support patches for Jacinto platforms (J7200, J742S2, J784S4)
TFA_JACINTO_LPM_PATCHES = " \
file://0001-feat-k3-choose-cluster_start_id-depending-on-the-soc.patch \
file://0002-feat-ti-add-message-to-encrypt-tfa-during-suspend.patch \
file://0003-feat-k3-handle-suspend-in-case-of-LPM_BOARDCFG_MANAG.patch \
"
SRC_URI:append:j7200 = " ${TFA_JACINTO_LPM_PATCHES}"
SRC_URI:append:j742s2 = " ${TFA_JACINTO_LPM_PATCHES}"
SRC_URI:append:j784s4 = " ${TFA_JACINTO_LPM_PATCHES}"

View File

@@ -0,0 +1,115 @@
From 3de4f871d9bfe29c3862860e494bfa70ba72af3e Mon Sep 17 00:00:00 2001
From: Abhash Kumar Jha <a-kumar2@ti.com>
Date: Mon, 20 Oct 2025 11:26:17 +0530
Subject: [PATCH 1/3] feat(k3): choose cluster_start_id depending on the soc
The CLUSTER_DEVICE_START_ID denotes the device id of the A-core cluster.
It is utilized when powering off the entire cluster.
J7200, J721E and J721S2 have a different cluster_start_id than their
"generic" counterparts.
Query the JTAG_ID register to get the part id and choose the
cluster_start_id depending on that.
Upstream-Status: Pending
Change-Id: I44d3ac0ec646c39019e4c0167d34f410015a147a
Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
---
plat/ti/k3/common/k3_bl31_setup.c | 1 +
plat/ti/k3/common/k3_psci.c | 25 ++++++++++++++++++++++++-
plat/ti/k3/include/platform_def.h | 16 ++++++++++++++++
3 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/plat/ti/k3/common/k3_bl31_setup.c b/plat/ti/k3/common/k3_bl31_setup.c
index 1b93dc860..79a9c924c 100644
--- a/plat/ti/k3/common/k3_bl31_setup.c
+++ b/plat/ti/k3/common/k3_bl31_setup.c
@@ -20,6 +20,7 @@ const mmap_region_t plat_k3_mmap[] = {
K3_MAP_REGION_FLAT(SEC_PROXY_RT_BASE, SEC_PROXY_RT_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
K3_MAP_REGION_FLAT(SEC_PROXY_SCFG_BASE, SEC_PROXY_SCFG_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
K3_MAP_REGION_FLAT(SEC_PROXY_DATA_BASE, SEC_PROXY_DATA_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
+ K3_MAP_REGION_FLAT(WKUP_CTRL_MMR0_BASE, WKUP_CTRL_MMR0_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
{ /* sentinel */ }
};
diff --git a/plat/ti/k3/common/k3_psci.c b/plat/ti/k3/common/k3_psci.c
index ec37d9f4c..a443dd851 100644
--- a/plat/ti/k3/common/k3_psci.c
+++ b/plat/ti/k3/common/k3_psci.c
@@ -11,6 +11,8 @@
#include <common/debug.h>
#include <lib/el3_runtime/cpu_data.h>
#include <lib/psci/psci.h>
+#include <lib/mmio.h>
+#include <lib/utils_def.h>
#include <plat/common/platform.h>
#include <ti_sci_protocol.h>
@@ -83,6 +85,27 @@ static int k3_pwr_domain_on(u_register_t mpidr)
return PSCI_E_SUCCESS;
}
+uint32_t get_plat_cluster_start_id()
+{
+ static uint32_t cluster_id;
+ uint32_t part_id, jtag_id_reg;
+
+ if (cluster_id) {
+ return cluster_id;
+ }
+
+ jtag_id_reg = mmio_read_32(WKUP_CTRL_MMR0_BASE + JTAG_ID);
+ part_id = EXTRACT(JTAG_PART_ID, jtag_id_reg);
+
+ if ((part_id == J7200_PART_ID) || (part_id == J721E_PART_ID) || (part_id == J721S2_PART_ID)) {
+ cluster_id = J7_PLAT_CLUSTER_DEVICE_START_ID;
+ } else {
+ cluster_id = PLAT_CLUSTER_DEVICE_START_ID;
+ }
+
+ return cluster_id;
+}
+
void k3_pwr_domain_off(const psci_power_state_t *target_state)
{
int core, cluster, proc_id, device_id, cluster_id, ret;
@@ -97,7 +120,7 @@ void k3_pwr_domain_off(const psci_power_state_t *target_state)
cluster = MPIDR_AFFLVL1_VAL(read_mpidr_el1());
proc_id = PLAT_PROC_START_ID + core;
device_id = PLAT_PROC_DEVICE_START_ID + core;
- cluster_id = PLAT_CLUSTER_DEVICE_START_ID + (cluster * 2);
+ cluster_id = get_plat_cluster_start_id() + (cluster * 2);
/*
* If we are the last core in the cluster then we take a reference to
diff --git a/plat/ti/k3/include/platform_def.h b/plat/ti/k3/include/platform_def.h
index db5e31d95..d191781a6 100644
--- a/plat/ti/k3/include/platform_def.h
+++ b/plat/ti/k3/include/platform_def.h
@@ -25,6 +25,22 @@
#define SEC_PROXY_RT_SIZE 0x80000
#endif /* K3_SEC_PROXY_LITE */
+#define WKUP_CTRL_MMR0_BASE UL(0x43000000)
+#define WKUP_CTRL_MMR0_SIZE UL(0x20000)
+#define JTAG_ID U(0x14)
+#define JTAG_PART_ID_MASK GENMASK(27, 12)
+
+#define J721E_PART_ID U(0xBB64)
+#define J7200_PART_ID U(0xBB6D)
+#define J721S2_PART_ID U(0xBB75)
+#define J784S4_J742S2_PART_ID U(0xBB80)
+
+#define JTAG_PART_ID_WIDTH U(0x10)
+#define JTAG_PART_ID_SHIFT U(0xC)
+
+/* A-core Cluster Device ID for j721e, j7200 and j721s2 */
+#define J7_PLAT_CLUSTER_DEVICE_START_ID U(0x4)
+
#define SEC_PROXY_TIMEOUT_US 1000000
#define SEC_PROXY_MAX_MESSAGE_SIZE 56
--
2.34.1

View File

@@ -0,0 +1,194 @@
From c79ff3679a4360bb848b01d4036c365533fcf791 Mon Sep 17 00:00:00 2001
From: Richard Genoud <richard.genoud@bootlin.com>
Date: Tue, 11 Feb 2025 18:20:17 +0100
Subject: [PATCH 2/3] feat(ti): add message to encrypt tfa during suspend
At suspend, BL31 with its context will be encrypted by TIFS in DDR.
Encryption is needed for security matters, so that the BL31 is not
modified before entering suspend or early at resume.
We only need the encryption function here because the decryption message
will be send by the R5 SPL at resume.
Also introduce the LPM_ENCRYPT_IMAGE cap signals that FW has the support
to encrypt the image using the TISCI_MSG_LPM_ENCRYPT tisci message.
This is useful in suspend to ram cases where we would like to
store the encrypted image of a secure fw instead of the original image
itself in the DDR.
Check for LPM_ENCRYPT_IMAGE flag in the FW capabilities, and only then
call encrypt.
Upstream-Status: Pending
Change-Id: I266472da87dd0821493019b2d9853f8886f33811
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
---
drivers/ti/ti_sci/ti_sci.c | 36 +++++++++++++++++++++++++++++
drivers/ti/ti_sci/ti_sci.h | 7 ++++++
drivers/ti/ti_sci/ti_sci_protocol.h | 32 +++++++++++++++++++++++++
plat/ti/k3/common/k3_psci.c | 10 ++++++++
4 files changed, 85 insertions(+)
diff --git a/drivers/ti/ti_sci/ti_sci.c b/drivers/ti/ti_sci/ti_sci.c
index f0813e5b0..ee5f7166f 100644
--- a/drivers/ti/ti_sci/ti_sci.c
+++ b/drivers/ti/ti_sci/ti_sci.c
@@ -1784,3 +1784,39 @@ int ti_sci_lpm_get_next_sys_mode(uint8_t *next_mode)
return 0;
}
+/*
+ * ti_sci_encrypt_tfa - Ask TIFS to encrypt TFA at a specific address
+ *
+ * @src_tfa_addr: Address where the TFA lies unencrypted
+ * @src_tfa_len: Size of the TFA unencrypted
+ *
+ * Return: 0 if all goes well, else appropriate error message
+ */
+int ti_sci_encrypt_tfa(uint64_t src_tfa_addr,
+ uint32_t src_tfa_len)
+{
+ struct ti_sci_msg_req_encrypt_tfa req = { 0 };
+ struct ti_sci_msg_resp_encrypt_tfa resp = { 0 };
+ struct ti_sci_xfer xfer;
+ int ret;
+
+ ret = ti_sci_setup_one_xfer(TISCI_MSG_LPM_ENCRYPT_TFA, 0,
+ &req, sizeof(req),
+ &resp, sizeof(resp),
+ &xfer);
+ if (ret != 0U) {
+ ERROR("Message alloc failed (%d)\n", ret);
+ return ret;
+ }
+
+ req.src_tfa_addr = src_tfa_addr;
+ req.src_tfa_len = src_tfa_len;
+
+ ret = ti_sci_do_xfer(&xfer);
+ if (ret != 0U) {
+ ERROR("Transfer send failed (%d)\n", ret);
+ return ret;
+ }
+
+ return 0;
+}
diff --git a/drivers/ti/ti_sci/ti_sci.h b/drivers/ti/ti_sci/ti_sci.h
index 1f1963274..2afa11317 100644
--- a/drivers/ti/ti_sci/ti_sci.h
+++ b/drivers/ti/ti_sci/ti_sci.h
@@ -258,6 +258,11 @@ int ti_sci_proc_wait_boot_status_no_wait(uint8_t proc_id,
*
* Return: 0 if all goes well, else appropriate error message
*
+ * - ti_sci_encrypt_tfa - Ask TIFS to encrypt TFA at a specific address
+ *
+ * @src_tfa_addr: Address where the TFA lies unencrypted
+ * @src_tfa_len: Size of the TFA unencrypted
+ *
* NOTE: for all these functions, the following are generic in nature:
* Returns 0 for successful request, else returns corresponding error message.
*/
@@ -265,5 +270,7 @@ int ti_sci_enter_sleep(uint8_t proc_id,
uint8_t mode,
uint64_t core_resume_addr);
int ti_sci_lpm_get_next_sys_mode(uint8_t *next_mode);
+int ti_sci_encrypt_tfa(uint64_t src_tfa_addr,
+ uint32_t src_tfa_len);
#endif /* TI_SCI_H */
diff --git a/drivers/ti/ti_sci/ti_sci_protocol.h b/drivers/ti/ti_sci/ti_sci_protocol.h
index bdd24622a..a165cda99 100644
--- a/drivers/ti/ti_sci/ti_sci_protocol.h
+++ b/drivers/ti/ti_sci/ti_sci_protocol.h
@@ -53,6 +53,9 @@
#define TISCI_MSG_GET_PROC_BOOT_STATUS 0xc400
#define TISCI_MSG_WAIT_PROC_BOOT_STATUS 0xc401
+/* TFA encrypt/decrypt messages */
+#define TISCI_MSG_LPM_ENCRYPT_TFA 0x030F
+
/**
* struct ti_sci_secure_msg_hdr - Header that prefixes all TISCI messages sent
* via secure transport.
@@ -160,6 +163,7 @@ struct ti_sci_msg_resp_query_fw_caps {
#define MSG_FLAG_CAPS_LPM_STANDBY TI_SCI_MSG_FLAG(3)
#define MSG_FLAG_CAPS_LPM_PARTIAL_IO TI_SCI_MSG_FLAG(4)
#define MSG_FLAG_CAPS_LPM_DM_MANAGED TI_SCI_MSG_FLAG(5)
+#define MSG_FLAG_CAPS_LPM_ENCRYPT_IMAGE TI_SCI_MSG_FLAG(11)
uint64_t fw_caps;
} __packed;
@@ -810,4 +814,32 @@ struct ti_sci_msg_resp_lpm_get_next_sys_mode {
uint8_t mode;
} __packed;
+/*
+ * struct ti_sci_msg_req_encrypt_tfa - Request for TISCI_MSG_LPM_ENCRYPT_TFA.
+ *
+ * @hdr Generic Header
+ * @src_tfa_addr: Address where the TFA lies unencrypted
+ * @src_tfa_len: Size of the TFA unencrypted
+ *
+ * This message is to be sent when the system is going in suspend, just before
+ * TI_SCI_MSG_ENTER_SLEEP.
+ * The TIFS will then encrypt the TFA and store it in RAM, along with a private
+ * header.
+ * Upon resume, the SPL will ask TIFS to decrypt it back.
+ */
+struct ti_sci_msg_req_encrypt_tfa {
+ struct ti_sci_msg_hdr hdr;
+ uint64_t src_tfa_addr;
+ uint32_t src_tfa_len;
+} __packed;
+
+/*
+ * struct ti_sci_msg_req_encrypt_tfa - Request for TISCI_MSG_LPM_ENCRYPT_TFA.
+ *
+ * @hdr Generic Header
+ */
+struct ti_sci_msg_resp_encrypt_tfa {
+ struct ti_sci_msg_hdr hdr;
+} __packed;
+
#endif /* TI_SCI_PROTOCOL_H */
diff --git a/plat/ti/k3/common/k3_psci.c b/plat/ti/k3/common/k3_psci.c
index a443dd851..c2017666b 100644
--- a/plat/ti/k3/common/k3_psci.c
+++ b/plat/ti/k3/common/k3_psci.c
@@ -24,6 +24,7 @@
#define SYSTEM_PWR_STATE(state) ((state)->pwr_domain_state[PLAT_MAX_PWR_LVL])
uintptr_t k3_sec_entrypoint;
+bool encrypt_image;
static void k3_cpu_standby(plat_local_state_t cpu_state)
{
@@ -282,6 +283,11 @@ static void k3_pwr_domain_suspend_to_mode(const psci_power_state_t *target_state
k3_gic_cpuif_disable();
k3_gic_save_context();
+ if (encrypt_image)
+ {
+ ti_sci_encrypt_tfa((uint64_t)__TEXT_START__, BL31_SIZE);
+ }
+
k3_pwr_domain_off(target_state);
ti_sci_enter_sleep(proc_id, mode, k3_sec_entrypoint);
@@ -347,6 +353,10 @@ int plat_setup_psci_ops(uintptr_t sec_entrypoint,
ERROR("Unable to query firmware capabilities (%d)\n", ret);
}
+ if (fw_caps & MSG_FLAG_CAPS_LPM_ENCRYPT_IMAGE) {
+ encrypt_image = true;
+ }
+
/* If firmware does not support any known suspend mode */
if (!(fw_caps & (MSG_FLAG_CAPS_LPM_DEEP_SLEEP |
MSG_FLAG_CAPS_LPM_MCU_ONLY |
--
2.34.1

View File

@@ -0,0 +1,68 @@
From 470cf022d03e350beab36605d4250944d2c92ffe Mon Sep 17 00:00:00 2001
From: Abhash Kumar Jha <a-kumar2@ti.com>
Date: Tue, 28 Oct 2025 23:24:22 +0530
Subject: [PATCH 3/3] feat(k3): handle suspend in case of LPM_BOARDCFG_MANAGED
The J7 platforms support LPM_BOARDCFG_MANAGED capability where the
low power mode configuration is done statically for the DM via the
pm-boardcfg.
This is entirely opposite to the case of DM_MANAGED, where the DM fw
decides the low power mode to enter into.
Introduce LPM_BOARDCFG_MANAGED cap to handle suspend for those
platforms as well.
Upstream-Status: Pending
Change-Id: Iaa0ab478cbe0db6652f61e9d733c0fddb4bab234
Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
---
drivers/ti/ti_sci/ti_sci_protocol.h | 1 +
plat/ti/k3/common/k3_psci.c | 13 ++++++++-----
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/ti/ti_sci/ti_sci_protocol.h b/drivers/ti/ti_sci/ti_sci_protocol.h
index a165cda99..b83174b0d 100644
--- a/drivers/ti/ti_sci/ti_sci_protocol.h
+++ b/drivers/ti/ti_sci/ti_sci_protocol.h
@@ -164,6 +164,7 @@ struct ti_sci_msg_resp_query_fw_caps {
#define MSG_FLAG_CAPS_LPM_PARTIAL_IO TI_SCI_MSG_FLAG(4)
#define MSG_FLAG_CAPS_LPM_DM_MANAGED TI_SCI_MSG_FLAG(5)
#define MSG_FLAG_CAPS_LPM_ENCRYPT_IMAGE TI_SCI_MSG_FLAG(11)
+#define MSG_FLAG_CAPS_LPM_BOARDCFG_MANAGED TI_SCI_MSG_FLAG(12)
uint64_t fw_caps;
} __packed;
diff --git a/plat/ti/k3/common/k3_psci.c b/plat/ti/k3/common/k3_psci.c
index c2017666b..9cf41b4cb 100644
--- a/plat/ti/k3/common/k3_psci.c
+++ b/plat/ti/k3/common/k3_psci.c
@@ -357,17 +357,20 @@ int plat_setup_psci_ops(uintptr_t sec_entrypoint,
encrypt_image = true;
}
- /* If firmware does not support any known suspend mode */
- if (!(fw_caps & (MSG_FLAG_CAPS_LPM_DEEP_SLEEP |
+ /* If firmware is capabale of low power modes */
+ if (fw_caps & (MSG_FLAG_CAPS_LPM_DM_MANAGED |
+ MSG_FLAG_CAPS_LPM_BOARDCFG_MANAGED)) {
+ k3_plat_psci_ops.pwr_domain_suspend = k3_pwr_domain_suspend_dm_managed;
+ } else if (!(fw_caps & (MSG_FLAG_CAPS_LPM_DEEP_SLEEP |
MSG_FLAG_CAPS_LPM_MCU_ONLY |
MSG_FLAG_CAPS_LPM_STANDBY |
MSG_FLAG_CAPS_LPM_PARTIAL_IO))) {
- /* Disable PSCI suspend support */
+ /* If firmware does not support any known suspend mode
+ * disable PSCI suspend support
+ */
k3_plat_psci_ops.pwr_domain_suspend = NULL;
k3_plat_psci_ops.pwr_domain_suspend_finish = NULL;
k3_plat_psci_ops.get_sys_suspend_power_state = NULL;
- } else if (fw_caps & MSG_FLAG_CAPS_LPM_DM_MANAGED) {
- k3_plat_psci_ops.pwr_domain_suspend = k3_pwr_domain_suspend_dm_managed;
}
*psci_ops = &k3_plat_psci_ops;
--
2.34.1

View File

@@ -1,6 +1,8 @@
# Use TI SECDEV for signing # Use TI SECDEV for signing
inherit ti-secdev inherit ti-secdev
FILESEXTRAPATHS:prepend := "${THISDIR}/optee-os:"
EXTRA_OEMAKE:remove = "CFG_MAP_EXT_DT_SECURE=y" EXTRA_OEMAKE:remove = "CFG_MAP_EXT_DT_SECURE=y"
EXTRA_OEMAKE:append:k3 = " ${@ 'CFG_CONSOLE_UART='+ d.getVar('OPTEE_K3_USART') if d.getVar('OPTEE_K3_USART') else ''}" EXTRA_OEMAKE:append:k3 = " ${@ 'CFG_CONSOLE_UART='+ d.getVar('OPTEE_K3_USART') if d.getVar('OPTEE_K3_USART') else ''}"
@@ -76,3 +78,12 @@ RDEPENDS:${PN} += "${PN}-ta"
# This is needed for bl32.elf # This is needed for bl32.elf
INSANE_SKIP:${PN}:append:k3 = " textrel" INSANE_SKIP:${PN}:append:k3 = " textrel"
# LPM support patch for Jacinto platforms (J7200, J742S2, J784S4)
OPTEE_JACINTO_LPM_PATCHES = " \
file://0001-plat-k3-drivers-Open-TRNG-firewall-for-TIFS-on-all-k.patch \
"
SRC_URI:append:j7200 = " ${OPTEE_JACINTO_LPM_PATCHES}"
SRC_URI:append:j742s2 = " ${OPTEE_JACINTO_LPM_PATCHES}"
SRC_URI:append:j784s4 = " ${OPTEE_JACINTO_LPM_PATCHES}"

View File

@@ -0,0 +1,45 @@
From 00f74ba2ab00088d51e6da3c0eefe50599ef5c82 Mon Sep 17 00:00:00 2001
From: Prasanth Babu Mantena <p-mantena@ti.com>
Date: Mon, 3 Nov 2025 12:42:57 +0530
Subject: [PATCH] plat-k3: drivers: Open TRNG firewall for TIFS on all k3 devs
On k3 devices, TRNG is firewalled to be accessed only by OPTEE.
TIFS needs this for the encryption and decryption services to support
different low power modes. So, open firewall to TIFS as well.
There is no concurrent usage of TRNG, as TIFS uses TRNG only at suspend
when OPTEE is down and resume, when firewalls are restored but OPTEE is
not up yet.
As this is a firewall that required to be shared along with TIFS on all
devices, making this a common change and open on all devs.
Upstream-Status: Submitted [https://github.com/OP-TEE/optee_os/pull/7582]
Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
---
core/arch/arm/plat-k3/drivers/sa2ul.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/core/arch/arm/plat-k3/drivers/sa2ul.c b/core/arch/arm/plat-k3/drivers/sa2ul.c
index c50757b2c..e10bde131 100644
--- a/core/arch/arm/plat-k3/drivers/sa2ul.c
+++ b/core/arch/arm/plat-k3/drivers/sa2ul.c
@@ -121,12 +121,7 @@ static TEE_Result sa2ul_init(void)
start_address = RNG_BASE;
end_address = RNG_BASE + RNG_REG_SIZE - 1;
permissions[num_perm++] = (FW_BIG_ARM_PRIVID << 16) | FW_SECURE_ONLY;
-#if defined(PLATFORM_FLAVOR_am62x) || \
- defined(PLATFORM_FLAVOR_am62ax) || \
- defined(PLATFORM_FLAVOR_am62px)
-
permissions[num_perm++] = (FW_TIFS_PRIVID << 16) | FW_NON_SECURE;
-#endif
ret = ti_sci_set_fwl_region(fwl_id, rng_region, num_perm,
control, permissions,
start_address, end_address);
--
2.34.1