| c60785c4 | 28-Mar-2025 |
Yu-Chien Peter Lin <peter.lin@sifive.com> |
core: move plat_get_random_stack_canaries() to common part
Other architectures (e.g. RISC-V) may want to call plat_get_random_stack_canaries() for random stack canaries. Move it from ARM architectur
core: move plat_get_random_stack_canaries() to common part
Other architectures (e.g. RISC-V) may want to call plat_get_random_stack_canaries() for random stack canaries. Move it from ARM architecture directory to common part.
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Co-developed-by: Alvin Chang <alvinga@andestech.com> Signed-off-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 205e39dd | 27-Mar-2025 |
Ricardo Salveti <ricardo@foundries.io> |
core: imx: disable CFG_CORE_HUK_SUBKEY_COMPAT_USE_OTP_DIE_ID with se05x
Commit fc80dabbd5a7 ("core: imx: enable CFG_CORE_HUK_SUBKEY_COMPAT_USE_OTP_DIE_ID by default") created a regression when se05x
core: imx: disable CFG_CORE_HUK_SUBKEY_COMPAT_USE_OTP_DIE_ID with se05x
Commit fc80dabbd5a7 ("core: imx: enable CFG_CORE_HUK_SUBKEY_COMPAT_USE_OTP_DIE_ID by default") created a regression when se05x is used on iMX platforms, as its own implementation of tee_otp_get_die_id cannot be called so early in the boot process, since the stack itself is not properly initialized at that time.
Forcely disable CFG_CORE_HUK_SUBKEY_COMPAT_USE_OTP_DIE_ID when se05x is used to restore back to the previous working behavior.
Signed-off-by: Ricardo Salveti <ricardo@foundries.io> Acked-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Sahil Malhotra <sahil.malhotra@nxp.com>
show more ...
|
| 0ae5ef34 | 03-Apr-2025 |
Thomas Bourgoin <thomas.bourgoin@foss.st.com> |
tree wide: fix header files dependencies in linker files
When linking with a generated linker script like kern.ld.S, dependencies with header file are not regenerated. Same issue as commit acdc32afe
tree wide: fix header files dependencies in linker files
When linking with a generated linker script like kern.ld.S, dependencies with header file are not regenerated. Same issue as commit acdc32afe18f ("mk/compile.mk: fix header dependency in .d file")
Add option -MP used to fix error generated when removing header files.
Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a29ff3cf | 02-Apr-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: ffa: enable FF-A version 1.2 for virtualization
With Xen version 4.20 released we can announce version 1.2 for OP-TEE when negotiating the version to use. So remove the special check for
core: arm: ffa: enable FF-A version 1.2 for virtualization
With Xen version 4.20 released we can announce version 1.2 for OP-TEE when negotiating the version to use. So remove the special check for CFG_NS_VIRTUALIZATION=y when exchanging versions.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 44388d37 | 01-Apr-2025 |
Sahil Malhotra <sahil.malhotra@nxp.com> |
core: imx: disable ELE on i.MX8ULP by default
On i.MX8ULP, there is only one MU to communicate with ELE, which cannot be dedicated on OP-TEE side all the time. There may be ELE services running on L
core: imx: disable ELE on i.MX8ULP by default
On i.MX8ULP, there is only one MU to communicate with ELE, which cannot be dedicated on OP-TEE side all the time. There may be ELE services running on Linux side, which can cause conflict with OP-TEE, So disabling ELE by default. Moreover i.MX8ULP also has CAAM, so HUK and Random number are coming from CAAM.
Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 68059d72 | 23-Jan-2025 |
Ed Tubbs <ectubbs@gmail.com> |
plat-rockchip: rk3588: add OTP_S support and HUK
Add OTP_S support for Rockchip rk3588 Add tee_otp_get_hw_unique_key()
Signed-off-by: Ed Tubbs <ectubbs@gmail.com> Acked-by: Etienne Carriere <etienn
plat-rockchip: rk3588: add OTP_S support and HUK
Add OTP_S support for Rockchip rk3588 Add tee_otp_get_hw_unique_key()
Signed-off-by: Ed Tubbs <ectubbs@gmail.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| ea991d74 | 21-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: remove THREAD_CORE_LOCAL_STACKCHECK_RECURSION
THREAD_CORE_LOCAL_STACKCHECK_RECURSION was introduced in the commit b5ec8152f3e5 ("core: arm: refactor boot"). However, clearing the stackche
core: arm: remove THREAD_CORE_LOCAL_STACKCHECK_RECURSION
THREAD_CORE_LOCAL_STACKCHECK_RECURSION was introduced in the commit b5ec8152f3e5 ("core: arm: refactor boot"). However, clearing the stackcheck_recursion flag from assembly during boot isn't needed since the stack pointer is set up in synch with the recorded information in thread_core_local. So remove the unnecessary clearing and remove THREAD_CORE_LOCAL_STACKCHECK_RECURSION.
Reported-by: Alvin Chang <alvinga@andestech.com> Closes: https://github.com/OP-TEE/optee_os/commit/b5ec8152f3e5ad8cc111952f0483f5cf903aac7c#r154088026 Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| bace849d | 16-Dec-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
plat-stm32mp1: conf: enable SCMI PERF for stm32mp13
Enable CFG_SCMI_MSG_PERF_DOMAIN for STM32MP13 that is used to provide CPU OPP to linux.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Rev
plat-stm32mp1: conf: enable SCMI PERF for stm32mp13
Enable CFG_SCMI_MSG_PERF_DOMAIN for STM32MP13 that is used to provide CPU OPP to linux.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 0cffa1df | 25-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
plat-stm32mp1: SCMI performance domain for CPU DVFS
Implement scmi-msg perf protocol platform handlers to drive CPU voltage/frequency scaling support.
Co-developed-by: Etienne Carriere <etienne.car
plat-stm32mp1: SCMI performance domain for CPU DVFS
Implement scmi-msg perf protocol platform handlers to drive CPU voltage/frequency scaling support.
Co-developed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| d87bbb8a | 25-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
dts: stm32: describe supported-hw on CPU OPP for STM32MP13
Describe supported hardware for each OPP.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Acked-by: Etienne Carriere <etienne.carrie
dts: stm32: describe supported-hw on CPU OPP for STM32MP13
Describe supported hardware for each OPP.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| d8aa45cc | 09-Dec-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
plat-stm32mp1: chip and STM32MP15 platform identification
New platform function to get the chip identification using DBGMCU SoC register.
Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com>
plat-stm32mp1: chip and STM32MP15 platform identification
New platform function to get the chip identification using DBGMCU SoC register.
Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com> Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 61491a0c | 21-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
plat-stm32mp1: retrieve chip id from syscfg
Chip ID is read from SYSCFG. Add the associated read function and new CHIP IDs.
Use the chip id to dynamically detect the CRYPTO hardware support, the se
plat-stm32mp1: retrieve chip id from syscfg
Chip ID is read from SYSCFG. Add the associated read function and new CHIP IDs.
Use the chip id to dynamically detect the CRYPTO hardware support, the second CPU core, and CPU OPP.
Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 54f13dcc | 28-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
plat-stm32mp1: default enable CFG_STM32_CPU_OPP for STM32MP13
Enable CFG_STM32_CPU_OPP for STM32MP13 and increase CFG_STM32MP_OPP_COUNT to 3 OPP.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.co
plat-stm32mp1: default enable CFG_STM32_CPU_OPP for STM32MP13
Enable CFG_STM32_CPU_OPP for STM32MP13 and increase CFG_STM32MP_OPP_COUNT to 3 OPP.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| fb484158 | 25-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
dts: stm32: describe CPU OPP for STM32MP13
Describe CPU operating points for STM32MP13 boards.
Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Signed-off-by: Pascal Paillet <p.paillet@fos
dts: stm32: describe CPU OPP for STM32MP13
Describe CPU operating points for STM32MP13 boards.
Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Signed-off-by: Pascal Paillet <p.paillet@foss.st.com>
show more ...
|
| 155ebf23 | 21-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
drivers: add stm32 CPU DVFS driver
drivers/cpu_opp.c implements dynamic voltage and frequency scaling for the CPU. It is used at boot time to set an higher operating point than the one used to boot.
drivers: add stm32 CPU DVFS driver
drivers/cpu_opp.c implements dynamic voltage and frequency scaling for the CPU. It is used at boot time to set an higher operating point than the one used to boot. It will be used by the SCMI performance service.
Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 3e7d042b | 14-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: boot: fix calling page_alloc_init()
The functions page_alloc_init() and nex_page_alloc_init() depends on MEM_AREA_TEE_DYN_VASPACE and MEM_AREA_NEX_DYN_VASPACE, but the memory areas are on
core: arm: boot: fix calling page_alloc_init()
The functions page_alloc_init() and nex_page_alloc_init() depends on MEM_AREA_TEE_DYN_VASPACE and MEM_AREA_NEX_DYN_VASPACE, but the memory areas are only available with CFG_DYN_CONFIG so check that before calling the functions.
Fixes: 0e12fb0c2d75 ("core: arm: boot: call page_alloc_init()") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 758c3687 | 13-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: fix CFG_BOOT_INIT_THREAD_CORE_LOCAL0
CFG_BOOT_INIT_THREAD_CORE_LOCAL0 is misleading since it's concerning the core id of the boot CPU. So rename the configuration flag to CFG_BOOT_INIT_CURRENT
core: fix CFG_BOOT_INIT_THREAD_CORE_LOCAL0
CFG_BOOT_INIT_THREAD_CORE_LOCAL0 is misleading since it's concerning the core id of the boot CPU. So rename the configuration flag to CFG_BOOT_INIT_CURRENT_THREAD_CORE_LOCAL and update the code as needed. Only thread_init_thread_core_local() has a change of behaviour where the boot CPU now can have any core id.
Fixes: b5ec8152f3e5 ("core: arm: refactor boot") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 14bb2927 | 06-Mar-2025 |
Daniel Lang <ldaniell14260@gmail.com> |
dts: stm32: disable unused i2c1 and i2c2
i2c1 and i2c2 on Avenger96 board are not consumed by OP-TEE, therefore they can be disabled.
Link: https://github.com/OP-TEE/optee_os/issues/7296 Acked-by:
dts: stm32: disable unused i2c1 and i2c2
i2c1 and i2c2 on Avenger96 board are not consumed by OP-TEE, therefore they can be disabled.
Link: https://github.com/OP-TEE/optee_os/issues/7296 Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Signed-off-by: Daniel Lang <ldaniell14260@gmail.com>
show more ...
|
| 0e12fb0c | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: boot: call page_alloc_init()
Call page_alloc_init()/nex_page_alloc_init() from init_primary() after unused boot memory has been released. virt_guest_created() calls page_alloc_init().
Th
core: arm: boot: call page_alloc_init()
Call page_alloc_init()/nex_page_alloc_init() from init_primary() after unused boot memory has been released. virt_guest_created() calls page_alloc_init().
This allows virt_page_alloc() to be used instead of boot_mem_alloc() now that boot_mem_alloc() can't be used any longer.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 96f43358 | 26-Feb-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add nex_dyn_vaspace and tee_dyn_vaspace areas
Add MEM_AREA_NEX_DYN_VASPACE and MEM_AREA_TEE_DYN_VASPACE areas for dynamic Nexus and TEE memory mapping. This will be used to map additional heap
core: add nex_dyn_vaspace and tee_dyn_vaspace areas
Add MEM_AREA_NEX_DYN_VASPACE and MEM_AREA_TEE_DYN_VASPACE areas for dynamic Nexus and TEE memory mapping. This will be used to map additional heap and the stacks in later patches.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 45fecab0 | 06-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
Deprecate libgcc for OP-TEE core and ldelf
By default turn of linking with ligcc for OP-TEE core and ldelf. This allows building CFG_CORE_BTI=y and CFG_TA_BTI=n using a AArch64 cross toolchain witho
Deprecate libgcc for OP-TEE core and ldelf
By default turn of linking with ligcc for OP-TEE core and ldelf. This allows building CFG_CORE_BTI=y and CFG_TA_BTI=n using a AArch64 cross toolchain without BTI enabled in libgcc.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 3006d24d | 08-Jan-2025 |
Tony Han <tony.han@microchip.com> |
plat-sam: add sama7g5's PDMC gclk clocks to the SCMI clock list
Add PDMC gclk clocks to the SCMI clock list so that they could be used outside OP-TEE OS.
Signed-off-by: Tony Han <tony.han@microchip
plat-sam: add sama7g5's PDMC gclk clocks to the SCMI clock list
Add PDMC gclk clocks to the SCMI clock list so that they could be used outside OP-TEE OS.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f90d78a6 | 08-Jan-2025 |
Tony Han <tony.han@microchip.com> |
plat-sam: add clock range support for the clocks used by SCMI
Add clock range attribute to the struct for the clocks. New function for initializing the clock range for the clocks. Implement "plat_sc
plat-sam: add clock range support for the clocks used by SCMI
Add clock range attribute to the struct for the clocks. New function for initializing the clock range for the clocks. Implement "plat_scmi_clock_rates_by_step()" to be used by SCMI.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b0da0d59 | 06-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: boot: add boot_init_primary_runtime()
Split the early parts of boot_init_primary_final() into boot_init_primary_runtime(). boot_init_primary_runtime() initializes the runtime, part of that is
core: boot: add boot_init_primary_runtime()
Split the early parts of boot_init_primary_final() into boot_init_primary_runtime(). boot_init_primary_runtime() initializes the runtime, part of that is to generate the PAUTH keys. The PAUTH keys are loaded in assembly before boot_init_primary_final() is called.
This fixes an error when SPs are initialized by entering and exiting S-EL0 from boot_init_primary_final() but the PAUTH registers hasn't been initialized with the right values. E/TC:0 0 Core undef-abort at address 0xe106be4 E/TC:0 0 esr 0x72000000 ttbr0 0x200000e27d000 ttbr1 0x00000000 cidr 0x0 E/TC:0 0 cpu #0 cpsr 0x60000144 E/TC:0 0 x0 0000000000000000 x1 0000000000000000 E/TC:0 0 x2 0000000000000000 x3 0000000000000000 E/TC:0 0 x4 000000000e27a060 x5 000000000e27a05c E/TC:0 0 x6 000000000000009f x7 0000000000000083 E/TC:0 0 x8 0000000000000000 x9 0000000000004367 E/TC:0 0 x10 000000000000009f x11 0000000000000000 E/TC:0 0 x12 0000000000000000 x13 0000000040006f80 E/TC:0 0 x14 0000000000000000 x15 0000000000000000 E/TC:0 0 x16 000000000e107460 x17 0000000000000000 E/TC:0 0 x18 0000000000000000 x19 000000000e002000 E/TC:0 0 x20 000000000e300000 x21 0000000040000000 E/TC:0 0 x22 0000000000000000 x23 000000000e272830 E/TC:0 0 x24 000000000e22c250 x25 0000000000000000 E/TC:0 0 x26 0000000000000000 x27 0000000000000000 E/TC:0 0 x28 0000000000000000 x29 000000000e27a020 E/TC:0 0 x30 0a2ed3b10e1314e8 elr 000000000e106be4 E/TC:0 0 sp_el0 000000000e27a010 E/TC:0 0 TEE load address @ 0xe100000 E/TC:0 0 Core undef-abort at address 0xe106be4 .debug_info+27620 E/TC:0 0 Call stack: E/TC:0 0 0x0e106be4 thread_enter_user_mode at core/arch/arm/kernel/thread.c:1049 E/TC:0 0 0x0e110628 sp_open_session at core/arch/arm/kernel/secure_partition.c:635 E/TC:0 0 0x0e112508 sp_init_uuid at core/arch/arm/kernel/secure_partition.c:1583 E/TC:0 0 0x0e1135f8 sp_init_all at core/arch/arm/kernel/secure_partition.c:2018 E/TC:0 0 0x0e137950 do_init_calls at core/kernel/initcall.c:20 E/TC:0 0 0x0e137b0c call_finalcalls at core/kernel/initcall.c:73
Fixes: b5ec8152f3e5 ("core: arm: refactor boot") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 6169a1f6 | 04-Feb-2025 |
Chris Morgan <macromorgan@hotmail.com> |
plat-rockchip: rk3588: Correct TZDRAM_START and SHMEM_START
Update the TZDRAM_START and SHMEM_START values to match the PX30 and RK3399 values. If this is not done, a compressed kernel using the def
plat-rockchip: rk3588: Correct TZDRAM_START and SHMEM_START
Update the TZDRAM_START and SHMEM_START values to match the PX30 and RK3399 values. If this is not done, a compressed kernel using the default value of kernel_comp_addr_r (0x0a000000) within U-Boot and having a decompressed size greater than 28MiB puts the decompressed kernel in the reserved address space for OP-TEE that starts at 0x08400000. Using the values for the RK3399 and PX30 avoids this problem.
Fixes: 14754b93b1b7 ("plat-rockchip: add support for Rockchip rk3588") Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|