| 7e85f665 | 02-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: plat-spike: conf.mk: set CFG_TEE_CORE_LOG_LEVEL to default
Do not force CFG_TEE_CORE_LOG_LEVEL to zero in core/arch/riscv/plat-spike/conf.mk
Signed-off-by: Marouene Boubakri <marouene.boubak
riscv: plat-spike: conf.mk: set CFG_TEE_CORE_LOG_LEVEL to default
Do not force CFG_TEE_CORE_LOG_LEVEL to zero in core/arch/riscv/plat-spike/conf.mk
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2f39a4c2 | 02-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: mm: tlb_helpers_rv.S: translation look-aside buffer invalidate
Implement tlbi_all(), tlbi_mva_allasid() and tlbi_asid() using supervisor memory-management fence instruction SFENCE.VMA.
Signe
riscv: mm: tlb_helpers_rv.S: translation look-aside buffer invalidate
Implement tlbi_all(), tlbi_mva_allasid() and tlbi_asid() using supervisor memory-management fence instruction SFENCE.VMA.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| be65c5c6 | 02-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: plat-spike: conf.mk: set CFG_TEE_RAM_VA_SIZE to 4MB
Set CFG_TEE_RAM_VA_SIZE to 0x00400000 in core/arch/riscv/plat-spike/conf.mk
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> A
riscv: plat-spike: conf.mk: set CFG_TEE_RAM_VA_SIZE to 4MB
Set CFG_TEE_RAM_VA_SIZE to 0x00400000 in core/arch/riscv/plat-spike/conf.mk
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| ef501733 | 08-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: include: riscv_macros.S: define RISC-V macro helpers
Add multiplication macro for RISC-V harts without M extension.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jer
riscv: include: riscv_macros.S: define RISC-V macro helpers
Add multiplication macro for RISC-V harts without M extension.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| c560e97f | 01-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: kernel: add stub for tee_time_get_sys_time()
A stub implementation which returns TEE_ERROR_NOT_IMPLEMENTED for now.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jen
riscv: kernel: add stub for tee_time_get_sys_time()
A stub implementation which returns TEE_ERROR_NOT_IMPLEMENTED for now.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 46a20318 | 01-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: kernel: idle.c: implement cpu_idle()
Required by panic() to abort current execution. It ensures memory operations were complete and stalls the hart.
Signed-off-by: Marouene Boubakri <marouen
riscv: kernel: idle.c: implement cpu_idle()
Required by panic() to abort current execution. It ensures memory operations were complete and stalls the hart.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 19bdabb5 | 31-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: kernel: main.c: implement tee_otp_get_hw_unique_key()
Sets the hardware unique key to zero. To model OTP device, Spike introduce the ability to write plugins in the form of shared object file
riscv: kernel: main.c: implement tee_otp_get_hw_unique_key()
Sets the hardware unique key to zero. To model OTP device, Spike introduce the ability to write plugins in the form of shared object files that allow user-defined Memory-Mapped-I/O behaviors.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 44588001 | 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: include: add core_mmu_arch.h
Add defines for MMU configuration and helper functions.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Etienne Carriere <etienne.carriere
riscv: include: add core_mmu_arch.h
Add defines for MMU configuration and helper functions.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 6d816494 | 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: include: add thread_arch.h
Minimalist version which defines contexts registers structures and thread local structure. This to allow compiling for RISC-V architecture.
Signed-off-by: Marouene
riscv: include: add thread_arch.h
Minimalist version which defines contexts registers structures and thread local structure. This to allow compiling for RISC-V architecture.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| a92f3814 | 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: include: add cache_helpers_arch.h
Nothing to define for now.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> |
| 5f7b832a | 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: core: define CFG_MAX_CACHE_LINE_SHIFT in riscv.mk
Define platform specific maximum cache line size in address lines.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Je
riscv: core: define CFG_MAX_CACHE_LINE_SHIFT in riscv.mk
Define platform specific maximum cache line size in address lines.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f1badf16 | 17-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: include: cache_helpers.h: allow reusing architecture-dependent code
To allow reuse of architecture-dependent code, divide original cache_helpers.h into two separate header files core/$arch/inc
core: include: cache_helpers.h: allow reusing architecture-dependent code
To allow reuse of architecture-dependent code, divide original cache_helpers.h into two separate header files core/$arch/include/kernel/cache_helpers_arch.h and core/include/kernel/cache_helpers.h
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> [jf: set author to be same as Signed-off-by:] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| b2c54937 | 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: include: kernel: add tee_l2cc_mutex.h
The tee_l2cc_mutex.h header file is required by core/mm/core_mmu.c and core/mm/vm.c, therefore, add an empty one to pass compilation.
Signed-off-by: Mar
riscv: include: kernel: add tee_l2cc_mutex.h
The tee_l2cc_mutex.h header file is required by core/mm/core_mmu.c and core/mm/vm.c, therefore, add an empty one to pass compilation.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8fe58e85 | 24-Oct-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
riscv: include: add misc_arch.h
Nothing to define for now.
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> |
| 4e9ed1a9 | 17-Nov-2022 |
Marouene Boubakri <marouene.boubakri@nxp.com> |
core: include: misc.h: divide into misc.h and misc_arch.h
get_core_pos() is architecture-independent function and could be re-used by an arch implementation, therefore, move it to a separate header
core: include: misc.h: divide into misc.h and misc_arch.h
get_core_pos() is architecture-independent function and could be re-used by an arch implementation, therefore, move it to a separate header file core/include/kernel/misc.h, and, keep architecture-dependent code in core/$arch/include/kernel/misc_arch.h
Signed-off-by: Marouene Boubakri <marouene.boubakri@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> [jf: set author to be same as Signed-off-by:] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 2d7720f1 | 11-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add fault mitigations in ree_fs_ta_open()
Adds and enables fault mitigation in ree_fs_ta_open() to check the signature of the TA before returning success.
Acked-by: Jerome Forissier <jerome.f
core: add fault mitigations in ree_fs_ta_open()
Adds and enables fault mitigation in ree_fs_ta_open() to check the signature of the TA before returning success.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| c8219657 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add fault mitigations in buf_ta_open()
Adds and enables fault mitigation in buf_ta_open() to check both the signature of the TA and then also the hash of the TA before returning success.
Acke
core: add fault mitigations in buf_ta_open()
Adds and enables fault mitigation in buf_ta_open() to check both the signature of the TA and then also the hash of the TA before returning success.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8a697013 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add fault mitigations to shdr_verify_signature*()
Adds fault mitigations to shdr_verify_signature() and shdr_verify_signature2(). shdr_verify_signature() and shdr_verify_signature2() are calle
core: add fault mitigations to shdr_verify_signature*()
Adds fault mitigations to shdr_verify_signature() and shdr_verify_signature2(). shdr_verify_signature() and shdr_verify_signature2() are called using the wrapper FTMN_CALL_FUNC() which verifies that the correct function was called and that the return value hasn't been tampered with.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b303be92 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
drivers: crypto: add stubbed fault mitigation in crypto_acipher_rsassa_verify()
Adds a stubbed fault mitigation for the drivers version of crypto_acipher_rsassa_verify). End the function with FTMN_C
drivers: crypto: add stubbed fault mitigation in crypto_acipher_rsassa_verify()
Adds a stubbed fault mitigation for the drivers version of crypto_acipher_rsassa_verify). End the function with FTMN_CALLEE_DONE() to record that the function was indeed called and a redundant copy of the return value.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8f6ac972 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: ltc: add fault mitigation in crypto_acipher_rsassa_verify()
Adds fault mitigations in crypto_acipher_rsassa_verify() and dependent functions in libTomCrypt in order to include the critical fin
core: ltc: add fault mitigation in crypto_acipher_rsassa_verify()
Adds fault mitigations in crypto_acipher_rsassa_verify() and dependent functions in libTomCrypt in order to include the critical final memcompare.
This fault mitigation is only enabled with the calling function enabled fault mitigations and CFG_CORE_FAULT_MITIGATION is 'y'.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 98ada65e | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: libmbedtls: add fault mitigation in crypto_acipher_rsassa_verify()
Adds fault mitigations in crypto_acipher_rsassa_verify() by checking that the internal call to memcmp() when verifying the ha
core: libmbedtls: add fault mitigation in crypto_acipher_rsassa_verify()
Adds fault mitigations in crypto_acipher_rsassa_verify() by checking that the internal call to memcmp() when verifying the hash in the RSA signature was called and was successful.
The internal call to memcmp() records the result of the comparison if successful. This is double checked against the normal return value from the called pk_info->verify_func().
If the normal return value is OK then the recorded return value must match or we're likely subject to a fault injection attack and we're triggering a panic.
If the normal return value isn't OK we don't care about the recorded value, it's overridden by a new error code. In this case we don't know if we're subject to a fault injection attack or not, the important thing to make sure that the calling function doesn't miss the error.
This fault mitigation is only enabled with the calling function enabled fault mitigations and CFG_CORE_FAULT_MITIGATION is 'y'.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 06de6080 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pkcs1_v15_verify()
Adds fault mitigation in mbedtls_rsa_rsassa_pkcs1_v15_verify() by using the macro FTMN_CALLEE_DONE_MEMCMP() instead of just
libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pkcs1_v15_verify()
Adds fault mitigation in mbedtls_rsa_rsassa_pkcs1_v15_verify() by using the macro FTMN_CALLEE_DONE_MEMCMP() instead of just mbedtls_safer_memcmp() when checking that the hash in the RSA signature is matching the expected value.
FTMN_CALLEE_DONE_MEMCMP() saves on success the result in a thread local storage if fault mitigations was enabled when the function was called.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a846630f | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pss_verify_ext()
Adds fault mitigation in mbedtls_rsa_rsassa_pss_verify_ext() by using the macro FTMN_CALLEE_DONE_MEMCMP() instead of memcmp()
libmbedtls: add fault mitigation in mbedtls_rsa_rsassa_pss_verify_ext()
Adds fault mitigation in mbedtls_rsa_rsassa_pss_verify_ext() by using the macro FTMN_CALLEE_DONE_MEMCMP() instead of memcmp() when checking that the hash in the RSA signature is matching the expected value.
FTMN_CALLEE_DONE_MEMCMP() saves on success the result in a thread local storage if fault mitigations was enabled when the function was called.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3227a4c6 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add fault mitigation tests
Adds some simple test for the fault mitigation routines.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@lina
core: add fault mitigation tests
Adds some simple test for the fault mitigation routines.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7e75ca54 | 01-Apr-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
Basic fault mitigation routines
Adds basic fault mitigation routines designed to help protecting from fault injection attacks on the hardware. This is by no means bullet proof, but it should at leas
Basic fault mitigation routines
Adds basic fault mitigation routines designed to help protecting from fault injection attacks on the hardware. This is by no means bullet proof, but it should at least improve the situation.
These routines focus on verifying that a function has been called and that the returned value matches the result from the function. This is done by having a handshake between the caller and the callee where also the return value is transmitted in a separate channel.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|