| 298fa2db | 23-Jan-2025 |
Yu-Chien Peter Lin <peter.lin@sifive.com> |
core: drivers: support SiFive UART
Add sifive uart support.
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Zong Li <zo
core: drivers: support SiFive UART
Add sifive uart support.
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Zong Li <zong.li@sifive.com> Acked-by: Alvin Chang <alvinga@andestech.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 2e27ec6c | 12-Jan-2025 |
Yu-Chien Peter Lin <peter.lin@sifive.com> |
riscv: kernel: support booting non-contiguous non-zero-based hart IDs
Currently, OP-TEE assumes 0 <= hartid < CFG_TEE_CORE_NB_CORE, and must be contiguous, which fails to accommodate different CPU t
riscv: kernel: support booting non-contiguous non-zero-based hart IDs
Currently, OP-TEE assumes 0 <= hartid < CFG_TEE_CORE_NB_CORE, and must be contiguous, which fails to accommodate different CPU topologies. For example, some RISC-V platforms, such as the HiFive Unmatched board, do not run Linux and OP-TEE on hart0, as it is a monitor core without supervisor mode support.
To address this, introduce hart_index, which is used to index per-hart structures, such as thread_core_local and root_pgt. The hart_index will range from 0 to (CFG_TEE_CORE_NB_CORE - 1), and the primary hart will have an index of 0.
Additionally, a new function, boot_primary_init_core_ids(), is added to initialize secondary hart IDs for booting via sbi_hsm_hart_start().
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Zong Li <zong.li@sifive.com> Reviewed-by: Alvin Chang <alvinga@andestech.com>
show more ...
|
| 72fc7d74 | 12-Jan-2025 |
Yu-Chien Peter Lin <peter.lin@sifive.com> |
riscv: kernel: sbi: introduce sbi_hsm_hart_get_status() function
Introduce sbi_hsm_hart_get_status() function and add comment for sbi_hsm_hart_start().
Signed-off-by: Yu-Chien Peter Lin <peter.lin@
riscv: kernel: sbi: introduce sbi_hsm_hart_get_status() function
Introduce sbi_hsm_hart_get_status() function and add comment for sbi_hsm_hart_start().
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Zong Li <zong.li@sifive.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| e27b0796 | 25-Jan-2025 |
Yu-Chien Peter Lin <peter.lin@sifive.com> |
riscv: plat-virt: move stack alignment definition
The 16-byte stack alignment is a RISC-V ABI requirement that applies to all RISC-V platforms. Move this definition from the virt platform configurat
riscv: plat-virt: move stack alignment definition
The 16-byte stack alignment is a RISC-V ABI requirement that applies to all RISC-V platforms. Move this definition from the virt platform configuration to riscv.h.
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Zong Li <zong.li@sifive.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| e413d9ee | 12-Jan-2025 |
Yu-Chien Peter Lin <peter.lin@sifive.com> |
riscv: kernel: entry.S: remove unused boot_args array
The boot_args array is unused anywhere and its contents are cleared during the zeroing of the .bss section, so it serves no purpose. Removing it
riscv: kernel: entry.S: remove unused boot_args array
The boot_args array is unused anywhere and its contents are cleared during the zeroing of the .bss section, so it serves no purpose. Removing it simplifies the code.
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Zong Li <zong.li@sifive.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
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 ...
|
| 07603a1f | 01-Apr-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutils: avoid unneeded zero init in realloc()
In raw_malloc_flags(), remove the special case for user space where memory is always zero initialized regardless of MAF_ZERO_INIT. This removes a case
libutils: avoid unneeded zero init in realloc()
In raw_malloc_flags(), remove the special case for user space where memory is always zero initialized regardless of MAF_ZERO_INIT. This removes a case of unneeded zero init for realloc().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 34611468 | 01-Apr-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: fix __utee_tcb_init()
Replace realloc() calls with calls to malloc_flags() to make sure that newly allocated memory is zero initialized.
Fixes: 9d224046e710 ("ldelf, libutee: add minimal T
libutee: fix __utee_tcb_init()
Replace realloc() calls with calls to malloc_flags() to make sure that newly allocated memory is zero initialized.
Fixes: 9d224046e710 ("ldelf, libutee: add minimal Thread Local Storage support") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 93b037ac | 01-Apr-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: TEE_Realloc(): avoid realloc()
TEE_Realloc() and realloc() have slightly different behaviour. TEE_Realloc() must zero initialize newly allocated memory while realloc() isn't expected to do
libutee: TEE_Realloc(): avoid realloc()
TEE_Realloc() and realloc() have slightly different behaviour. TEE_Realloc() must zero initialize newly allocated memory while realloc() isn't expected to do that. So use malloc_flags() and raw_malloc_flags() with the MAF_ZERO_INIT flag to make sure that newly allocated memory is zero initialized.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b13e4076 | 01-Apr-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutils: add raw_malloc_flags()
Add raw_malloc_flags() as a counterpart to malloc_flags().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier
libutils: add raw_malloc_flags()
Add raw_malloc_flags() as a counterpart to malloc_flags().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 228cf40e | 28-Mar-2025 |
Rouven Czerwinski <r.czerwinski@pengutronix.de> |
tree-wide: use /usr/bin/env bash in bash scripts
Some distributions don't provide bash inside of /bin, increase compatibility by using env to resolve the correct path at runtime. Fixes running the s
tree-wide: use /usr/bin/env bash in bash scripts
Some distributions don't provide bash inside of /bin, increase compatibility by using env to resolve the correct path at runtime. Fixes running the scripts on my NixOS systems.
Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f84dc262 | 27-Mar-2025 |
Alvin Chang <alvinga@andestech.com> |
ta: Compile TA with "-fno-stack-protector" if TA stack protector is off
Depends on compiler version and OS distributions, the stack protector may be enabled by default. This means TA is always compi
ta: Compile TA with "-fno-stack-protector" if TA stack protector is off
Depends on compiler version and OS distributions, the stack protector may be enabled by default. This means TA is always compiled with "-fstack-protector", even if _CFG_TA_STACK_PROTECTOR is not 'y'.
To solve this issue, we explicitly provide "-fno-stack-protector" compile option when _CFG_TA_STACK_PROTECTOR is not 'y'. Thus, the TA stack protector is definitely disabled.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| ab03d590 | 27-Mar-2025 |
Alvin Chang <alvinga@andestech.com> |
ta: Export _CFG_TA_STACK_PROTECTOR
_CFG_TA_STACK_PROTECTOR is config variable referenced in __ta_entry() to generate random stack canary. Thus, it needs to be exported to TA makefile.
Signed-off-by
ta: Export _CFG_TA_STACK_PROTECTOR
_CFG_TA_STACK_PROTECTOR is config variable referenced in __ta_entry() to generate random stack canary. Thus, it needs to be exported to TA makefile.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 1283e108 | 27-Mar-2025 |
Alvin Chang <alvinga@andestech.com> |
ta: Pass config variables prefixed as _CFG_ from conf.mk to build flags
In addition to config variables prefixed as CFG_, some other config variables are prefixed as _CFG_ and also referenced during
ta: Pass config variables prefixed as _CFG_ from conf.mk to build flags
In addition to config variables prefixed as CFG_, some other config variables are prefixed as _CFG_ and also referenced during TA compilation. Add _CFG_ config variables to be compiler flags.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Jerome Forissier <jerome.forissier@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 ...
|
| 289ab1b4 | 26-Mar-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: pta: fix virt_to_phys() self tests
Only test on VCORE_FREE_* addresses if CFG_DYN_CONFIG=y since those addresses otherwise are unmapped or even unassigned.
Fixes: a05b3a459a3b ("core: pta: ad
core: pta: fix virt_to_phys() self tests
Only test on VCORE_FREE_* addresses if CFG_DYN_CONFIG=y since those addresses otherwise are unmapped or even unassigned.
Fixes: a05b3a459a3b ("core: pta: add self tests for virt_to_phys()") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 9439ba6f | 22-Mar-2025 |
Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> |
ci: add ubsan build job
Add a CI job that builds with CFG_{CORE,TA}_SANITIZE_UNDEFINED=y configs
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Reviewed-by: Jens Wiklander
ci: add ubsan build job
Add a CI job that builds with CFG_{CORE,TA}_SANITIZE_UNDEFINED=y configs
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Reviewed-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 ...
|
| 886b8adb | 20-Mar-2025 |
Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> |
build: always link in-tree TAs with the -static flag
Shared libraries may remain in the output directory as artifacts from previous builds, causing unintended behavior. To prevent this, in-tree TAs
build: always link in-tree TAs with the -static flag
Shared libraries may remain in the output directory as artifacts from previous builds, causing unintended behavior. To prevent this, in-tree TAs are now always linked using the -static flag, regardless of whether shared libraries are enabled.
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Reviewed-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 ...
|
| fa1190c6 | 20-Feb-2025 |
Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> |
core: suppress duplicate ubsan reports
When ubsan panic mode is disabled, the same undefined behavior may be reported multiple times from the same code location. This change ensures that only the fi
core: suppress duplicate ubsan reports
When ubsan panic mode is disabled, the same undefined behavior may be reported multiple times from the same code location. This change ensures that only the first occurrence is logged.
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Reviewed-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 ...
|
| 949b0c0c | 15-Jan-2025 |
Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> |
ta: enable ubsan support for TAs
Introduce CFG_TA_SANITIZE_UNDEFINED config to sanitize trusted applications. If CFG_TA_SANITIZE_UNDEFINED is set sanitize flags are propagated to internal TAs (avb,
ta: enable ubsan support for TAs
Introduce CFG_TA_SANITIZE_UNDEFINED config to sanitize trusted applications. If CFG_TA_SANITIZE_UNDEFINED is set sanitize flags are propagated to internal TAs (avb, pkcs11, remoteproc, trusted_keys) and external TAs, which are built with the devkit.
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Reviewed-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 ...
|
| ff3ed644 | 15-Jan-2025 |
Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> |
ldelf: enable ubsan support
Ubsan support was previously limited to core code. This commit moves the ubsan runtime implementation to libutils, making it available for ldelf and trusted applications.
ldelf: enable ubsan support
Ubsan support was previously limited to core code. This commit moves the ubsan runtime implementation to libutils, making it available for ldelf and trusted applications.
As a result, ldelf will now be built with ubsan support when CFG_CORE_SANITIZE_UNDEFINED is enabled.
Additionally, to avoid potential infinite recursion, ubsan instrumentation is explicitly disabled for ubsan.c.
Signed-off-by: Aleksandr Iashchenko <aleksandr.iashchenko@linutronix.de> Reviewed-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 ...
|
| 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 ...
|
| f1cec17a | 25-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
drivers: scmi-msg: support performance domains for DVFS
Implement some of the SCMI performance domain management messages in scmi-msg drivers to support basic DVFS scenario.
Co-developed-by: Etienn
drivers: scmi-msg: support performance domains for DVFS
Implement some of the SCMI performance domain management messages in scmi-msg drivers to support basic DVFS scenario.
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 ...
|