| 1b5c7ca4 | 22-Jun-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: interrupt: helper function interrupt_alloc_add_conf_handler()
Adds interrupt API function interrupt_alloc_add_conf_handler() to allocate, configure and register an interrupt handler, providing
core: interrupt: helper function interrupt_alloc_add_conf_handler()
Adds interrupt API function interrupt_alloc_add_conf_handler() to allocate, configure and register an interrupt handler, providing interrupt type and priority.
Acked-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 ...
|
| 99e2612c | 16-May-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: move to interrupt_call_handlers()
Removes itr_handle() in favor to interrupt_call_handlers(). This changes updates all implemented main interrupt controller drivers that are the GIC driver,
drivers: move to interrupt_call_handlers()
Removes itr_handle() in favor to interrupt_call_handlers(). This changes updates all implemented main interrupt controller drivers that are the GIC driver, the HFIC driver and Atmel SAIC driver.
Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-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 ...
|
| c9c53de1 | 14-Sep-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: dt_driver: add dt_driver_provider_priv_data()
Implements dt_driver_provider_priv_data() to get the private data registered with a provider. Regulator framework will use this function to return
core: dt_driver: add dt_driver_provider_priv_data()
Implements dt_driver_provider_priv_data() to get the private data registered with a provider. Regulator framework will use this function to return the regulator handle associated to a regulator provider driver.
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 193944aa | 14-Sep-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: dt_driver: define DT_DRIVER_REGULATOR
Adds DT_DRIVER_REGULATOR for a regulator consumer to retrieve its regulator device(s) from device tree information.
Acked-by: Gatien Chevallier <gatien.c
core: dt_driver: define DT_DRIVER_REGULATOR
Adds DT_DRIVER_REGULATOR for a regulator consumer to retrieve its regulator device(s) from device tree information.
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 200cc96d | 23-Aug-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add non-volatile monotonic counter interface
Adds a stubbed non-volatile monotonic counter interface with a REE FS counter. Platforms or drivers overrides the weak functions nv_counter_get_ree
core: add non-volatile monotonic counter interface
Adds a stubbed non-volatile monotonic counter interface with a REE FS counter. Platforms or drivers overrides the weak functions nv_counter_get_ree_fs() and nv_counter_incr_ree_fs_to() to provide a non-stubbed implementation of the counter.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 330e04ef | 13-Sep-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: rename tos_fw_config_dt to manifest_dt
Renames tos_fw_config_dt to manifest_dt as a preparation for coming patches to let it represent all device tree manifests provided in an FF-A configurati
core: rename tos_fw_config_dt to manifest_dt
Renames tos_fw_config_dt to manifest_dt as a preparation for coming patches to let it represent all device tree manifests provided in an FF-A configuration.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Leisen <leisen1@huawei.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b39fcd95 | 06-Sep-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add bb_free_wipe()
Adds bb_free_wipe() the bounce buffer counter-part of free_wipe().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere
core: add bb_free_wipe()
Adds bb_free_wipe() the bounce buffer counter-part of free_wipe().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| c10e3fa9 | 31-Aug-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: fix race in handling TA panic
A TA context (struct tee_ta_ctx), can only be accessed and manipulated if either locked or set to busy by the current thread, or if it has no no other references.
core: fix race in handling TA panic
A TA context (struct tee_ta_ctx), can only be accessed and manipulated if either locked or set to busy by the current thread, or if it has no no other references.
Prior to this patch this wasn't followed by tee_ta_open_session(), tee_ta_invoke_command(), and dump_ta_memstats(). Accesses were made to the "panicked" field of struct tee_ta_ctx. destroy_ta_ctx_from_session() was also manipulating sessions possibly being used by other threads.
So fix this by only accessing the internals of the TA context while holding the needed lock. destroy_ta_ctx_from_session() is removed, the new ts_ops callback release_state() is used instead to free what can be freed from a panicked TA context. The last session referencing the TA context will free it.
Fixes: fd10f62b8210 ("core: keep alive TA context can be created after TA has panicked") 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> Tested-by: Wentao Sun <wentao.sun@amlogic.com>
show more ...
|
| 5a5d1173 | 01-Sep-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add release_state to struct ts_ops
Adds the optional function pointer release_state() to struct ts_ops. This callback will be called when a TA has panicked and as many resources as possible ne
core: add release_state to struct ts_ops
Adds the optional function pointer release_state() to struct ts_ops. This callback will be called when a TA has panicked and as many resources as possible need to be released early. release_state() is a subset of the destroy() callback. When the destroy() is called eventually it will free the entire state of the TA regardless if release_state() has been called before or not. This allows freeing resources while there are still open sessions to the TA.
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 ...
|
| ef44161f | 25-Aug-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: update ts_store API with user space buffer
Updates the read() function pointer in struct ts_store_ops to take an user space buffer in addition to the previous core buffer. Core buffers are nor
core: update ts_store API with user space buffer
Updates the read() function pointer in struct ts_store_ops to take an user space buffer in addition to the previous core buffer. Core buffers are normal secure memory while user space buffers should only be accessed using the user_access.h functions.
The different TA storage implementations are updated accordingly.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 107f49d1 | 25-Aug-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add BB_MEMDUP_USER() and BB_MEMDUP_USER_PRIVATE()
Adds BB_MEMDUP_USER() and BB_MEMDUP_USER_PRIVATE() wrapper macros to allow non-void pointer destination.
Signed-off-by: Jens Wiklander <jens.
core: add BB_MEMDUP_USER() and BB_MEMDUP_USER_PRIVATE()
Adds BB_MEMDUP_USER() and BB_MEMDUP_USER_PRIVATE() wrapper macros to allow non-void pointer destination.
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 ...
|
| 0b00e98d | 23-Aug-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: linker.h: replace __arm__ with ARM32
We use ARM32 and ARM64 throughout the core code, not __arm__ and __aarch64__, so replace the occurrence of __arm__ that is in linker.h.
Signed-off-by: Jer
core: linker.h: replace __arm__ with ARM32
We use ARM32 and ARM64 throughout the core code, not __arm__ and __aarch64__, so replace the occurrence of __arm__ that is in linker.h.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e6e1a209 | 07-Jul-2023 |
Thomas Bourgoin <thomas.bourgoin@foss.st.com> |
core: allow redefinition of function huk_subkey_derive()
Set the function huk_subkey_derive() as weak to allow platform custom implementation. We add __huk_subkey_derive() with the implementation of
core: allow redefinition of function huk_subkey_derive()
Set the function huk_subkey_derive() as weak to allow platform custom implementation. We add __huk_subkey_derive() with the implementation of HUK derivation so the default implementation is still accessible when huk_subkey_derive() is overridden. This is useful if the key derivation is implemented using hardware discovered during intilization. If the substem used to derive a key is disabled, the function __huk_subkey_derive() can be used as a fallback.
Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 653409a2 | 03-Aug-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: pta: add helper functions to support calls from TA when CFG_PAN=y
Introduce helper function to make it easier to use bounce buffers in a PTA entry point to support calls with memrefs from user
core: pta: add helper functions to support calls from TA when CFG_PAN=y
Introduce helper function to make it easier to use bounce buffers in a PTA entry point to support calls with memrefs from user space TAs when PAN is enabled.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f6b5feb1 | 18-Jul-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add default copy_to_user{,_private}()
Adds default implementations for copy_to_user_private() and copy_to_user() when CFG_WITH_USER_TA=n.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.
core: add default copy_to_user{,_private}()
Adds default implementations for copy_to_user_private() and copy_to_user() when CFG_WITH_USER_TA=n.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| e59bc1db | 18-Jul-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add check_user_access() helper function
Adds check_user_access() to simplify checking if a user mode memory buffer may be accessed as expected.
Signed-off-by: Jens Wiklander <jens.wiklander@l
core: add check_user_access() helper function
Adds check_user_access() to simplify checking if a user mode memory buffer may be accessed as expected.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| df913c6d | 02-Aug-2023 |
Alvin Chang <alvinga@andestech.com> |
core: arm: Rename primary_init_intc() to boot_primary_init_intc()
Since interrupt controllers are usually initialized in boot stage, rename primary_init_intc() to boot_primary_init_intc().
Signed-o
core: arm: Rename primary_init_intc() to boot_primary_init_intc()
Since interrupt controllers are usually initialized in boot stage, rename primary_init_intc() to boot_primary_init_intc().
Signed-off-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 8aae4669 | 31-Jul-2023 |
Alvin Chang <alvinga@andestech.com> |
core: arm: Rename main_secondary_init_intc() to boot_secondary_init_intc()
main_secondary_*() is an ambiguous name since it conveys no meaning relative to the purpose of the function. Fix it by rena
core: arm: Rename main_secondary_init_intc() to boot_secondary_init_intc()
main_secondary_*() is an ambiguous name since it conveys no meaning relative to the purpose of the function. Fix it by renameing to boot_secondary_init_intc(), since interrupt controllers are always initialized in boot stage.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| ef50391e | 19-Jul-2023 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: rename interrupt controller functions
This commit renames interrupt controller function names to be more generic: - Rename main_init_gic() to primary_init_intc() - Rename secondary_init_gic()
core: rename interrupt controller functions
This commit renames interrupt controller function names to be more generic: - Rename main_init_gic() to primary_init_intc() - Rename secondary_init_gic() to secondary_init_intc()
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 0c49b6d6 | 05-Jul-2023 |
Alvin Chang <alvinga@andestech.com> |
core: kernel: Refine variable declarations and return values in dt.c
Provide initialization values for local variables. The return values of libfdt functions are returned instead of -1 since libfdt
core: kernel: Refine variable declarations and return values in dt.c
Provide initialization values for local variables. The return values of libfdt functions are returned instead of -1 since libfdt has its own error codes and they are useful for debug.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| e6027f48 | 05-Jul-2023 |
Alvin Chang <alvinga@andestech.com> |
core: arm: Move some DT functions to common kernel
Some existed functions for device tree in ARM could be also used for other architectures. This commit moves most of functions from ARM architecture
core: arm: Move some DT functions to common kernel
Some existed functions for device tree in ARM could be also used for other architectures. This commit moves most of functions from ARM architecture into "core/kernel/dt.c", including external DT descriptor, DT overlay, external DT initialization, API for adding DT child nodes and reserved-memory nodes. Since "core/kernel/dt.c" is dependent with CFG_DT, other functions which are independent with CFG_DT are put into new file "core/kernel/boot.c".
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 52e7b1a6 | 14-Jun-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: use user-access functions in ldelf interaction
When interacting with LDELF, replace implicit user space accesses from privileged mode using proper user-access functions.
Co-developed-by: Seon
core: use user-access functions in ldelf interaction
When interacting with LDELF, replace implicit user space accesses from privileged mode using proper user-access functions.
Co-developed-by: Seonghyun Park <seonghp@amazon.com> Signed-off-by: Seonghyun Park <seonghp@amazon.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 9c99bb1d | 15-Jun-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add bb_strndup_user()
Adds bb_strndup_user() to copy a user space string into a bounce buffer large enough to hold the string.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Review
core: add bb_strndup_user()
Adds bb_strndup_user() to copy a user space string into a bounce buffer large enough to hold the string.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| e5aa0f8c | 12-May-2023 |
Seonghyun Park <seonghp@amazon.com> |
core: add more user access functions
Add more user access functions: clear_user(), strnlen_user() and bb_memdup_user(), which can be used to manipulate, check or duplicate given user space buffers.
core: add more user access functions
Add more user access functions: clear_user(), strnlen_user() and bb_memdup_user(), which can be used to manipulate, check or duplicate given user space buffers.
Signed-off-by: Seonghyun Park <seonghp@amazon.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| c5a0db99 | 14-Jun-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add bounce buffer to user mode context
Adds a bounce buffer for user space buffer to be used during syscall processing to avoid unchecked privileged access into user space memory.
bb_alloc(),
core: add bounce buffer to user mode context
Adds a bounce buffer for user space buffer to be used during syscall processing to avoid unchecked privileged access into user space memory.
bb_alloc(), bb_free(), and bb_reset() are added to manage memory allocation from the bounce buffer.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|