| #
d45fc140 |
| 26-Nov-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: add missing field in memory access descriptor
FF-A v1.2 introduced a 16 byte implementation-defined field in the endpoint memory access descriptor. Update all handling of struct ffa_mem_a
core: ffa: add missing field in memory access descriptor
FF-A v1.2 introduced a 16 byte implementation-defined field in the endpoint memory access descriptor. Update all handling of struct ffa_mem_access to for correct access regardless of FF-A version.
With this patch, OP-TEE will use the updated memory access descriptor, but ignore the impdef field.
Suggested-by: Olivier Deprez <olivier.deprez@arm.com> Fixes: bef959c837fe ("core: arm: ffa: switch to FF-A version 1.2") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
00338334 |
| 31-Oct-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: support dynamic protected memory lending
With CFG_CORE_DYN_PROTMEM=y support dynamic protected memory lending.
A new internal struct mobj_ffa_rsm is added to handle dynamic protected memory f
core: support dynamic protected memory lending
With CFG_CORE_DYN_PROTMEM=y support dynamic protected memory lending.
A new internal struct mobj_ffa_rsm is added to handle dynamic protected memory for FF-A.
A new internal struct mobj_protmem is add to handle dynamic protected memory without FF-A.
Lending non-secure memory to OP-TEE to use it as protected memory means that it should to become inaccessible by the normal world as part of the process. This part is currently not supported, since it must be done in a platform specific way for platforms that support that. QEMU don't support that.
Adding two platform specific functions, plat_get_protmem_config() and plat_set_protmem_range() for dynamic protected memory. The functions has __weak implementation to allow easier testing. However, plat_set_protmem_range() requires CFG_INSECURE=y since it doesn't change memory protection.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
bef959c8 |
| 02-Dec-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: ffa: switch to FF-A version 1.2
Update FF-A minor version from 1 to 2. spmc_exchange_version() is updated to take the new version into account when negotiating with a caller.
Configurati
core: arm: ffa: switch to FF-A version 1.2
Update FF-A minor version from 1 to 2. spmc_exchange_version() is updated to take the new version into account when negotiating with a caller.
Configurations with SPMC at EL3 and S-EL2 supplies an SP manifest when booting OP-TEE, read the FF-A version to use from the manifest instead of using the hard coded version.
The configuration with SPMC at S-EL1, part of OP-TEE, keep the FF-A version at version 1.1 when configured with CFG_NS_VIRTUALIZATION=y as workaround to remain compatible with Xen. This workaround will not be needed after the next Xen release and can be removed then.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
ddec5d6b |
| 04-Dec-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: update FFA_CONSOLE_LOG_64 for v1.2 SPs
Update FFA_CONSOLE_LOG_64 to handle the ABI extension for FF-A v1.2. The extended ABI is only used for FF-A v1.2 SPs .
Signed-off-by: Jens Wiklande
core: ffa: update FFA_CONSOLE_LOG_64 for v1.2 SPs
Update FFA_CONSOLE_LOG_64 to handle the ABI extension for FF-A v1.2. The extended ABI is only used for FF-A v1.2 SPs .
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
750a54aa |
| 03-Dec-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm: ffa: add FF-A version 1.2 defines
Add defines for SMC IDs introduced with FF-A version 1.2.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.
core: arm: ffa: add FF-A version 1.2 defines
Add defines for SMC IDs introduced with FF-A version 1.2.
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 ...
|
| #
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 ...
|
| #
2e02a737 |
| 23-Oct-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: add notifications with SPMC at S-EL1
Adds support for asynchronous notifications via FF-A with SPMC at S-EL1.
The OP-TEE FF-A ABI is extended to report support for asynchronous notificat
core: ffa: add notifications with SPMC at S-EL1
Adds support for asynchronous notifications via FF-A with SPMC at S-EL1.
The OP-TEE FF-A ABI is extended to report support for asynchronous notifications during OPTEE_FFA_EXCHANGE_CAPABILITIES.
The SPMC at S-EL1 is extended to provide the FF-A notifications ABI to a normal world VM.
The notifications depends on having a non-secure SGI interrupt ID available to notify normal world that a notification is pending. Notifications becomes available once platform code has called thread_spmc_set_async_notif_intid() with a designed SGI ID.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
af06edb5 |
| 09-Oct-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: use FFA_NORMAL_WORLD_RESUME
Prior to this FFA_INTERRUPT was always completed using FFA_MSG_WAIT, but at S-EL1 FFA_NORMAL_WORLD_RESUME should be used instead. So fix this by completing a s
core: ffa: use FFA_NORMAL_WORLD_RESUME
Prior to this FFA_INTERRUPT was always completed using FFA_MSG_WAIT, but at S-EL1 FFA_NORMAL_WORLD_RESUME should be used instead. So fix this by completing a secure interrupt that has preempted the normal world with FFA_NORMAL_WORLD_RESUME if configured with SPMC at S-EL1.
Fixes: 67fec989b586 ("core: ffa: correct response to FFA_INTERRUPT") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Balint Dobszay <balint.dobszay@arm.com>
show more ...
|
| #
280b6a32 |
| 01-Jun-2023 |
Imre Kis <imre.kis@arm.com> |
core: spmc: implement FFA_CONSOLE_LOG
Add FFA_CONSOLE_LOG interface support for enabling debug messages from SPs as defined in FF-A v1.2. The message string is packed into the registers of the call
core: spmc: implement FFA_CONSOLE_LOG
Add FFA_CONSOLE_LOG interface support for enabling debug messages from SPs as defined in FF-A v1.2. The message string is packed into the registers of the call so it doesn't require the existence of a shared memory between the SPMC and the SPs. This makes it ideal for early debug messages, however the length of the message is limited. The received messages are forwarded to OP-TEE's trace output.
Signed-off-by: Imre Kis <imre.kis@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
7bb22ad3 |
| 03-May-2023 |
Balint Dobszay <balint.dobszay@arm.com> |
core: sp: implement FF-A v1.1 boot protocol
Implement passing the boot info to Secure Partitions in the new format defined by FF-A v1.1. The change is backwards compatible by keeping the already exi
core: sp: implement FF-A v1.1 boot protocol
Implement passing the boot info to Secure Partitions in the new format defined by FF-A v1.1. The change is backwards compatible by keeping the already existing FF-A v1.0 format too. Which format to use is decided based on the "ffa-version" field in the SP's manifest. The register to use for passing the boot info blob's address is based on the "gp-register-num" field.
Link: https://trustedfirmware-a.readthedocs.io/en/latest/components/ffa-manifest-binding.html#partition-properties Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
show more ...
|
| #
4d028847 |
| 18-Apr-2023 |
Imre Kis <imre.kis@arm.com> |
core: spmc: handle non-secure interrupts
Add FFA_INTERRUPT and FFA_RUN support for signaling non-secure interrupts and for resuming to the secure world. If a secure partition is preempted by a non-s
core: spmc: handle non-secure interrupts
Add FFA_INTERRUPT and FFA_RUN support for signaling non-secure interrupts and for resuming to the secure world. If a secure partition is preempted by a non-secure interrupt OP-TEE saves the SP's state and sends an FFA_INTERRUPT to the normal world. After handling the interrupt the normal world should send an FFA_RUN to OP-TEE so it can continue running the SP. If OP-TEE is the active FF-A endpoint (i.e. it is running TAs) the non-secure interrupts are signaled by the existing OPTEE_FFA_YIELDING_CALL_RETURN_INTERRUPT message instead of FFA_INTERRUPT.
Signed-off-by: Imre Kis <imre.kis@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a65dd3a6 |
| 02-Feb-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: spmc: support virtualization with SPMC at S-EL1
Adds support for virtualization with OP-TEE as SPMC at S-EL1. This if the FF-A counterpart of SMC based ABI with virtualization.
Reviewed-by: B
core: spmc: support virtualization with SPMC at S-EL1
Adds support for virtualization with OP-TEE as SPMC at S-EL1. This if the FF-A counterpart of SMC based ABI with virtualization.
Reviewed-by: Balint Dobszay <balint.dobszay@arm.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a1c53023 |
| 02-Feb-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: spmc: support FF-A 1.1
Adds support for FF-A 1.1. Now OP-TEE will need to be able to work with both version 1.0 and 1.1 depending on the other endpoint. The callee supplies its implemented ver
core: spmc: support FF-A 1.1
Adds support for FF-A 1.1. Now OP-TEE will need to be able to work with both version 1.0 and 1.1 depending on the other endpoint. The callee supplies its implemented version and OP-TEE chooses the highest common version and returns that. This is done per endpoint so some endpoint may very well use version 1.0 while another uses version 1.1.
Two data structures, struct ffa_mem_transaction and struct ffa_partition_info, are affected. Runtime conditionals are used to select which version to use based on the negotiated FF-A version.
Reviewed-by: Balint Dobszay <balint.dobszay@arm.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
5489e94f |
| 11-Apr-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ffa: add boot info structs and defines
Adds defines to interpret FF-A Boot Info header and descriptor using two new structs and accompanying defines.
Acked-by: Etienne Carriere <etienne.carri
core: ffa: add boot info structs and defines
Adds defines to interpret FF-A Boot Info header and descriptor using two new structs and accompanying defines.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
438f0055 |
| 17-Oct-2022 |
Jelle Sels <jelle.sels@arm.com> |
core: ffa: Add support for FFA_MEM_PERM_GET/SET
Handle FFA_MEM_PERM_GET and FFA_MEM_PERM_SET interfaces for enabling SPs to query and set the access rights of their memory regions. These interfaces
core: ffa: Add support for FFA_MEM_PERM_GET/SET
Handle FFA_MEM_PERM_GET and FFA_MEM_PERM_SET interfaces for enabling SPs to query and set the access rights of their memory regions. These interfaces are only permitted in the initialization phase thus a new state variable is being introduced in sp_session. SPs indicate the end of their initialization phase through the FFA_MSG_WAIT interface.
Co-developed-by: Imre Kis <imre.kis@arm.com> Signed-off-by: Imre Kis <imre.kis@arm.com> Signed-off-by: Jelle Sels <jelle.sels@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
635bab26 |
| 24-Sep-2021 |
Sudeep Holla <sudeep.holla@arm.com> |
Fix FID for FFA_SECONDARY_EP_REGISTER_64
Commit ef30482b4ad6 ("plat-vexpress: FF-A: update secondary core init") updated secondary core init for the vexpress platform. In the process, it used FFA_SE
Fix FID for FFA_SECONDARY_EP_REGISTER_64
Commit ef30482b4ad6 ("plat-vexpress: FF-A: update secondary core init") updated secondary core init for the vexpress platform. In the process, it used FFA_SECONDARY_EP_REGISTER with FID 0xC4000084 based on the ALP0 ABI of the spec and the TF-A upstream implementation at the time with a note that the function ID needs to updated to the one finalied in the spec and the TF-A implementation.
Assuming it is all finalised now, let us update the same with correct/ updated FID 0xC4000087.
Cc: Jens Wiklander <jens.wiklander@linaro.org> Cc: Olivier Deprez <olivier.deprez@arm.com> Cc: Balint Dobszay <balint.dobszay@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
cdd7a3f4 |
| 13-Sep-2021 |
Jelle Sels <jelle.sels@arm.com> |
core: FFA_SHARE: Process receiver data
Process the receiver specific data of a FFA_SHARE command. Store the receiver and link it to the endpoints (SPs).
Signed-off-by: Jelle Sels <jelle.sels@arm.co
core: FFA_SHARE: Process receiver data
Process the receiver specific data of a FFA_SHARE command. Store the receiver and link it to the endpoints (SPs).
Signed-off-by: Jelle Sels <jelle.sels@arm.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
5c1143a8 |
| 13-Sep-2021 |
Jelle Sels <jelle.sels@arm.com> |
core: FFA_SHARE: Process FFA_MEM_SHARE message
Process a FF-A FFA_MEM_SHARE message coming from a SP or being sent from the Normal world with one or more SPs receivers. FFA_MEM_SHARE is used to shar
core: FFA_SHARE: Process FFA_MEM_SHARE message
Process a FF-A FFA_MEM_SHARE message coming from a SP or being sent from the Normal world with one or more SPs receivers. FFA_MEM_SHARE is used to share a memory region from an endpoint (SP or normal world) with one or more endpoints in secure world(SPs).
A simplified version of the share memory transaction descriptor looks like the following:
|-------------------| |ffa_mem_transaction| Contains general data for the whole share |-------------------| |mem_access_array[0]| Contains information specific for each receiver SP |-------------------| |mem_access_array[1]| |-------------------| |mem_access_array[n]| |-------------------| |ffa_mem_region | Contains the memory which is shared |-------------------|
Add sp_mem as a new memory object. Sp_mem is used to store all information needed for a FF-A share. For each new FF-A share a sp_mem object is created. Each share is stored inside the mem_shares list inside sp_mem.c
The ffa_mem_transaction data is stored inside the sp_mem object. The receivers list inside sp_mem is used to store all the ffa_mem_region related data. The regions list is used to store all data related to the mem_access_array. A mobj reference is will be used to map the region into the SPs endpoint.
Signed-off-by: Jelle Sels <jelle.sels@arm.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
c6726b47 |
| 14-Oct-2021 |
Jelle <jelle.sels@arm.com> |
FF-A: Add macro for FF-A memory cookie bit
When creating a new cookie of the mobj_ffa a BIT64(44) was used inline. Create a macro for it.
Signed-off-by: Jelle <jelle.sels@arm.com> Reviewed-by: Jens
FF-A: Add macro for FF-A memory cookie bit
When creating a new cookie of the mobj_ffa a BIT64(44) was used inline. Create a macro for it.
Signed-off-by: Jelle <jelle.sels@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
3a7bfc34 |
| 22-Mar-2021 |
Jelle Sels <jelle.sels@arm.com> |
core: Add FFA_PARTITION_INFO
FFA_PARTITION_INFO is used to query all the Secure Partitions loaded in the system.
Signed-off-by: Jelle Sels <jelle.sels@arm.com> Acked-by: Etienne Carriere <etienne.c
core: Add FFA_PARTITION_INFO
FFA_PARTITION_INFO is used to query all the Secure Partitions loaded in the system.
Signed-off-by: Jelle Sels <jelle.sels@arm.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
ef30482b |
| 17-May-2021 |
Balint Dobszay <balint.dobszay@arm.com> |
plat-vexpress: FF-A: update secondary core init
Currently when using FF-A on FVP platform, the secondary core entrypoint registration is done with PSCI calls. However, this relies on a forked TF-A v
plat-vexpress: FF-A: update secondary core init
Currently when using FF-A on FVP platform, the secondary core entrypoint registration is done with PSCI calls. However, this relies on a forked TF-A version, as normally PSCI calls aren't accepted from SWd. Replace this mechanism with FFA_SECONDARY_EP_REGISTER, which is an FF-A v1.1 ALP0 ABI and it's supported by upstream TF-A v2.5.
Note that the Function ID expected by TF-A differs from the one in the spec, this will be fixed when the spec is finalized, but the overall mechanism should stay the same.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
show more ...
|
| #
4a6784ca |
| 30-Apr-2021 |
Jens Wiklander <jens.wiklander@linaro.org> |
core/arch/arm/include/*.h: use U() for unsigned constants
Updates with the U() macro as described in the recently updated coding guidelines.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked
core/arch/arm/include/*.h: use U() for unsigned constants
Updates with the U() macro as described in the recently updated coding guidelines.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
c1bdf4fc |
| 25-Feb-2021 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: spmc: FF-A ABI updates
Updates structs and definitions to follow FF-A version 1.0.
Use the special hard coded UUID (486178e0-e7f8-11e3-bc5e-0002a5d5c51b) for the SP OP-TEE is when compiled fo
core: spmc: FF-A ABI updates
Updates structs and definitions to follow FF-A version 1.0.
Use the special hard coded UUID (486178e0-e7f8-11e3-bc5e-0002a5d5c51b) for the SP OP-TEE is when compiled for FF-A.
Updates the FF-A OP-TEE message ABI to make room for struct optee_msg_arg to be used for RPC for OPTEE_FFA_YIELDING_CALL_WITH_ARG.
struct thread_ctx::rpc_arg for the current thread will always hold a pointer to the struct optee_msg_arg to be used for RPC.
With this allocation of shared memory can be pushed up one layer and be done via the struct optee_msg_arg so the OPTEE_FFA_YIELDING_CALL_RETURN_ALLOC_*_SHM and OPTEE_FFA_YIELDING_CALL_RETURN_FREE_*_SHM can be removed making the FF-A ABI a bit less complicated.
Changes OPTEE_FFA_UNREGISTER_SHM to be a blocking call instead of a yielding call.
Removes the unused OPTEE_FFA_YIELDING_CALL_REGISTER_SHM.
Updates the return values from yielding calls to use the TEE_Result values instead of FF-A one to use the error code from the correct layer.
Defines OPTEE_MSG_FMEM_INVALID_GLOBAL_ID to 0xffffffffffffffffff which is used as an invalid global id instead of 0.
This is an ABI breakage which must be done in sync with the FF-A v4 patchset in the Linux kernel.
Acked-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
ae6b3380 |
| 21-Jan-2021 |
Jelle Sels <jelle.sels@arm.com> |
core: Add ffa_msg_send_req and ffa_msg_send_resp
Add FF-A message handling of FFA_MSG_SEND_DIRECT_REQ_32 and FFA_MSG_SEND_DIRECT_RESP_32 messages. The FFA_MSG_SEND_DIRECT_RESP_32 message is used to
core: Add ffa_msg_send_req and ffa_msg_send_resp
Add FF-A message handling of FFA_MSG_SEND_DIRECT_REQ_32 and FFA_MSG_SEND_DIRECT_RESP_32 messages. The FFA_MSG_SEND_DIRECT_RESP_32 message is used to send a message from one FF-A endpoint to a second FF-A endpoint. FFA_MSG_SEND_DIRECT_RESP_32 is used to send a response message from the callee to the caller.
A separate abstraction is made (spmc_sp_handler) for handling FF-A messages received from secure endpoints (SP). thread_spmc_msg_recv() is still used for handling all FF-A messages coming from the Normal World. When a FFA_MSG_SEND_DIRECT_REQ_32 message is received for the Normal World a new kernel thread is started and spmc_sp_msg_handler() is run. spmc_sp_msg_handler() is used as the main message handler for handling the FF-A messages coming from SPs.
Whenever a message is sent to the normal world the thread is finished and the FF-A message is forwarded to the Normal World.
Whenever a SVC exception is received from an SP, the whole context is saved and executions is resumed in S-EL1. The first 8 register (FF-A registers x0-x7) contain the FF-A message and are used to handle the message by the SPMC.
Signed-off-by: Jelle Sels <jelle.sels@arm.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|