| 6e2fdc25 | 14-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: thread specific data
Represent thread specific data with struct thread_specific_data.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.
core: thread specific data
Represent thread specific data with struct thread_specific_data.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7379a3f1 | 06-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove CFG_MMU_V7_TTB
Since all platforms are using CFG_MMU_V7_TTB when applicable the config option is redundant. This patch removes CFG_MMU_V7_TTB and makes some related functions static.
R
core: remove CFG_MMU_V7_TTB
Since all platforms are using CFG_MMU_V7_TTB when applicable the config option is redundant. This patch removes CFG_MMU_V7_TTB and makes some related functions static.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| ff857a3a | 15-Feb-2016 |
Pascal Brand <pascal.brand@st.com> |
Properties: fix in case of TEE_ERROR_SHORT_BUFFER
* TEE_ERROR_SHORT_BUFFER errors are better handled in case of of properties inside the Core. * String and Binary Block were contraints to have a l
Properties: fix in case of TEE_ERROR_SHORT_BUFFER
* TEE_ERROR_SHORT_BUFFER errors are better handled in case of of properties inside the Core. * String and Binary Block were contraints to have a length lower than 80 bytes due to the use of an internal structure. This is removed
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Pascal Brand <pascal.brand@st.com>
show more ...
|
| c02f9fb0 | 12-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
arm: add auto generated asm-defines.h
Adds defines for assembly access to: * struct thread_ctx * struct thread_user_mode_rec * struct thread_core_local * struct thread_smc_args * struct thread_abort
arm: add auto generated asm-defines.h
Adds defines for assembly access to: * struct thread_ctx * struct thread_user_mode_rec * struct thread_core_local * struct thread_smc_args * struct thread_abort_regs * struct thread_user_mode_rec as needed from assembly code replacing previous definitions in kernel/thread.h and thread_private.h.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d5a887c8 | 12-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add auto generated asm-defines.h
The temporary files are all stored alongside asm-defines.h, and are named: .asm-defines.s, .asm-defines.s.d, .asm-defines.s.cmd.
Reviewed-by: Jerome Forissier
core: add auto generated asm-defines.h
The temporary files are all stored alongside asm-defines.h, and are named: .asm-defines.s, .asm-defines.s.d, .asm-defines.s.cmd.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 422e54f5 | 13-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
vexpress: add flavor qemu_armv8a
Adds qemu_armv8a flavor to the vexpress platform.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org>
vexpress: add flavor qemu_armv8a
Adds qemu_armv8a flavor to the vexpress platform.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU-armv8a boot only) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 345bee4a | 16-Feb-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
vexpress: remove platform flavor qemu
Removes the plain QEMU flavor.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> |
| 64a5011e | 10-Feb-2016 |
Pascal Brand <pascal.brand@st.com> |
Properties in kernel side
In order to ease the inclusion of vendor-specific properties, properties are now mostly described in the kernel. This allows a lower synchronization between user-side and k
Properties in kernel side
In order to ease the inclusion of vendor-specific properties, properties are now mostly described in the kernel. This allows a lower synchronization between user-side and kernel-side.
The only properties now handled at user-side are TA properties (apart from "gpd.ta.appID") as well as the TEE property "gpd.tee.arith.maxBigIntSize"
Early discussion can be found at https://github.com/OP-TEE/optee_os/pull/460 and https://github.com/OP-TEE/optee_os/pull/482
Suggested-by: Paul Swan <paswan@microsoft.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Pascal Brand <pascal.brand@st.com>
show more ...
|
| f17691b3 | 19-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
ltc: make cipher_descriptor a pointer to descriptors
Saves 3376 bytes by making cipher_descriptor an array of pointers to descriptor instead of an array of descriptors.
Reviewed-by: Jerome Forissie
ltc: make cipher_descriptor a pointer to descriptors
Saves 3376 bytes by making cipher_descriptor an array of pointers to descriptor instead of an array of descriptors.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3015f564 | 15-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
ltc: make hash_descriptor a pointer to descriptors
Saves 3288 bytes by making hash_descriptor an array of pointers to descriptor instead of an array of descriptors.
Reviewed-by: Jerome Forissier <j
ltc: make hash_descriptor a pointer to descriptors
Saves 3288 bytes by making hash_descriptor an array of pointers to descriptor instead of an array of descriptors.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7892cb1b | 15-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
ltc: make prng_descriptor a pointer to descriptors
Saves 1184 bytes by making prng_descriptor an array of pointers to descriptors instead of an array of descriptors.
Reviewed-by: Jerome Forissier <
ltc: make prng_descriptor a pointer to descriptors
Saves 1184 bytes by making prng_descriptor an array of pointers to descriptors instead of an array of descriptors.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 49d0f60d | 02-Dec-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: link with --gc-sections
Link OP-TEE Core with --gc-sections to remove unused code, saves ~8KiB.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens
core: link with --gc-sections
Link OP-TEE Core with --gc-sections to remove unused code, saves ~8KiB.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 202cacd6 | 19-Dec-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
arm: compile without -mlong-calls
Compiles without compiler option -mlong-calls, saves ~12 KiB.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wikla
arm: compile without -mlong-calls
Compiles without compiler option -mlong-calls, saves ~12 KiB.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2c918b19 | 26-Jan-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
plat-vexpress: FVP change shared memory range
Changes shared memory range used on FVP since the old shared memory region conflicts with something on recent kernels (problem seen on v4.4).
Because o
plat-vexpress: FVP change shared memory range
Changes shared memory range used on FVP since the old shared memory region conflicts with something on recent kernels (problem seen on v4.4).
Because of the conflict the kernel refuses to reserve the shared memory resulting in occasional memory corruption.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9e84c17e | 21-Jan-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
RPMB: add file encryption
Adds support for CFG_ENC_FS=y when CFG_RPMB_FS=y.
The files stored on an RPMB partition are encrypted with AES in Cipher Block Chaining (CBC) mode with Encrypted Salt/Sect
RPMB: add file encryption
Adds support for CFG_ENC_FS=y when CFG_RPMB_FS=y.
The files stored on an RPMB partition are encrypted with AES in Cipher Block Chaining (CBC) mode with Encrypted Salt/Sector Initialization Vector (ESSIV). Each file has it own 128-bit File Encryption Key (FEK), randomly chosen when the file is created. The FEK is added to the FAT entry for the file, it is always decrypted with the Secure Storage Key (SSK) before use. The file path is reduced accordingly, so that a FAT entry is still 256 bytes. Each 256-byte block in the file is encrypted as follows:
k = 128 bits of SHA256(FEK); IV = AES_Encrypt(k, block number); encrypted_block = AES_CBC(IV, FEK, block_data);
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a0749ba9 | 28-Jan-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
RPMB: update debug traces
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> |
| 88e6e089 | 27-Jan-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
RPMB: make device ID configurable
Introduce CFG_RPMB_FS_DEV_ID (default value: 0), so that the eMMC device used by the RPMB filesystem is easily configurable. For instance, set CFG_RPMB_FS_DEV_ID=1
RPMB: make device ID configurable
Introduce CFG_RPMB_FS_DEV_ID (default value: 0), so that the eMMC device used by the RPMB filesystem is easily configurable. For instance, set CFG_RPMB_FS_DEV_ID=1 for /dev/mmcblk1rpmb.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 923c1f34 | 06-Dec-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: stack unwinding
Adds support for stack unwinding, currently only done for fatal aborts from kernel mode if CFG_CORE_UNWIND = y
The ARMv7/Aarch32 implementation uses -funwind-tables to generat
core: stack unwinding
Adds support for stack unwinding, currently only done for fatal aborts from kernel mode if CFG_CORE_UNWIND = y
The ARMv7/Aarch32 implementation uses -funwind-tables to generate frame unwinding information which is quite large. Enabling stack unwinding currently consumes ~8 KiB. The code to parse the frame unwind information is imported from FreeBSD.
The Aarch64 implementation takes advantage of the frame pointer and has minimal overhead. The core code to unwind the stack is imported from FreeBSD.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey 32/64) Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a1989c09 | 09-Feb-2016 |
Patrick Delaunay <patrick.delaunay73@gmail.com> |
core/armv7: solve map issue for unaligned pa
in the function map_page_memarea() the l2 address alignment is not correctly handled that cause issue when parameter mm->pa is not aligned with section s
core/armv7: solve map issue for unaligned pa
in the function map_page_memarea() the l2 address alignment is not correctly handled that cause issue when parameter mm->pa is not aligned with section size (ex: mm->pa=0x2ffc0000 => l2[192] = 0x30080416)
=> SECTION_MASK should be used instead of SMALL_PAGE_MASK
Change-Id: Ibc7aa5063265a78112bff761fdb55490cfc0d7f3 Signed-off-by: Patrick Delaunay <patrick.delaunay73@gmail.com> Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| c042fbef | 05-Feb-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
Introduce CROSS_COMPILE32 and CROSS_COMPILE64
Currently, to build a 64-bit TEE core (as well as mixed 32- and 64-bit TA libraries, which are automatically enabled in this case), one has to set too m
Introduce CROSS_COMPILE32 and CROSS_COMPILE64
Currently, to build a 64-bit TEE core (as well as mixed 32- and 64-bit TA libraries, which are automatically enabled in this case), one has to set too many compiler variables:
$ make PLATFORM=hikey CFG_ARM64_core=y \ CROSS_COMPILE_core=aarch64-linux-gnu- \ CROSS_COMPILE_ta_arm64=aarch64-linux-gnu-
This commit introduces two variables, CROSS_COMPILE32 and CROSS_COMPILE64. They take appropriate default values, so that the above line may be simplified as:
$ make PLATFORM=hikey CFG_ARM64_core=y
The change remains compatible with previous builds, i.e., CROSS_COMPILE can still be used to define the 32-bit compiler because CROSS_COMPILE32 defaults to $(CROSS_COMPILE). Similarly, CROSS_COMPILE_core and CROSS_COMPILE_ta_arm{32,64} are still used so they may be overridden too.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 1aa8bb32 | 18-Dec-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove registration of svc and abort handlers
Removes the possibility to register svc and abort handlers as the same handler is always used. The svc and abort handlers are also so closely tied
core: remove registration of svc and abort handlers
Removes the possibility to register svc and abort handlers as the same handler is always used. The svc and abort handlers are also so closely tied to thread system that it would be difficult and error prone to use alternative handlers.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (FVP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 188f5aa5 | 29-Jan-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
RPMB: make sure tee_rpmb_fs_write() is atomic
File updates have to be atomic, even in case of a powerdown event for instance. Therefore we must not write data in-place unless the update spans less t
RPMB: make sure tee_rpmb_fs_write() is atomic
File updates have to be atomic, even in case of a powerdown event for instance. Therefore we must not write data in-place unless the update spans less than rel_wr_blkcnt blocks.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 0de9a5fb | 11-Dec-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
arm: add TA hard-float support
Adds support for hard-float in TAs. Hard-float is enabled by default for all platforms which are capable, currently all. Soft-float is still available if needed.
Revi
arm: add TA hard-float support
Adds support for hard-float in TAs. Hard-float is enabled by default for all platforms which are capable, currently all. Soft-float is still available if needed.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3276098d | 03-Feb-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: introduce __maybe_unused
When a variable, parameter or function may or may not be referenced depending on some conditional compilation setting, mark it with __maybe_unused instead of __unused.
core: introduce __maybe_unused
When a variable, parameter or function may or may not be referenced depending on some conditional compilation setting, mark it with __maybe_unused instead of __unused. The goal is to improve code legibility.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
show more ...
|
| 29e63291 | 16-Dec-2015 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: abort.{c,h} refactoring
Renames structs, functions and defines to show that they are part of the abort module.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jerome Forissie
core: abort.{c,h} refactoring
Renames structs, functions and defines to show that they are part of the abort module.
Reviewed-by: Pascal Brand <pascal.brand@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|