| 8690fbc8 | 20-Feb-2026 |
Sumit Garg <sumit.garg@oss.qualcomm.com> |
ci: qcom: add lemans platform build
Add PLATFORM=qcom-lemans build.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com> |
| d850873b | 24-Dec-2025 |
Sumit Garg <sumit.garg@oss.qualcomm.com> |
plat-qcom: Add support for lemans SoC
Add support for lemans SoC with platform support tested on lemans EVK platform also known as Qualcomm Dragonwing IQ-9075. More information regarding this platfo
plat-qcom: Add support for lemans SoC
Add support for lemans SoC with platform support tested on lemans EVK platform also known as Qualcomm Dragonwing IQ-9075. More information regarding this platform can be found here [1].
[1] https://www.qualcomm.com/internet-of-things/products/iq9-series/iq-9075
Reviewed-by: Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
show more ...
|
| 1e3f36b0 | 20-Feb-2026 |
Georges Savoundararadj <savoundg@amazon.com> |
ta: pkcs11: fix memory leak in close_persistent_db()
close_persistent_db() is a no-op stub that never frees the db_main and db_objs structures allocated by init_persistent_db(). In normal TA operati
ta: pkcs11: fix memory leak in close_persistent_db()
close_persistent_db() is a no-op stub that never frees the db_main and db_objs structures allocated by init_persistent_db(). In normal TA operation this is harmless since the TEE framework reclaims all TA memory on unload, which is likely why it was left unimplemented.
However, the leak becomes visible when running the TA in a host-based test environment (e.g. with AddressSanitizer) where the TEE memory reclamation does not occur. ASan reports 264 leaked allocations totalling ~24 KiB per TA lifecycle.
Implement close_persistent_db() to free token->db_main and token->db_objs and NULL the pointers. Add a NULL check on the token argument for robustness.
Fixes: c84ccd0a805e ("ta: pkcs11: persistent database for the pkcs11 tokens") Signed-off-by: Georges Savoundararadj <savoundg@amazon.com> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com>
show more ...
|
| 9c650cc1 | 25-Jan-2026 |
Vyacheslav Yurkov <uvv.mail@gmail.com> |
pta: Add a missing header
BIT macros require the utils header.
Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Reviewed-by: Etienne Carriere <etienne.carriere@st.com> |
| 33919ffb | 24-Oct-2025 |
Philipp Zabel <p.zabel@pengutronix.de> |
drivers: imx_ocotp: write support i.MX6ULL
Reuse the same write function as the other i.MX6 SoCs since the OCOTP IP is the same. i.MX6ULL just has fewer fuse banks than i.MX6UL.
Reviewed-by: Sahil
drivers: imx_ocotp: write support i.MX6ULL
Reuse the same write function as the other i.MX6 SoCs since the OCOTP IP is the same. i.MX6ULL just has fewer fuse banks than i.MX6UL.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> [m.felsch@pengutronix.de: adapt function name after renaming] Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| 3f17ae26 | 06-Mar-2025 |
Rouven Czerwinski <r.czerwinski@pengutronix.de> |
drivers: imx_ocotp: write support i.MX6Q/D/S/DL/UL
Reuse the same write functions as for i.MX8M SoC since they seem to use the same OCOTP IP core according to the reference manual.
While on it, ren
drivers: imx_ocotp: write support i.MX6Q/D/S/DL/UL
Reuse the same write functions as for i.MX8M SoC since they seem to use the same OCOTP IP core according to the reference manual.
While on it, rename the fuse write function and the set_timing helper since it's no longer imx8m specific.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> [m.felsch@pengutronix.de: add function renaming] [m.felsch@pengutronix.de: adapt commit message] Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| 7dc37aa6 | 07-Mar-2024 |
Marco Felsch <m.felsch@pengutronix.de> |
drivers: imx_ocotp: add support to burn fuses
This adds the support to burn fuses on i.MX8M SoCs. This approach assume that the IPG clock is running at 66.67 MHz which is AHB/2 (AHB max. clock = 133
drivers: imx_ocotp: add support to burn fuses
This adds the support to burn fuses on i.MX8M SoCs. This approach assume that the IPG clock is running at 66.67 MHz which is AHB/2 (AHB max. clock = 133 MHz). Due to lack of HW I added only the i.MX8M support.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| eb22ceed | 12-Jan-2026 |
Marco Felsch <m.felsch@pengutronix.de> |
drivers: imx_ocotp: fix ocotp_ctrl_wait_for for i.MX6
Make use of the udelay() function and the newly added OCOTP_OP_BUSY_TIMEOUT_US to align platforms which don't support architected timers, like i
drivers: imx_ocotp: fix ocotp_ctrl_wait_for for i.MX6
Make use of the udelay() function and the newly added OCOTP_OP_BUSY_TIMEOUT_US to align platforms which don't support architected timers, like i.MX6Q with the ones that support architected timers.
udelay() can be used since we have added the plat_get_freq() support for all i.MX SoCs which don't support architected timers previously.
While on it drop the dsb() since the memory is mapped as non-cacheable device-memory. So there is no need for a data barrier. Keep the isb() to not send use-less register loads.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| b9ca2205 | 07-Mar-2024 |
Marco Felsch <m.felsch@pengutronix.de> |
drivers: imx_ocotp: make use of hw timers during ocotp_ctrl_wait_for
Use the ARM architected timer instead of assuming that the CPU is running at 500MHz and the poll takes around ~20us.
Reviewed-by
drivers: imx_ocotp: make use of hw timers during ocotp_ctrl_wait_for
Use the ARM architected timer instead of assuming that the CPU is running at 500MHz and the poll takes around ~20us.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| e22ab3b7 | 29-Oct-2025 |
Marco Felsch <m.felsch@pengutronix.de> |
drivers: imx_ocotp: fix imx_ocotp_read g_base_addr and g_ocotp check
Check the g_base_addr and g_ocotp before do the first access.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by
drivers: imx_ocotp: fix imx_ocotp_read g_base_addr and g_ocotp check
Check the g_base_addr and g_ocotp before do the first access.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| ed0bdab5 | 05-Mar-2024 |
Marco Felsch <m.felsch@pengutronix.de> |
drivers: imx_ocotp: fix clearing the error bit
According the reference manuals the ERROR bit should be cleared by writing a '1' to the OCOTP_CTRL_CLR register and not by writing to the OCOTP_CTRL di
drivers: imx_ocotp: fix clearing the error bit
According the reference manuals the ERROR bit should be cleared by writing a '1' to the OCOTP_CTRL_CLR register and not by writing to the OCOTP_CTRL direct.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| 89a81c6d | 05-Mar-2024 |
Marco Felsch <m.felsch@pengutronix.de> |
drivers: imx_ocotp: fix error/busy defines for i.MX8MP
The i.MX8MP has an OCOTP_CTRL_ADDR field which is 8-bit wide compared to all other current supported i.MX SoCs. Due to the larger ADDR field al
drivers: imx_ocotp: fix error/busy defines for i.MX8MP
The i.MX8MP has an OCOTP_CTRL_ADDR field which is 8-bit wide compared to all other current supported i.MX SoCs. Due to the larger ADDR field all bits shifted by 1 bit.
Also make some minor style fixes while on it by replacing the mix of tabs and spaces with tabs-only.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| ec2fc831 | 10-Mar-2025 |
Rouven Czerwinski <r.czerwinski@pengutronix.de> |
core: plat-imx: i.MX6 CA9 has no generic timer
The Cortex-A9 inside of the i.MX6Q/D/QP/DL/S/SL/SLL SoCs has no generic timer support, but all variants should boot with 792Mhz out of the boot rom. Se
core: plat-imx: i.MX6 CA9 has no generic timer
The Cortex-A9 inside of the i.MX6Q/D/QP/DL/S/SL/SLL SoCs has no generic timer support, but all variants should boot with 792Mhz out of the boot rom. Set the Generic Timer configuration variable to n and implement the required plat_get_freq() call to support the udelay() calls.
Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
show more ...
|
| 5597ed38 | 03-Feb-2026 |
Jens Wiklander <jens.wiklander@linaro.org> |
ta: remoteproc: fix ELF parser
Add stricter range checks for section headers in when parsing an ELF in e32_parser_find_rsc_table().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-
ta: remoteproc: fix ELF parser
Add stricter range checks for section headers in when parsing an ELF in e32_parser_find_rsc_table().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@st.com>
show more ...
|
| 3ca5b314 | 09-Feb-2026 |
Zexi Yu <yuzexi@hisilicon.com> |
driver: crypto: hisilicon: fix qm timeout variable type
The type of the timeout variable is fixed to prevent overflow
Signed-off-by: Zexi Yu <yuzexi@hisilicon.com> Acked-by: Jens Wiklander <jens.wi
driver: crypto: hisilicon: fix qm timeout variable type
The type of the timeout variable is fixed to prevent overflow
Signed-off-by: Zexi Yu <yuzexi@hisilicon.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| cfa66f03 | 04-Feb-2026 |
Zexi Yu <yuzexi@hisilicon.com> |
driver: crypto: hisilicon: fix CKEY_LEN macro value
Fix CKEY_LEN macro value for hisilicon SEC driver
Fixes: 562874beda99 ("drivers: crypto: hisilicon: Add cipher algorithm") Signed-off-by: Zexi Yu
driver: crypto: hisilicon: fix CKEY_LEN macro value
Fix CKEY_LEN macro value for hisilicon SEC driver
Fixes: 562874beda99 ("drivers: crypto: hisilicon: Add cipher algorithm") Signed-off-by: Zexi Yu <yuzexi@hisilicon.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e9eaf44a | 03-Feb-2026 |
Jens Wiklander <jens.wiklander@linaro.org> |
drivers: crypto: fix SM2 ECC encrypt and decrypt
Adds checks that the destination buffer has room for the result in ecc_sm2_decrypt() and ecc_sm2_encrypt(). Note that these two functions not reachab
drivers: crypto: fix SM2 ECC encrypt and decrypt
Adds checks that the destination buffer has room for the result in ecc_sm2_decrypt() and ecc_sm2_encrypt(). Note that these two functions not reachable upstream since none of the crypto drivers registers ECC encrypt or decrypt drivers. So fix this before it becomes a problem.
Fixes: f4f85ac774af ("drivers: crypto: add SM2 ECC encrypt and decrypt") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Zexi Yu <yuzexi@hisilicon.com>
show more ...
|
| 6f955ef2 | 15-Jan-2026 |
Hugues KAMBA MPIANA <hugues.kambampiana@arm.com> |
plat-corstone1000: swap GIC-600 for GIC-700 for Cortex-A320 variant
Switch the Cortex-A320 variant to use GIC-700 instead of GIC-600. GIC-700 implements the Arm GICv4.1 architecture, so enable the C
plat-corstone1000: swap GIC-600 for GIC-700 for Cortex-A320 variant
Switch the Cortex-A320 variant to use GIC-700 instead of GIC-600. GIC-700 implements the Arm GICv4.1 architecture, so enable the CFG_ARM_GICV4 compiler definition for the Corstone-1000 platform.
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 213ecb84 | 15-Jan-2026 |
Hugues KAMBA MPIANA <hugues.kambampiana@arm.com> |
gic: refactor implementation of GICv3 to add GICv4 support
Refactor the definitions of GICv3 to facilitate adding support for GICv4 by: * Add macro for registers frame sizes based on GIC versions. *
gic: refactor implementation of GICv3 to add GICv4 support
Refactor the definitions of GICv3 to facilitate adding support for GICv4 by: * Add macro for registers frame sizes based on GIC versions. * Add macro for number of frame count for GICR based on GICv3 or GICv4. * Add single GICR region size definition (GIC_REDIST_REG_SIZE) based on GIC version in platform independent include/drivers/gic.h along with existing GIC_CPU_REG_SIZE and GIC_DIST_REG_SIZE definitions. * Amend usage of the now platform independent GIC_REDIST_REG_SIZE as it no longer includes a multiplication by the number of core on the target platform. * Sort in ascending order the listing of GICR register definitions and add comments to denote each definitions sections. * Add definitions for each GICR frames. * Ensure that all relevant code sections that compile for CFG_ARM_GICV3 also compile for CFG_ARM_GICV4.
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 4118c9d7 | 15-Jan-2026 |
Hugues KAMBA MPIANA <hugues.kambampiana@arm.com> |
plat-corstone1000: specify GIC version in plat specific conf.mk
The Generic Interrupt Controller architecture version is not core specific. Therefore move the CFG_ARM_GICV3 definition from cortex-a3
plat-corstone1000: specify GIC version in plat specific conf.mk
The Generic Interrupt Controller architecture version is not core specific. Therefore move the CFG_ARM_GICV3 definition from cortex-a320.mk file to the Corstone-1000 specific file.
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 08f914da | 04-Feb-2026 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: fix copy_mpi_to_bigint()
In copy_mpi_to_bigint() when copying an mbedtls_mpi to a TEE_BigInt we trim eventual leading zeroes before copying the bignum words. Prior to this patch, the number
libutee: fix copy_mpi_to_bigint()
In copy_mpi_to_bigint() when copying an mbedtls_mpi to a TEE_BigInt we trim eventual leading zeroes before copying the bignum words. Prior to this patch, the number of copied bytes where always the capacity of the source mbedtls_mpi. This can if, the destination TEE_BigInt, isn't large enough lead to writing zeroes beyond the end of the memory allocation. So fix this by only copying the significant bignum words.
Fixes: 7696ab7fe0b2 ("libutee: lessen dependency on mbedtls internals") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com>
show more ...
|
| b1c2e659 | 03-Feb-2026 |
Jens Wiklander <jens.wiklander@linaro.org> |
ta: avb: fix memory copied in read_persist_value()
read_persist_value() allocates a temporary buffer and reads persistent value from secure storage into that buffer. Next it copies the content of th
ta: avb: fix memory copied in read_persist_value()
read_persist_value() allocates a temporary buffer and reads persistent value from secure storage into that buffer. Next it copies the content of the buffer into an out memref, but it copies the number of allocated bytes instead of the size of the persistent value. No unintended information leaks though, since Temporary buffer was zero-initialized by TEE_Malloc(). To avoid unnecessary copying, copy only the number of read bytes from secure storage.
Fixes: ddcd07a27aa6 ("ta: avb: copy data to temporary buffers") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com> Reviewed-by: Etienne Carriere <etienne.carriere@st.com>
show more ...
|
| a8b8cf7b | 14-Jan-2026 |
Vincent Jardin <vjardin@free.fr> |
plat-marvell: register DDR for dynamic shared memory
Register non-secure DDR memory region for Armada 7K/8K and Armada 3700 platforms to enable dynamic shared memory support.
Without this, U-Boot's
plat-marvell: register DDR for dynamic shared memory
Register non-secure DDR memory region for Armada 7K/8K and Armada 3700 platforms to enable dynamic shared memory support.
Without this, U-Boot's OP-TEE driver fails to probe with: "OP-TEE capabilities mismatch"
The U-Boot OPTEE driver requires OPTEE_SMC_SEC_CAP_DYNAMIC_SHM capability, which is advertised when core_mmu_nsec_ddr_is_defined() returns true.
The registered region starts after the reserved shared memory (CFG_SHMEM_START + CFG_SHMEM_SIZE) and extends to the end of DRAM. CFG_DDR_SIZE defaults to 2GB but can be overridden at build time for boards with different memory configurations.
Signed-off-by: Vincent Jardin <vjardin@free.fr> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3322f132 | 30-Oct-2025 |
Suhaas Joshi <s-joshi@ti.com> |
plat-k3: drivers: Set firewall for DTHEv2 RNG
Set firewall to protect DTHEv2 RNG from non-secure world.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com> Reviewed-by: T Pratham <t-pratham@ti.com> Review
plat-k3: drivers: Set firewall for DTHEv2 RNG
Set firewall to protect DTHEv2 RNG from non-secure world.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com> Reviewed-by: T Pratham <t-pratham@ti.com> Reviewed-by: Andrew Davis <afd@ti.com>
show more ...
|
| bc1cd673 | 23-Dec-2025 |
Suhaas Joshi <s-joshi@ti.com> |
plat-k3: drivers: Remove code to get firewall configs
The ti_crypto_init_rng_fwl() function gets firewall configurations before setting new ones. This is pointless, since we are not using the config
plat-k3: drivers: Remove code to get firewall configs
The ti_crypto_init_rng_fwl() function gets firewall configurations before setting new ones. This is pointless, since we are not using the configurations that we get anywhere. Therefore remove these blocks of code.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Reviewed-by: T Pratham <t-pratham@ti.com>
show more ...
|