| 21773c96 | 02-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: arm: mm: use thread_unmask_exceptions() where applicable
Change cache_op_outer() to use thread_unmask_exceptions() instead of thread_set_exceptions() as the function unmasks interruptions it p
core: arm: mm: use thread_unmask_exceptions() where applicable
Change cache_op_outer() to use thread_unmask_exceptions() instead of thread_set_exceptions() as the function unmasks interruptions it previously masked with thread_set_exceptions(). This change makes the implementation more consistent.
No functional change.
Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 54df46b5 | 12-Jul-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: arm: use cpu_spin_lock_xsave() in generic timer implementation
Change generic timer driver for Arm 64bit architecture to use helper functions cpu_spin_lock_xsave() and cpu_spin_unlock_xrestore
core: arm: use cpu_spin_lock_xsave() in generic timer implementation
Change generic timer driver for Arm 64bit architecture to use helper functions cpu_spin_lock_xsave() and cpu_spin_unlock_xrestore() instead of calling thread_mask_exceptions()/cpu_spin_lock() pair and thread_set_exceptions()/cpu_spin_unlock() pair. This makes the implementation more consistent with the rest of the source tree.
No functional change.
Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| ad50321f | 08-Mar-2024 |
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> |
ta: remoteproc: allow remoteproc_load_fw re-entrance
Instead of returning an error if the TA_RPROC_CMD_LOAD_FW is called several times, just return TEE_SUCCESS if the firmware is already loaded.
Th
ta: remoteproc: allow remoteproc_load_fw re-entrance
Instead of returning an error if the TA_RPROC_CMD_LOAD_FW is called several times, just return TEE_SUCCESS if the firmware is already loaded.
This commit is the result of a discussion on Linux Kernel mailing list: https://lore.kernel.org/lkml/ZeCujRgH%2FodzU9og@p14s/
Fixes: fcf382e2440c ("ta: remoteproc: add remote processor Trusted Application")
Suggested-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 47bcc886 | 07-Mar-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: notif_send_async(): remove debug print
Remove the debug print D/TC:0 notif_send_async:93 0x0 from notif_send_async().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by:
core: notif_send_async(): remove debug print
Remove the debug print D/TC:0 notif_send_async:93 0x0 from notif_send_async().
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 ...
|
| 1c3c4a5f | 06-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: tests: add a notification test watchdog
Add test watchdog for asynchronous notifications where a timer interrupt triggers an asynchronous notification in the normal world kernel driver. The no
core: tests: add a notification test watchdog
Add test watchdog for asynchronous notifications where a timer interrupt triggers an asynchronous notification in the normal world kernel driver. The normal world kernel driver responds by doing a OPTEE_MSG_CMD_DO_BOTTOM_HALF call for bottom half processing. The watchdog checks that there has been a response for each timer interrupt but doesn't take any measures if a response is missing.
The purpose of the test is to exercise asynchronous notifications. Feedback is limited to debug prints on the UART so eventual regressions will not get caught by xtest unless there is a crash.
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 ...
|
| d378a547 | 06-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
plat-vexpress: qemu_armv8: define IT_SEC_PHY_TIMER
Define the interrupt ID of the secure physical timer.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome
plat-vexpress: qemu_armv8: define IT_SEC_PHY_TIMER
Define the interrupt ID of the secure physical timer.
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 ...
|
| b008cf00 | 01-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
plat-vexpress: initialize callout service
If physical timer interrupt is defined, IT_SEC_PHY_TIMER, and OP-TEE isn't virtualized, CFG_CORE_SEL2_SPMC isn't defined, initialize the callout service usi
plat-vexpress: initialize callout service
If physical timer interrupt is defined, IT_SEC_PHY_TIMER, and OP-TEE isn't virtualized, CFG_CORE_SEL2_SPMC isn't defined, initialize the callout service using that interrupt ID.
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 ...
|
| 5b7afacf | 02-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm64: implement timer_init_callout_service()
Implement timer_init_callout_service() needed to initialize and drive the callout service. Only available in AArch64.
Signed-off-by: Jens Wikland
core: arm64: implement timer_init_callout_service()
Implement timer_init_callout_service() needed to initialize and drive the callout service. Only available in AArch64.
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 ...
|
| c41db53b | 01-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: define generic callout service initializer
Add a generic timer_init_callout_service() to be implemented in architecture or platform specific code. The function shall provide an implementation
core: define generic callout service initializer
Add a generic timer_init_callout_service() to be implemented in architecture or platform specific code. The function shall provide an implementation of the abstract timer interface needed by the callout service and register a timer interrupt callback to call callout_service_cb().
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 ...
|
| cf707bd0 | 31-Jan-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add callout service
Add a callout service to call registered callback functions at a given time from now. A callout is periodic or oneshot depending on how the callback function returns. Callb
core: add callout service
Add a callout service to call registered callback functions at a given time from now. A callout is periodic or oneshot depending on how the callback function returns. Callback functions execute in nexus and interrupt context.
The callout service is initialized with callout_service_init() and depends on an abstract timer interface to manage the hardware timer. callout_service_cb() needs to be called from the timer interrupt handler to drive the callout service.
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 ...
|
| 2d8644ee | 31-Jan-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm64: add {read,write}_cntps_cval()
Add read_cntps_cval() and write_cntps_cval() to access CNTPS_CVAL_EL1, Counter-timer Physical Secure Timer CompareValue register.
Signed-off-by: Jens Wikl
core: arm64: add {read,write}_cntps_cval()
Add read_cntps_cval() and write_cntps_cval() to access CNTPS_CVAL_EL1, Counter-timer Physical Secure Timer CompareValue register.
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 ...
|
| a3552708 | 11-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: clk: clk-stm32mp13: fix memory corruption on oscillator parent
Fix oscillators struct clk instances for STM32MP13 clock driver. These clocks have 1 parent that is set during driver initiali
drivers: clk: clk-stm32mp13: fix memory corruption on oscillator parent
Fix oscillators struct clk instances for STM32MP13 clock driver. These clocks have 1 parent that is set during driver initialization, based on device tree content, whereas referred bugged commit defined 0 parents and did not allocate memory for the parent reference.
Fixes: 95f2142bf848 ("drivers: clk: clk-stm32mp13: don't gate/ungate oscillators not wired") Tested-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com> Acked-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 622eef2d | 02-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
plat-synquacer: add initialization value to local variables
Add missing initialization value to local variables in synquacer platform RNG driver to better comply with OP-TEE OS coding style and prev
plat-synquacer: add initialization value to local variables
Add missing initialization value to local variables in synquacer platform RNG driver to better comply with OP-TEE OS coding style and prevent developers from being confused when using this example as a example.
No functional change.
Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b4d1c08a | 30-Jan-2024 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
drivers: regulator: do not cache voltage level value
Always read current voltage level from the device instead of caching the level in struct regulator. This fixes issues for when the regulator leve
drivers: regulator: do not cache voltage level value
Always read current voltage level from the device instead of caching the level in struct regulator. This fixes issues for when the regulator level value depends on the parent regulator (supply). It is up the regulator drivers to cache or not this value in their private data if applicable.
Fixes: 1a3d3273040b ("drivers: regulator framework") Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| c4cdfb70 | 06-Mar-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add __must_check attribute to cpu_spin_lock_xsave()
cpu_spin_lock_xsave() masks exceptions, takes the spinlock and returns previous exception state to be restored by cpu_spin_unlock_xrestore()
core: add __must_check attribute to cpu_spin_lock_xsave()
cpu_spin_lock_xsave() masks exceptions, takes the spinlock and returns previous exception state to be restored by cpu_spin_unlock_xrestore(). The previously returned exception state must always be supplied so add the __must_check attribute to cpu_spin_lock_xsave() and its debug variants.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| ccd64a52 | 02-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: add timeout_elapsed_us()
Add API function timeout_elapsed_us() to measure to time since or until an initialized timeout reference elapses.
This function relies on other timeout_*() AP
core: kernel: add timeout_elapsed_us()
Add API function timeout_elapsed_us() to measure to time since or until an initialized timeout reference elapses.
This function relies on other timeout_*() API functions are therefore depends on CFG_CORE_HAS_GENERIC_TIMER being enabled.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| fab37ad7 | 02-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: factorize delay and timeout implementation
Factorize RISC-V and Arm architectures implementation of delay and timeout API functions into generic core kernel source directory.
Architec
core: kernel: factorize delay and timeout implementation
Factorize RISC-V and Arm architectures implementation of delay and timeout API functions into generic core kernel source directory.
Architecture or platform only need to implement timer tick count read function delay_cnt_read() and timer tick frequency (in Hertz) delay_cnt_freq() which is related to CFG_CORE_HAS_GENERIC_TIMER support.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 51b745fa | 02-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: riscv: force enable of CFG_CORE_HAS_GENERIC_TIMER
Ensure CFG_CORE_HAS_GENERIC_TIMER is enabled for RISC-V architecture since the current implementation provides the necessary routines in delay
core: riscv: force enable of CFG_CORE_HAS_GENERIC_TIMER
Ensure CFG_CORE_HAS_GENERIC_TIMER is enabled for RISC-V architecture since the current implementation provides the necessary routines in delay_arch.h outside any configuration switch directive. This change clarifies riscv based platforms configuration that previously depended on CFG_CORE_HAS_GENERIC_TIMER default enabling from mk/config.mk.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 6b0ac81d | 12-Jul-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: describe udelay()/mdelay()
Add inline description comment for udelay() and mdelay() for consistency of OP-TEE OS source tree, even if the function names are quite explicit and do not s
core: kernel: describe udelay()/mdelay()
Add inline description comment for udelay() and mdelay() for consistency of OP-TEE OS source tree, even if the function names are quite explicit and do not strictly need such descriptions.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f5305d4d | 27-Feb-2024 |
Jerome Forissier <jerome.forissier@linaro.org> |
plat-vexpress: disable PL011-specific code when CFG_SEMIHOSTING_CONSOLE=y
When the semihosting console is enabled (with CFG_SEMIHOSTING=y CFG_SEMIHOSTING_CONSOLE=y) then some code in plat-vexpress/m
plat-vexpress: disable PL011-specific code when CFG_SEMIHOSTING_CONSOLE=y
When the semihosting console is enabled (with CFG_SEMIHOSTING=y CFG_SEMIHOSTING_CONSOLE=y) then some code in plat-vexpress/main.c doesn't make sense and needs to be disabled.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| a9a3bf98 | 22-Feb-2024 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: arm64: implement __do_semihosting() for Aarch64
Implement __do_semihosting() as documented in the "Semihosting for Aarch32 and Aarch64" specification [1].
Link: https://github.com/ARM-softwar
core: arm64: implement __do_semihosting() for Aarch64
Implement __do_semihosting() as documented in the "Semihosting for Aarch32 and Aarch64" specification [1].
Link: https://github.com/ARM-software/abi-aa/blob/2023Q3/semihosting/semihosting.rst [1] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 31bb491f | 22-Feb-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
core: imx: enable TZC380 driver for all i.mx8m socs
This enables the TrustZone Address Space Controller (TZ380) driver for all members of the i.MX8M soc family. Enabling the driver ensures protectio
core: imx: enable TZC380 driver for all i.mx8m socs
This enables the TrustZone Address Space Controller (TZ380) driver for all members of the i.MX8M soc family. Enabling the driver ensures protection of the OP-TEE memory regions, so that only the secure world can access it.
Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de> Acked-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com>
show more ...
|
| d1c9f59a | 03-Feb-2024 |
Yu Chien Peter Lin <peterlin@andestech.com> |
riscv: sbi_console: prefer SBI v2.0 DBCN ecall over legacy sbi_console_putchar()
As the legacy sbi_console_putchar() may be deprecated in the future, it is recommended to use sbi_dbcn_write_byte() p
riscv: sbi_console: prefer SBI v2.0 DBCN ecall over legacy sbi_console_putchar()
As the legacy sbi_console_putchar() may be deprecated in the future, it is recommended to use sbi_dbcn_write_byte() provided by SBI v2.0 DBCN extension [1]. However, if the DBCN extension is not supported, sbi_console_putchar() can still be used as the last resort.
Link: https://github.com/riscv-non-isa/riscv-sbi-doc/blob/v2.0/src/ext-debug-console.adoc#function-console-write-byte-fid-2 [1] Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 76a2df57 | 04-Mar-2024 |
Yu Chien Peter Lin <peterlin@andestech.com> |
riscv: sbi_console: remove unused sbi_console_flush()
sbi_console_flush() won't be implemented, remove the empty function.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Al
riscv: sbi_console: remove unused sbi_console_flush()
sbi_console_flush() won't be implemented, remove the empty function.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| db96d030 | 04-Mar-2024 |
Yu Chien Peter Lin <peterlin@andestech.com> |
riscv: sbi_console: remove global spinlock
sbi_console_putc() has been protected by puts_lock, so remove the superfluous spinlock.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewe
riscv: sbi_console: remove global spinlock
sbi_console_putc() has been protected by puts_lock, so remove the superfluous spinlock.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|