| 9ba91637 | 28-Mar-2024 |
Tony Han <tony.han@microchip.com> |
drivers: pm: sam: add code for enable/disable sama7g5 DRAM self-refresh mode
Add the header file "sama7-ddr.h" for sama7g5 DRAM controller. Add 2 macros for enable and disable sama7g5 DRAM self-refr
drivers: pm: sam: add code for enable/disable sama7g5 DRAM self-refresh mode
Add the header file "sama7-ddr.h" for sama7g5 DRAM controller. Add 2 macros for enable and disable sama7g5 DRAM self-refresh mode. Enable self-refresh mode before entering the low-power modes and disable it after exiting the low-power modes.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 17022665 | 31-May-2024 |
Alvin Chang <alvinga@andestech.com> |
core: kernel: Remove unused ta_time_offs in user_ta_ctx
It seems that "ta_time_offs" member is unused now. Thus, remove it from user_ta_ctx structure.
Signed-off-by: Alvin Chang <alvinga@andestech.
core: kernel: Remove unused ta_time_offs in user_ta_ctx
It seems that "ta_time_offs" member is unused now. Thus, remove it from user_ta_ctx structure.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 48a1cce4 | 02-May-2024 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
core: firewall: add firewall framework
Add a generic firewall controller framework. The goal of this framework is to offer access control and configuration APIs, that are implemented in the firewall
core: firewall: add firewall framework
Add a generic firewall controller framework. The goal of this framework is to offer access control and configuration APIs, that are implemented in the firewall controllers drivers, to the firewall consumers. This framework requires an embedded device tree.
A firewall controller is an access controller [1]. It should register itself as a provider to the framework. Firewall controllers have the possibility to populate their bus according to defined firewall accesses defined in the "access-controllers" property in each of the device's node.
Any device that consumes one or more firewall should refer it/them in their "access-controllers" property. Arguments can be passed along with the phandle of the firewall controller(s).
Link: https://patchwork.kernel.org/project/linux-media/patch/20240105130404.301172-2-gatien.chevallier@foss.st.com/ [1] Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 2e6b9fc5 | 06-May-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: interrupts: fix inline comment typo on DT property name
Fix DT property named "interrupts-extended", mistakenly named "extended-interrupts" in interrupt API function inline description comment
core: interrupts: fix inline comment typo on DT property name
Fix DT property named "interrupts-extended", mistakenly named "extended-interrupts" in interrupt API function inline description comments.
Fixes: 33a0c8350ac1 ("core: interrupt: registering interrupt providers") Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7921973c | 05-May-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: use explicit unsigned int type in condvar
Replace unsigned with unsigned int as type of struct condvar::spin_lock.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Revie
core: kernel: use explicit unsigned int type in condvar
Replace unsigned with unsigned int as type of struct condvar::spin_lock.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| ade2f1cb | 12-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: fix include order in spinlock.h
Fix order of #include directives in spinlock.h.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.fo
core: kernel: fix include order in spinlock.h
Fix order of #include directives in spinlock.h.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d4a87690 | 17-May-2024 |
Sungbae Yoo <sungbaey@nvidia.com> |
drivers: Add FFA_CONSOLE based console driver for log
This console driver uses FFA_CONSOLE ABI to write the trace logs.
If CFG_FFA_CONSOLE is enabled, OP-TEE will try to initialize the console driv
drivers: Add FFA_CONSOLE based console driver for log
This console driver uses FFA_CONSOLE ABI to write the trace logs.
If CFG_FFA_CONSOLE is enabled, OP-TEE will try to initialize the console driver that uses FFA interface to print trace logs.
Signed-off-by: Sungbae Yoo <sungbaey@nvidia.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 95acfb12 | 29-Mar-2024 |
Tony Han <tony.han@microchip.com> |
drivers: pm: sam: rename pm_init functions for later sama7g5 support
PM support for sama7g5 will reuse some existing functions. Rename sama5d2_pm_init() to sam_pm_init(). Rename sama5d2_pm_init_all(
drivers: pm: sam: rename pm_init functions for later sama7g5 support
PM support for sama7g5 will reuse some existing functions. Rename sama5d2_pm_init() to sam_pm_init(). Rename sama5d2_pm_init_all() to sam_pm_init_all().
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 13d015f7 | 29-Mar-2024 |
Tony Han <tony.han@microchip.com> |
drivers: atmel_shdwc: enable RTT (Real-time Timer) Wake-up
For sama7g5 the Wake-up can be caused by RTT.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Jens Wiklander <jens.wiklander@li
drivers: atmel_shdwc: enable RTT (Real-time Timer) Wake-up
For sama7g5 the Wake-up can be caused by RTT.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e948a48e | 15-Apr-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: include standard header files from stpmic1_regulator.h
Add missing inclusion of stdbool.h and stddef.h in stpmic1_regulator.h. The issue was revealed when upgrading to latest SCP-firmware s
drivers: include standard header files from stpmic1_regulator.h
Add missing inclusion of stdbool.h and stddef.h in stpmic1_regulator.h. The issue was revealed when upgrading to latest SCP-firmware source tree.
Fixes: 9cb0d51670f2 ("drivers: stpmic1: export regulators API in a specific header file") Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| ea413ca5 | 31-Jan-2024 |
Gavin Liu <gavin.liu@mediatek.com> |
core: mutex: add support timeout condvar
Add support timeout condvar based on timeout notify
Signed-off-by: Gavin Liu <gavin.liu@mediatek.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org
core: mutex: add support timeout condvar
Add support timeout condvar based on timeout notify
Signed-off-by: Gavin Liu <gavin.liu@mediatek.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 450f8ada | 23-Jan-2024 |
Gavin Liu <gavin.liu@mediatek.com> |
core: notif: add support timeout notify
Add support timeout notification, allowing to avoid waiting indefinitely for the completion of an event
Signed-off-by: Gavin Liu <gavin.liu@mediatek.com> Rev
core: notif: add support timeout notify
Add support timeout notification, allowing to avoid waiting indefinitely for the completion of an event
Signed-off-by: Gavin Liu <gavin.liu@mediatek.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 7071b53b | 20-Feb-2024 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
dt-bindings: firewall: move RIFPROT binding
Move RIFPROT macro definition in stm32mp25-rif.h as it is common to all RIF-based peripherals.
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.s
dt-bindings: firewall: move RIFPROT binding
Move RIFPROT macro definition in stm32mp25-rif.h as it is common to all RIF-based peripherals.
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 56b8883f | 26-Mar-2024 |
Gatien Chevallier <gatien.chevallier@foss.st.com> |
drivers: firewall: fix stm32_rif_semaphore_enabled_and_ok() prototype
The stm32_rif_semaphore_enabled_and_ok() function checks a single CID at a time, not a bit field.
Fixes: 1506f47af917 ("drivers
drivers: firewall: fix stm32_rif_semaphore_enabled_and_ok() prototype
The stm32_rif_semaphore_enabled_and_ok() function checks a single CID at a time, not a bit field.
Fixes: 1506f47af917 ("drivers: firewall: add stm32_rif driver for common RIF features") Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| bdde1c99 | 18-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: stm32_i2c: protect bus access with a mutex
Protect concurrent accesses to an STM32 I2C bus with a PM aware mutex.
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Signed-off-by:
drivers: stm32_i2c: protect bus access with a mutex
Protect concurrent accesses to an STM32 I2C bus with a PM aware mutex.
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| c80790fe | 12-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: regulator: use mutex_pm_aware
Use newly introduced struct mutex_pm_aware semaphore to protect regulator accesses.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Eti
drivers: regulator: use mutex_pm_aware
Use newly introduced struct mutex_pm_aware semaphore to protect regulator accesses.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 9a3248fc | 29-Feb-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: clk: replace clock main spinlock with a mutex
Change clock framework lock from an interrupts masked spinning lock to a mutex. This allows the clock framework to better handle slow stabilizi
drivers: clk: replace clock main spinlock with a mutex
Change clock framework lock from an interrupts masked spinning lock to a mutex. This allows the clock framework to better handle slow stabilizing clocks as PLLs without masking the system interrupt which can have side effects on the REE or even the TEE.
To support clock accesses during low power state transition sequences while non-secure world is no operating, the lock is not taken when the execution is not in the scope of a TEE thread.
This change is not expected to impact supported platforms that currently only access clock operation from thread contexts or atomic PM sequences.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 3a20c661 | 12-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: mutex compliant with PM sequences
Add mutex_pm_aware_*() functions for mutex used on resources accessed at runtime using a conventional mutex and also during low power sequences that e
core: kernel: mutex compliant with PM sequences
Add mutex_pm_aware_*() functions for mutex used on resources accessed at runtime using a conventional mutex and also during low power sequences that execute in a non-thread context.
This change defines MUTEX_PM_AWARE_INITIALIZER macro from a new header file (mutex_pm_aware.h) instead of existing mutex.h to prevent a circular dependency between spinlock.h (requires thread.h), thread.h (indirectly includes mutex.h) and mutex.h (that would depend on spinlock.h for definition of the SPINLOCK_UNLOCK macro ).
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f6412fbd | 12-Mar-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: kernel: thread spin locking
Add thread_spin_lock() and thread_spin_unlock() for active spinning locks in situation where we need an exclusive lock in a thread and interruptible context even at
core: kernel: thread spin locking
Add thread_spin_lock() and thread_spin_unlock() for active spinning locks in situation where we need an exclusive lock in a thread and interruptible context even at the cost of a high CPU usage.
These function are intended to be used in thread context hence they assert being executed in such a context. This is to prevent on mistakenly spin in an atomic context which potentially leads to a deadlock situation.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 1cf7e98d | 14-Mar-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: replace REGISTER_TIME_SOURCE()
Remove REGISTER_TIME_SOURCE() and implement tee_time_get_sys_time() and tee_time_get_sys_time_protection_level() directly in the file where REGISTER_TIME_SOURCE(
core: replace REGISTER_TIME_SOURCE()
Remove REGISTER_TIME_SOURCE() and implement tee_time_get_sys_time() and tee_time_get_sys_time_protection_level() directly in the file where REGISTER_TIME_SOURCE() was used previously.
By avoiding indirect calls the linker can optimize the dependency tree properly and we can remove the DECLARE_KEEP_PAGER() directive needed for arm_cntpct_time_source.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| b2f99d20 | 01-Feb-2024 |
Olivier Deprez <olivier.deprez@arm.com> |
core: boot: fix memtag init sequence
Based on following observations on FVP: With boot_init_memtag called before MMU enable, DC GZA hits an alignment fault. This is because all accesses are of devic
core: boot: fix memtag init sequence
Based on following observations on FVP: With boot_init_memtag called before MMU enable, DC GZA hits an alignment fault. This is because all accesses are of device type when MMU is off. Arm ARM states for DC GZA: "If the memory region being modified is any type of Device memory, this instruction can give an alignment fault." Moving boot_init_memtag after MMU enable, DC GZA hits a permission fault, this is because the range returned by core_mmu_get_secure_memory consists of pages mapped RO (text sections) and then RW (data sections) consecutively. DC GZA is a write instruction executed towards an RO page leading to a fault.
To fix this, split boot_init_memtag into two halves: - Setup memtag operations before MMU is enabled such that MAIR_EL1 is properly configured for normal tagged memory. - Clear core TEE RW sections after MMU is enabled.
Closes: https://github.com/OP-TEE/optee_os/issues/6649 Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> [jw rewrote boot_clear_memtag()] Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-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 ...
|
| 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 ...
|