| 197b6c84 | 08-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
plat-vexpress: bottom half uart driver with non-secure virtualization
Enable the bottom half uart driver with FF-A and non-secure virtualization enabled.
The console struct itr_handler and struct n
plat-vexpress: bottom half uart driver with non-secure virtualization
Enable the bottom half uart driver with FF-A and non-secure virtualization enabled.
The console struct itr_handler and struct notif_driver are moved into nexus memory as needed.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| f6dcf234 | 08-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: make S-EL1 notifications virtualization-aware
Add new defines for the ABI functions FFA_NOTIFICATION_GET and FFA_NOTIFICATION_INFO_GET to support a more complete implementation of the ABI
core: ffa: make S-EL1 notifications virtualization-aware
Add new defines for the ABI functions FFA_NOTIFICATION_GET and FFA_NOTIFICATION_INFO_GET to support a more complete implementation of the ABI.
The bookkeeping of the notification state is moved into a guest specific struct notif_vm_bitmap.
Asynchronous notification is enabled per guest. Each guest defines its own notification ID to request bottom half processing.
The FFA_NOTIFICATION_INFO_GET handler is updated to be able to report multiple guest IDs.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| d237e616 | 06-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: make generic notifications virtualization-aware
Makes the generic notification handling aware of virtualization. Atomic events are delivered with a guest_id parameter and asynchronous notifica
core: make generic notifications virtualization-aware
Makes the generic notification handling aware of virtualization. Atomic events are delivered with a guest_id parameter and asynchronous notifications are started per guest_id.
struct notif_data is added as guest specific data to be able to track if notifications are started for a guest.
While this patch compiles it doesn't work as intended without patches handling the ABI specific side of things.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| beb90210 | 05-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: virt: add guest specific data
Add virt_add_guest_spec_data() and virt_get_guest_spec_data() to handle guest specific data.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by:
core: virt: add guest specific data
Add virt_add_guest_spec_data() and virt_get_guest_spec_data() to handle guest specific data.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| a951eb5f | 26-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: virt: support iterating over partitions
Add support to iterate over partitions using virt_next_guest().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <e
core: virt: support iterating over partitions
Add support to iterate over partitions using virt_next_guest().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| a755a64f | 26-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: virt: get guest ID of a guest partition
Add the function virt_get_guest_id() to return the guest ID of a guest partition.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: E
core: virt: get guest ID of a guest partition
Add the function virt_get_guest_id() to return the guest ID of a guest partition.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 29e682bd | 26-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: virt: get current guest partition
Add the function virt_get_current_guest() to get a pointer to the current guest partition. The returned guest partition has its reference counter increased wh
core: virt: get current guest partition
Add the function virt_get_current_guest() to get a pointer to the current guest partition. The returned guest partition has its reference counter increased which must be restored with a matching call to virt_put_guest() when the caller is done with the guest partition.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| ac1c95dd | 26-Feb-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: virt: get guest partition by guest ID
Add the function virt_get_guest() to get the pointer to a guest partition with a certain guest ID. The returned guest partition has its reference counter
core: virt: get guest partition by guest ID
Add the function virt_get_guest() to get the pointer to a guest partition with a certain guest ID. The returned guest partition has its reference counter increased which must be restored with a matching call to virt_put_guest() when the caller is done with the guest partition.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 9502204b | 14-Mar-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa+virt: avoid changing nexus mappings
Don't unmap nexus mapped rxtx buffers when configured for non-secure virtualization.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by
core: ffa+virt: avoid changing nexus mappings
Don't unmap nexus mapped rxtx buffers when configured for non-secure virtualization.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 7dc75b9b | 27-Jun-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
plat-stm32mp1: conf: restore generic default heap size
Remove reduced default heap size configuration of 48kB when pager is enabled on stm32mp1 platforms. 48kB of core heap may not always be enough
plat-stm32mp1: conf: restore generic default heap size
Remove reduced default heap size configuration of 48kB when pager is enabled on stm32mp1 platforms. 48kB of core heap may not always be enough to pass OP-TEE Test regression test 4011 related to Bleichenbacher attack since it consumes 4.5kB more memory on in OP-TEE core since we upgraded to Mbed TLS library 3.6.0. The platform now default uses the generic 64kB default heap size set from mk/config.mk.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
show more ...
|
| 82d8cbbd | 01-Jul-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: stm32_rstctrl: fix unpaged resource
Fixes missing declaration of STM32MP1 reset controller compat data as unpaged resource since it is used by stm32mp_rcc_reset_id_to_rstctrl() function ca
drivers: stm32_rstctrl: fix unpaged resource
Fixes missing declaration of STM32MP1 reset controller compat data as unpaged resource since it is used by stm32mp_rcc_reset_id_to_rstctrl() function called by fastcall service psci_system_reset() that requires to resized in the unpaged segment on STM32MP15 variant where pager is enabled.
Fixes: 3ef177b4f153 ("drivers: stm32_rstctrl: move stm32mp1x controller in stm32mp1_rstcrl.c") Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
show more ...
|
| 5e26ef8f | 01-May-2024 |
Alvin Chang <alvinga@andestech.com> |
core: riscv: Improve the trap handler
In current RISC-V trap handler, we always save the context into struct thread_trap_regs first, and copy the saved context into another specific structure to han
core: riscv: Improve the trap handler
In current RISC-V trap handler, we always save the context into struct thread_trap_regs first, and copy the saved context into another specific structure to handle that trap. For example, thread_user_ecall_handler() copies the struct thread_trap_regs to be struct thread_scall_regs before handling this system call. In fact, such copies may drop the performance and they should be eliminated.
In this commit, the specific data structure used to save the context is determined early in the trap handler by checking the type of the trap from CSR XCAUSE. Thus, the copies between context structures are eliminated.
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Marouene Boubakri <marouene.boubakri@nxp.com> Tested-by: Yu Chien Peter Lin <peterlin@andestech.com> Tested-by: Marouene Boubakri <marouene.boubakri@nxp.com>
show more ...
|
| bf870398 | 22-Mar-2024 |
Vincent Guittot <vincent.guittot@linaro.org> |
core/scmi: export sub.mk files in SCP-firmware
In order to ease the update of makefile when C or Header files of SCP-firmware project changes, we integrate them in the optee subdirectory of SCP-firm
core/scmi: export sub.mk files in SCP-firmware
In order to ease the update of makefile when C or Header files of SCP-firmware project changes, we integrate them in the optee subdirectory of SCP-firmware.
sub-optee-fvp.mk and sub-optee-stm32mp1.mk are moved unchanged in their product directories of SCP-repository.
scmi-server/sub.mk is split: - macro and compilation flags stay in optee-os - srcs and incdirs are moved in product/optee directory
All modules and products related to optee are located in the product/optee directory in the SCP-firmware repository, adding an "optee-" prefix in the product name is useless. Remove it.
the ci will temporary point to the sha1 of the merged MR branch of SCP-firmware. This will be replaced with next SCP-firmware tag v2.15.0 once released.
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 822f251d | 16-Apr-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
plat-stm32mp1: fix SCP-firmware config when using OP-TEE share memory
Enable the required SCP-firmware module when using OP-TEE shared memory or a piece of SRAM for SCMI communication which defined
plat-stm32mp1: fix SCP-firmware config when using OP-TEE share memory
Enable the required SCP-firmware module when using OP-TEE shared memory or a piece of SRAM for SCMI communication which defined by the boolean configuration switch CFG_STM32MP1_SCMI_SHM_SYSRAM.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 29be83da | 25-Jun-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
libtomcrypt: fix calloc() against GCC 14 -Wcalloc-transposed-args
Fix use of XCALLOC() macro against GCC 14 directive -Wcalloc-transposed-args that makes GCC to complain with an warning/error trace
libtomcrypt: fix calloc() against GCC 14 -Wcalloc-transposed-args
Fix use of XCALLOC() macro against GCC 14 directive -Wcalloc-transposed-args that makes GCC to complain with an warning/error trace message like:
warning: 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
This change was proposed and merged in mainline libtomcrypt repository.
No functional change.
Link: https://github.com/libtom/libtomcrypt/pull/647 Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b70970fe | 25-Jun-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: arm: fix calloc() against GCC 14 -Wcalloc-transposed-args
Fix calloc() calls against GCC 14 directive -Wcalloc-transposed-args that makes GCC to complain with an warning/error trace message li
core: arm: fix calloc() against GCC 14 -Wcalloc-transposed-args
Fix calloc() calls against GCC 14 directive -Wcalloc-transposed-args that makes GCC to complain with an warning/error trace message like:
warning: 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
No functional change.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7cc4ae7c | 26-Jun-2024 |
Yu Chien Peter Lin <peterlin@andestech.com> |
core: mm: core_mmu: skip unmapped regions when searching by PA
Currently, OP-TEE OS on RISC-V platforms uses the external device-tree located at 'Domain1 Next Arg1' passed by previous boot stages (i
core: mm: core_mmu: skip unmapped regions when searching by PA
Currently, OP-TEE OS on RISC-V platforms uses the external device-tree located at 'Domain1 Next Arg1' passed by previous boot stages (i.e. U-Boot SPL and OpenSBI). For example:
Domain1 Name : trusted-domain ... Domain1 Next Address : 0x0000000010000000 // OP-TEE OS > Domain1 Next Arg1 : 0x000000000187f760 // device-tree Domain1 Next Mode : S-mode
In this case, 0x0187f760 lies in SHM_VASPACE, which is not yet mapped and not intended to load an external DT:
type TEE_RAM_RX va 0x10000000..0x10092fff pa 0x10000000..0x10092fff type TEE_RAM_RW va 0x10093000..0x101fffff pa 0x10093000..0x101fffff type RES_VASPACE va 0x10200000..0x10bfffff pa 0x00000000..0x009fffff > type SHM_VASPACE va 0x10c00000..0x12bfffff pa 0x00000000..0x01ffffff type TA_RAM va 0x12c00000..0x139fffff pa 0x10200000..0x10ffffff type IO_SEC va 0x13a00000..0x13bfffff pa 0xf0200000..0xf03fffff
To address this issue, add a memory region attribute check to skip such regions. In this way, when init_external_dt() calls core_mmu_get_type_by_pa(), it can properly return MEM_AREA_MAXTYPE (i.e. valid region not found) and map a MEM_AREA_EXT_DT region.
Note that this bug cannot be reproduced on QEMU virt machine, as its memory regions have no overlapping with the external DT.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 62e40b88 | 27-Jun-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
dt-bindings: mfd: dual licensing for st,stpmic1 bindings
Change include/dt-bindings/mfd/st,stpmic1.h license model from GPLv2.0 only to dual GPLv2.0 or BSD-2-Clause. This change clarifies that this
dt-bindings: mfd: dual licensing for st,stpmic1 bindings
Change include/dt-bindings/mfd/st,stpmic1.h license model from GPLv2.0 only to dual GPLv2.0 or BSD-2-Clause. This change clarifies that this DT binding header file can be shared with software components as bootloaders and OSes that are not published under GPLv2 terms as OP-TEE OS is.
This change has been discussed and acked in the LKML [1].
Fixes: 1183a0aa2af0 ("stm32mp1: update DTS files to Linux kernel 5.2-rc1") Link: https://lore.kernel.org/lkml/171941721004.2530174.778562710266249921.b4-ty@kernel.org/ [1] Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 92870f11 | 13-Jun-2024 |
Imre Kis <imre.kis@arm.com> |
core: ffa: Improve FF-A memory sharing compliance
* Deny memory regions with zero pages * Validate total page count field * Validate total descriptor size including memory regions descriptors * Fix
core: ffa: Improve FF-A memory sharing compliance
* Deny memory regions with zero pages * Validate total page count field * Validate total descriptor size including memory regions descriptors * Fix incorrect FFA_ERROR status codes
Signed-off-by: Imre Kis <imre.kis@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b65298cd | 13-Jun-2024 |
Imre Kis <imre.kis@arm.com> |
core: ffa: Deny unsupported memory sharing operations
Fragmented memory sharing operations and memory sharing where the transaction descriptors are forwarded in a custom buffer are not supported for
core: ffa: Deny unsupported memory sharing operations
Fragmented memory sharing operations and memory sharing where the transaction descriptors are forwarded in a custom buffer are not supported for SP destinations. Return early FFA_ERROR if these conditions are detected. Add CFG_NS_VIRTUALIZATION condition for virt_unset_guest calls in thread_spmc.c as a minor refactoring step.
Signed-off-by: Imre Kis <imre.kis@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 4a88c465 | 23-Apr-2024 |
Imre Kis <imre.kis@arm.com> |
core: ffa: Return transaction type flag in retrieve response
Setting 'Memory management transaction type flag' in memory transaction descriptor when returned in FFA_MEM_RETRIEVE_RESP.
Signed-off-by
core: ffa: Return transaction type flag in retrieve response
Setting 'Memory management transaction type flag' in memory transaction descriptor when returned in FFA_MEM_RETRIEVE_RESP.
Signed-off-by: Imre Kis <imre.kis@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 9223d8a0 | 17-Apr-2024 |
Gabriel Fernandez <gabriel.fernandez@foss.st.com> |
dts: st: add RCC support on stm32mp257f-ev1
Configure the clock tree for stm32mp257f-ev1 board.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Reviewed-by: Etienne Carriere <etien
dts: st: add RCC support on stm32mp257f-ev1
Configure the clock tree for stm32mp257f-ev1 board.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 2a569a93 | 27-Mar-2023 |
Gabriel Fernandez <gabriel.fernandez@foss.st.com> |
dts: st: enable RCC driver in stm32mp251
Add the RCC node to support clock on stm32mp25 platform.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Reviewed-by: Etienne Carriere <eti
dts: st: enable RCC driver in stm32mp251
Add the RCC node to support clock on stm32mp25 platform.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b0323341 | 13-Dec-2023 |
Gabriel Fernandez <gabriel.fernandez@foss.st.com> |
drivers: rstctrl: add reset controller for STM32MP25 platforms
Implement the STM32MP25 reset controller device by embedding it with CFG_STM32_RSTCTRL=y and CFG_STM32MP25_RSTCTRL=y.
Signed-off-by: G
drivers: rstctrl: add reset controller for STM32MP25 platforms
Implement the STM32MP25 reset controller device by embedding it with CFG_STM32_RSTCTRL=y and CFG_STM32MP25_RSTCTRL=y.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 3ef177b4 | 13-Dec-2023 |
Gabriel Fernandez <gabriel.fernandez@foss.st.com> |
drivers: stm32_rstctrl: move stm32mp1x controller in stm32mp1_rstcrl.c
This change prepares the STM32MP25 reset controller driver. The binding for the STM32MP25 is different from that of the STM32MP
drivers: stm32_rstctrl: move stm32mp1x controller in stm32mp1_rstcrl.c
This change prepares the STM32MP25 reset controller driver. The binding for the STM32MP25 is different from that of the STM32MP1x, so we will create a stm32mp25_rstcrl.c file. This change factorizes STM32 API functions in stm32_rstcrl.c file for probing and passing platform data.
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|