| #
5b6c7df7 |
| 20-Jun-2025 |
T Pratham <t-pratham@ti.com> |
plat-k3: drivers: Refactor SA2UL driver
The EIP76D TRNG IP being used in current K3 devices is not unique to SA2UL/SA3UL. The RNG driver can be reused in other devices containing the same TRNG IP ou
plat-k3: drivers: Refactor SA2UL driver
The EIP76D TRNG IP being used in current K3 devices is not unique to SA2UL/SA3UL. The RNG driver can be reused in other devices containing the same TRNG IP outside of SA2UL/SA3UL.
Refactor the SA2UL and RNG driver to make EIP76D TRNG driver independent of SA2UL.
Signed-off-by: T Pratham <t-pratham@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
58ad77ff |
| 23-Apr-2025 |
Bryan Brattlof <bb@ti.com> |
plat-k3: drivers: add platform flavors for 62A and 62P devices
Even though the SA2UL integration on the AM62Ax and AM62Px platforms are functionally identical to the AM62x platforms many, when build
plat-k3: drivers: add platform flavors for 62A and 62P devices
Even though the SA2UL integration on the AM62Ax and AM62Px platforms are functionally identical to the AM62x platforms many, when building OP-TEE manually, are using the platform name they are building for and not 'am62x' which leaves SA2UL_BASE undefined and to failed builds:
In file included from core/include/mm/core_memprot.h:9, from core/include/kernel/interrupt.h:10, from core/arch/arm/plat-k3/drivers/sa2ul_rng.c:12: core/arch/arm/plat-k3/./platform_config.h:91:34: error: ‘SA2UL_BASE’ undeclared here (not in a function); did you mean ‘SCU_BASE’? 91 | #define RNG_BASE (SA2UL_BASE + 0x10000) | ^~~~~~~~~~
For now let's just define the AM62Ax and AM62Px platform flavors identical to how AM62x is defined and include an #else statement to catch when a undefined platform flavor tries to build the SA2UL driver
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Andrew Davis <afd@ti.com> Signed-off-by: Bryan Brattlof <bb@ti.com>
show more ...
|
| #
b1eb945e |
| 27-Aug-2024 |
Manorit Chawdhry <m-chawdhry@ti.com> |
plat-k3: drivers: Change SA2UL_init service to service_init_crypto
Since commit 11d8578d93f0 ("core: arm: call call_driver_initcalls() late"), driver_init is deferred and thread_update_canaries trie
plat-k3: drivers: Change SA2UL_init service to service_init_crypto
Since commit 11d8578d93f0 ("core: arm: call call_driver_initcalls() late"), driver_init is deferred and thread_update_canaries tries to get random_stack_canaries which requires the TRNG driver to be setup. Since it was being setup as part of driver_init, it lead to crash on K3 platforms.
Change driver_init to service_init_crypto which is meant to be used for initialization of crypto operations. Also, for the TISCI services to be available before service_init_crypto, change init_ti_sci invocation to early_init_late.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com> Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
show more ...
|
| #
e313f476 |
| 13-Sep-2023 |
Kamlesh Gurudasani <kamlesh@ti.com> |
plat-k3: drivers: Open TRNG firewall for TIFS
On devices with PLATFORM=k3-am62x, there is only one SA2UL instance, which is being shared between TIFS and OP-TEE.
Blocking access to TRNG from all ot
plat-k3: drivers: Open TRNG firewall for TIFS
On devices with PLATFORM=k3-am62x, there is only one SA2UL instance, which is being shared between TIFS and OP-TEE.
Blocking access to TRNG from all other entities other than OP-TEE is causing firewall exception when being accessed by TIFS.
While there are other platforms with only one sa2ul instance, on AM62x we support low power mode, in which TIFS access TRNG while waking up from deep sleep. On other devices, use of TRNG by TIFS is limited to the time till OP-TEE initializes and firewalls it for other entities.
Allow access to TIFS to use SA2UL TRNG along with OP-TEE.
Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
show more ...
|
| #
4621ea8b |
| 14-Sep-2023 |
Kamlesh Gurudasani <kamlesh@ti.com> |
plat-k3: drivers: Fix values for FW_SECURE_ONLY and FW_NON_SECURE
Fix values for permission bits for secure user, secure supervisor, non-secure user and non-secure supervisor.
0th-7th bits are for
plat-k3: drivers: Fix values for FW_SECURE_ONLY and FW_NON_SECURE
Fix values for permission bits for secure user, secure supervisor, non-secure user and non-secure supervisor.
0th-7th bits are for secure user/supervisor permissions and 8th-15th bits are for non-secure user/supervisor permission.
Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
show more ...
|
| #
e48bcda2 |
| 06-Oct-2022 |
Jayesh Choudhary <j-choudhary@ti.com> |
plat-k3: Add support for j784s4 platform
Add SA2UL and TRNG support for TI SoC J784S4 through OP-TEE.
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> Acked-by: Andrew Davis <afd@ti.com> Acked-
plat-k3: Add support for j784s4 platform
Add SA2UL and TRNG support for TI SoC J784S4 through OP-TEE.
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> Acked-by: Andrew Davis <afd@ti.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> [jf: wrap line >80 characters] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
115198b4 |
| 16-Aug-2022 |
Andrew Davis <afd@ti.com> |
plat-k3: drivers: ti-sci: Do not print error when message not acknowledged
When the system controller firmware denies a request, we are informed of this by the lack of an acknowledge flag in the res
plat-k3: drivers: ti-sci: Do not print error when message not acknowledged
When the system controller firmware denies a request, we are informed of this by the lack of an acknowledge flag in the response. This is not always an error in cases when we are only testing for permissions. Do not print error messages in this path. The TI-SCI API caller will still print the appropriate message if needed.
Signed-off-by: Andrew Davis <afd@ti.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
5bf9286d |
| 06-Aug-2022 |
Andrew Davis <afd@ti.com> |
plat-k3: drivers: Set SA2UL firewall region addresses
This firewall region is normally already set to cover our RNG, but that is not guaranteed. To ensure we actually protect the RNG with this regio
plat-k3: drivers: Set SA2UL firewall region addresses
This firewall region is normally already set to cover our RNG, but that is not guaranteed. To ensure we actually protect the RNG with this region, explicitly set the address here to the RNG start and end addresses.
Signed-off-by: Andrew Davis <afd@ti.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
15a746d2 |
| 15-Jun-2022 |
Andrew Davis <afd@ti.com> |
plat-k3: drivers: Fix SA2UL background firewall size
For GP devices this first firewall region should be a background region that spans the whole address space managed by this firewall. This allows
plat-k3: drivers: Fix SA2UL background firewall size
For GP devices this first firewall region should be a background region that spans the whole address space managed by this firewall. This allows normal use of devices behind it even when not explicitly permitted.
Signed-off-by: Andrew Davis <afd@ti.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
bf9dfcc2 |
| 03-May-2022 |
Andrew Davis <afd@ti.com> |
plat-k3: drivers: Add SA2UL RNG driver
TI K3 family devices contain a set of crypto accelerators under the umbrella device SA2UL. Add support for setting up the power and firewalls for this device.
plat-k3: drivers: Add SA2UL RNG driver
TI K3 family devices contain a set of crypto accelerators under the umbrella device SA2UL. Add support for setting up the power and firewalls for this device. Then add support for the TRNG sub-device.
Signed-off-by: Andrew Davis <afd@ti.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|