| 86ee543b | 07-Mar-2024 |
Sami Tolvanen <samitolvanen@google.com> |
core: pass TEE_ATTR_RSA_OAEP_MGF_HASH to RSA-OAEP implementations
OP-TEE currently doesn't support using a different hash for MGF1 with RSA-OAEP. However, this is required for AOSP compatibility (e.
core: pass TEE_ATTR_RSA_OAEP_MGF_HASH to RSA-OAEP implementations
OP-TEE currently doesn't support using a different hash for MGF1 with RSA-OAEP. However, this is required for AOSP compatibility (e.g. in EncryptionOperationsTest.RsaOaepWithMGFDigestSuccess [1]).
Pass the MGF1 attribute to crypto implementations. Note that only libtomcrypt supports this feature at the moment, so other implementations will either fail or fall back to libtomcrypt when passed a different MGF1 hash.
Link: https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/security/keymint/aidl/vts/functional/KeyMintTest.cpp#5552 [1] Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 47d5e6cb | 14-Jun-2024 |
Jerome Forissier <jerome.forissier@linaro.org> |
libutils, zlib: fix Clang warnings
Clang 18.1.6 reports the following warnings:
CC out/arm/ldelf-lib/libutils/isoc/bget_malloc.o In file included from lib/libutils/isoc/bget_malloc.c:127:
libutils, zlib: fix Clang warnings
Clang 18.1.6 reports the following warnings:
CC out/arm/ldelf-lib/libutils/isoc/bget_malloc.o In file included from lib/libutils/isoc/bget_malloc.c:127: lib/libutils/isoc/bget.c:607:7: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C23 [-Wdeprecated-non-prototype] 607 | void *bget(requested_align, hdr_size, requested_size, poolset) | ^
And same with lib/zlib/{adler32.c,inffast.c,inflate.c,zutil.c}.
In addition, zutil.c causes:
CC out/arm/core/lib/zlib/zutil.o core/lib/zlib/zutil.c:28:33: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] 28 | const char * ZEXPORT zlibVersion() | ^ | void
Add -Wno-deprecated-non-prototype to libutils' bget_malloc.c to silence the first series, and simply remove -Wstrict-prototypes (added by default by mk/compile.mk) when building zlib.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 5b6f4be8 | 28-May-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: compiler friendly 32-bit FTMN_FUNC_HASH() version
Add a more compiler friendly 32-bit implementation of FTMN_FUNC_HASH(). This gives the same output as the previous 64-bit based implementation
core: compiler friendly 32-bit FTMN_FUNC_HASH() version
Add a more compiler friendly 32-bit implementation of FTMN_FUNC_HASH(). This gives the same output as the previous 64-bit based implementation, but base the computation on 32-bit values.
This patch reduces stack usage when compiling with arm-linux-gnueabihf-gcc version 11.3.1 using -O0 optimization. For example, sw_crypto_acipher_rsassa_verify() is reduced from 3616 bytes to 284 bytes.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (vexpress-qemu_virt)
show more ...
|
| e716d498 | 10-Apr-2024 |
Tony Han <tony.han@microchip.com> |
libutils: util.h: fix the GENMASK_32(h, l) macro
The macro has a problem when it is used in an assembly file: .e.g ".word GENMASK_32(15, 8)" will be compiled to ".word 0xffffff00"
The issue is caus
libutils: util.h: fix the GENMASK_32(h, l) macro
The macro has a problem when it is used in an assembly file: .e.g ".word GENMASK_32(15, 8)" will be compiled to ".word 0xffffff00"
The issue is caused by the compiler always treating ~0 as a 64-bit value. Fix it by replacing '~UINT32_C(0)' with 'UINT32_C(0xffffffff)'.
Signed-off-by: Tony Han <tony.han@microchip.com> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 5957a0bd | 22-Apr-2024 |
Jens Wiklander <jens.wiklander@linaro.org> |
libutee: handle buffer_two_blocks correctly
For operations with buffer_two_blocks true, calculate the required size of the out buffer (req_dlen) correctly in TEE_CipherUpdate(). tee_buffer_update()
libutee: handle buffer_two_blocks correctly
For operations with buffer_two_blocks true, calculate the required size of the out buffer (req_dlen) correctly in TEE_CipherUpdate(). tee_buffer_update() is fixed with a matching update.
buffer_two_blocks set to true mandates buffering at least one block + a byte and at most two full blocks.
Fix needed by TEE_ALG_AES_CTS and TEE_ALG_AES_XTS.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| aeb530a5 | 05-Mar-2024 |
Sami Tolvanen <samitolvanen@google.com> |
libutee: process a full buffer immediately
In tee_buffer_update, libutee currently delays processing an input block until more space is needed in the buffer, which is perfectly valid behavior, but d
libutee: process a full buffer immediately
In tee_buffer_update, libutee currently delays processing an input block until more space is needed in the buffer, which is perfectly valid behavior, but doesn't match AOSP compatibility requirements.
Specifically, both CTS (testKatEncryptOneByteAtATime [1]) and VTS (EncryptionOperationsTest.*OneByteAtATime [2]) expect block cipher implementations to produce an output block as soon as a full block of input has been received. Change libutee behavior to be AOSP compatible.
Link: https://android.googlesource.com/platform/cts/+/refs/heads/main/tests/tests/keystore/src/android/keystore/cts/BlockCipherTestBase.java#779 [1] Link: https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp#827 [2] Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f459d3c7 | 21-Feb-2024 |
Alvin Chang <alvinga@andestech.com> |
libutils: Import part of sys/fcntl.h
Import part of sys/fcntl.h for necessary file flags, from newlib: - newlib/newlib/libc/include/sys/fcntl.h
Signed-off-by: Alvin Chang <alvinga@andestech.com> Ac
libutils: Import part of sys/fcntl.h
Import part of sys/fcntl.h for necessary file flags, from newlib: - newlib/newlib/libc/include/sys/fcntl.h
Signed-off-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 339a78c2 | 22-Feb-2024 |
Jerome Forissier <jerome.forissier@linaro.org> |
libunw: riscv: simplify architecture test
Test ARCH rather than CFG_RV32_$(sm) and CFG_RV64_$(sm).
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etien
libunw: riscv: simplify architecture test
Test ARCH rather than CFG_RV32_$(sm) and CFG_RV64_$(sm).
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9fed4516 | 22-Feb-2024 |
Jerome Forissier <jerome.forissier@linaro.org> |
libunw: arm: unwind_arm32.c should be compiled only for Arm
unwind_arm32.c contains functions to unwind arm32 code. This is used when libunw is built for arm32 or arm64, in other words when ARCH=arm
libunw: arm: unwind_arm32.c should be compiled only for Arm
unwind_arm32.c contains functions to unwind arm32 code. This is used when libunw is built for arm32 or arm64, in other words when ARCH=arm. Other architectures (such as ARCH=riscv) obviously don't need it.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| cf2c8f09 | 17-Jan-2024 |
Alvin Chang <alvinga@andestech.com> |
libutils: Implement speculation barrier for RISC-V
Implement load_no_speculate() with implementation consists of RISC-V fence instructions which are used to preserve the memory order.
- Data barrie
libutils: Implement speculation barrier for RISC-V
Implement load_no_speculate() with implementation consists of RISC-V fence instructions which are used to preserve the memory order.
- Data barrier: fence rw, rw - Instruction barrier: fence.i; fence r, r
Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Yu Chien Peter Lin <peterlin@andestech.com>
show more ...
|
| ad194957 | 13-Oct-2023 |
Yi Chou <yich@google.com> |
core: pta: widevine: Add the init implementation
On the new ChromeOS mediatek platform, we will use the device tree to pass hardware unique key and the parameters for widevine TAs.
Signed-off-by: Y
core: pta: widevine: Add the init implementation
On the new ChromeOS mediatek platform, we will use the device tree to pass hardware unique key and the parameters for widevine TAs.
Signed-off-by: Yi Chou <yich@google.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 59fea683 | 16-Jan-2024 |
Igor Opaniuk <igor.opaniuk@foundries.io> |
core: pta: drop benchmark
Drop Benchmark PTA as current implementation is non-function and obsolete, and it's not supported anymore.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: E
core: pta: drop benchmark
Drop Benchmark PTA as current implementation is non-function and obsolete, and it's not supported anymore.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
show more ...
|
| 5f7f88c6 | 15-Jan-2024 |
Sumit Garg <sumit.garg@linaro.org> |
ldelf: aarch32: Accept ELFOSABI_ARM as OS ABI
Rust TAs built for no-std mode targeting 32-bit Arm architecture use ELFOSABI_ARM as the OS ABI within ELF header. So allow ldelf to load those Rust TAs
ldelf: aarch32: Accept ELFOSABI_ARM as OS ABI
Rust TAs built for no-std mode targeting 32-bit Arm architecture use ELFOSABI_ARM as the OS ABI within ELF header. So allow ldelf to load those Rust TAs built for 32-bit Arm.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (vexpress-qemu_armv8a) Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
show more ...
|
| 8c26d0ae | 05-Oct-2023 |
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> |
libutee: add TEE_U*_FROM/TO_LITTLE_ENDIAN()
The 'TEE_U*_FROM/TO_LITTLE_ENDIAN()' functions perform conversions between a variable stored in little-endian format and the CPU format. Currently, OP-TEE
libutee: add TEE_U*_FROM/TO_LITTLE_ENDIAN()
The 'TEE_U*_FROM/TO_LITTLE_ENDIAN()' functions perform conversions between a variable stored in little-endian format and the CPU format. Currently, OP-TEE only supports little-endian platforms, so the macro does not perform any swapping.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| dab8b5c5 | 06-Jul-2022 |
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> |
libutee: add new remoteproc PTA API
The remoteproc PTA is charge of providing interface to authenticate firmware images and managing the remote processor live cycle. The remoteproc PTA supports plat
libutee: add new remoteproc PTA API
The remoteproc PTA is charge of providing interface to authenticate firmware images and managing the remote processor live cycle. The remoteproc PTA supports platform specificity in the management of a remote processor: - firmware authentication based on a platform key, - load of the segments in remote processor memories, - start/stop of the remote processor, - remote processor addresses conversion.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| a5e75b7e | 17-Nov-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
pta: stats: add commands to print clock and regulator trees
Add statistics PTA commands STATS_CMD_PRINT_DRIVERS_INFO to print device drivers information on console. The implementation currently allo
pta: stats: add commands to print clock and regulator trees
Add statistics PTA commands STATS_CMD_PRINT_DRIVERS_INFO to print device drivers information on console. The implementation currently allows to print the clock tree and the regulator tree to core console.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| a05577ea | 23-Nov-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
tree wide: clarify PTA ABI
Explicitly describe the statistics PTA ABI using dedicated inline comments and moving struct pta_stats_ta and struct pta_stats_alloc from respectively tee_ta_manager.c and
tree wide: clarify PTA ABI
Explicitly describe the statistics PTA ABI using dedicated inline comments and moving struct pta_stats_ta and struct pta_stats_alloc from respectively tee_ta_manager.c and malloc.h to pta_stats.h header file.
For that purpose, define ALLOC_ID_* macros to identify each allocator one can query information from through the statistics PTA API.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 761fc6ec | 22-Nov-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
pta: stats: export PTA API definition to TA devkit
Move statistics PTA API definitions and description to a header file that is exported to the TA devkit. This change makes the description that PTA
pta: stats: export PTA API definition to TA devkit
Move statistics PTA API definitions and description to a header file that is exported to the TA devkit. This change makes the description that PTA API more consistent regarding other PTAs.
Explicitly include tee_api_types.h from stats.c source file.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| 2617f49f | 22-Nov-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
tree wide: rename struct malloc_stats
Rename struct malloc_stats to struct pta_stats_alloc to prepare the creation of pta_stats.h header file that will define the whole statistics PTA API and ABI, l
tree wide: rename struct malloc_stats
Rename struct malloc_stats to struct pta_stats_alloc to prepare the creation of pta_stats.h header file that will define the whole statistics PTA API and ABI, located in libutee/include/ as already done for all other PTAs.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| bce2f88a | 19-Nov-2023 |
Vincent Mailhol <mailhol.vincent@wanadoo.fr> |
tree-wide: remove useless newline character in *MSG() messages
The *MSG() macros take care of printing a newline. Adding a newline character ('\n') is useless. Remove it.
Signed-off-by: Vincent Mai
tree-wide: remove useless newline character in *MSG() messages
The *MSG() macros take care of printing a newline. Adding a newline character ('\n') is useless. Remove it.
Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 17a66904 | 10-Nov-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: print current guest ID in logs
If CFG_NS_VIRTUALIZATION is enabled include the current guest ID on each log line. A number is added before the core number identifying the currently set guest I
core: print current guest ID in logs
If CFG_NS_VIRTUALIZATION is enabled include the current guest ID on each log line. A number is added before the core number identifying the currently set guest ID, for example: D/TC:2 0 0 call_initcalls:40 level 1 teecore_init_pub_ram()
Where the "2" indicates that this is done with guest ID 2 active.
Update the symbolize.py script accordingly to recognize and ignore an eventual guest ID in a log entry.
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 ...
|
| b501c008 | 10-Nov-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
libutee: remove leftover references to libmpa
Removes references to libmpa removed since OP-TEE release tag 3.9.0, by commit 7fb525f1f8a6 ("Remove libmpa in favor of libmbedtls").
This change remov
libutee: remove leftover references to libmpa
Removes references to libmpa removed since OP-TEE release tag 3.9.0, by commit 7fb525f1f8a6 ("Remove libmpa in favor of libmbedtls").
This change removes configuration switch CFG_TA_MBEDTLS_MPI and CFG_TA_MBEDTLS that are no more used by OP-TEE component.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| b291c8ec | 31-Oct-2023 |
Vincent Mailhol <mailhol.vincent@wanadoo.fr> |
libutee: TEE_AllocateOperation(): maxKeySize of digests may take any value
Commit [1] introduced a check to enforce the "maxKeySize" parameter of digest operations to always be zero. This is a viola
libutee: TEE_AllocateOperation(): maxKeySize of digests may take any value
Commit [1] introduced a check to enforce the "maxKeySize" parameter of digest operations to always be zero. This is a violation of the Global Platform specification [2].
Revert commit [1] to allow maxKeySize to take any value for digest operations.
[1] commit cf5c060cec76 ("libutee: TEE_AllocateOperation(): digest operations must have 0 max key size") Link: https://github.com/OP-TEE/optee_os/commit/cf5c060cec76
[2] TEE Internal Core API Specification – Public Release v1.3.1, §6.2.1 TEE_AllocateOperation:
The parameter maxKeySize SHALL be a valid value as defined in Table 5-9 for the algorithm, for algorithms referenced in Table 5-9. For all other algorithms, the maxKeySize parameter may have any value.
CC: Jens Wiklander <jens.wiklander@linaro.org> Fixes: cf5c060cec76 ("libutee: TEE_AllocateOperation(): digest operations must have 0 max key size") Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 0a75d408 | 13-Oct-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: fix data abort during ftrace
With commit c10e3fa93d24 ("core: fix race in handling TA panic") the resources of a panicked TAs are released as early as possible, including the user space mapped
core: fix data abort during ftrace
With commit c10e3fa93d24 ("core: fix race in handling TA panic") the resources of a panicked TAs are released as early as possible, including the user space mapped ftrace buffer. However, the pointer to the ftrace buffer is stored in the ts_session for quick and easy access. The ftrace buffer is always retrieved with get_fbuf() that already have a few other checks to see if the buffer is currently available. So add a check to see that the TA hasn't panicked also.
Fixes: c10e3fa93d24 ("core: fix race in handling TA panic") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (vexpress-qemu_armv8a)
show more ...
|
| 32b31808 | 06-Oct-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
Squashed commit upgrading to mbedtls-3.4.0
Squash merging branch import/mbedtls-3.4.0
8225713449d3 ("libmbedtls: fix unrecognized compiler option") f03730842d7b ("core: ltc: configure internal MD5"
Squashed commit upgrading to mbedtls-3.4.0
Squash merging branch import/mbedtls-3.4.0
8225713449d3 ("libmbedtls: fix unrecognized compiler option") f03730842d7b ("core: ltc: configure internal MD5") 2b0d0c50127c ("core: ltc: configure internal SHA-1 and SHA-224") 0e48a6e17630 ("libmedtls: core: update to mbedTLS 3.4.0 API") 049882b143af ("libutee: update to mbedTLS 3.4.0 API") 982307bf6169 ("core: LTC mpi_desc.c: update to mbedTLS 3.4.0 API") 33218e9eff7b ("ta: pkcs11: update to mbedTLS 3.4.0 API") 6956420cc064 ("libmbedtls: fix cipher_wrap.c for NIST AES Key Wrap mode") ad67ef0b43fd ("libmbedtls: fix cipher_wrap.c for chacha20 and chachapoly") 7300f4d97bbf ("libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pkcs1_v15_verify()") cec89b62a86d ("libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pss_verify_ext()") e7e048796c44 ("libmbedtls: add SM2 curve") 096beff2cd31 ("libmbedtls: mbedtls_mpi_exp_mod(): optimize mempool usage") 7108668efd3f ("libmbedtls: mbedtls_mpi_exp_mod(): reduce stack usage") 0ba4eb8d0572 ("libmbedtls: mbedtls_mpi_exp_mod() initialize W") 3fd6ecf00382 ("libmbedtls: fix no CRT issue") d5ea7e9e9aa7 ("libmbedtls: add interfaces in mbedtls for context memory operation") 2b0fb3f1fa3d ("libmedtls: mpi_miller_rabin: increase count limit") 2c3301ab99bb ("libmbedtls: add mbedtls_mpi_init_mempool()") 9a111f0da04b ("libmbedtls: make mbedtls_mpi_mont*() available") 804fe3a374f5 ("mbedtls: configure mbedtls to reach for config") b28a41531427 ("mbedtls: remove default include/mbedtls/config.h") dfafe507bbef ("Import mbedtls-3.4.0")
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (vexpress-qemu_armv8a)
show more ...
|