| 9551f4e5 | 08-Oct-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: juno: workaround cortex-a57 errata 808870
Workaround errata 808870: Unconditional VLDM instructions might cause an alignment fault even though the address is aligned
Products Affected: Cortex
core: juno: workaround cortex-a57 errata 808870
Workaround errata 808870: Unconditional VLDM instructions might cause an alignment fault even though the address is aligned
Products Affected: Cortex-A57 MPCore. Present in: r0p0
The workaround is to avoid generating the problematic instructions in AArch32 TA.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 70df09b8 | 08-Oct-2018 |
Krzysztof Jackiewicz <k.jackiewicz@samsung.com> |
libutee: Fix base64 encoding function
Bitwise OR of unsigned int and a signed char is machine dependent and could lead to invalid base64 encoding.
This commit makes it use unsigned char instead.
S
libutee: Fix base64 encoding function
Bitwise OR of unsigned int and a signed char is machine dependent and could lead to invalid base64 encoding.
This commit makes it use unsigned char instead.
Signed-off-by: Krzysztof Jackiewicz <k.jackiewicz@samsung.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 405c67d3 | 05-Oct-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
abort.c: arm32: assume VFP instr if undef
If an undefined instruction exception is raised from user mode assume it is a VFP instruction unless VFP already is enabled.
This avoids reading user mode
abort.c: arm32: assume VFP instr if undef
If an undefined instruction exception is raised from user mode assume it is a VFP instruction unless VFP already is enabled.
This avoids reading user mode memory while handling an abort which until now has kept an undiscovered race where a page could become inaccessible before the abort handler had the chance to read the instruction from the page.
There is room for false positives. Those will be discovered the next time the instruction is executed and still causes an undefined instruction exception. Only this time VFP is already enabled so we know it's not a VFP instruction. Enabling VFP in vain like this is harmless.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b2322fd3 | 04-Oct-2018 |
Etienne Carriere <etienne.carriere@st.com> |
core: prevent allocation when exception index tables are empty
This change prevent the core from allocating memory, mapping and other resources to map exception index tables that are all empty.
Sig
core: prevent allocation when exception index tables are empty
This change prevent the core from allocating memory, mapping and other resources to map exception index tables that are all empty.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 13306346 | 25-Sep-2018 |
Etienne Carriere <etienne.carriere@st.com> |
core: correct time conversion in delay support
The previous code may overflow in 32bit architectures. This change fixes the issue by forcing 64bit computation during frequency to counter conversion.
core: correct time conversion in delay support
The previous code may overflow in 32bit architectures. This change fixes the issue by forcing 64bit computation during frequency to counter conversion.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 706c2c70 | 28-Sep-2018 |
Sumit Garg <sumit.garg@linaro.org> |
thread: fix stack space to not be part of tee.bin
Commit 935364080364 ("thread: move stacks to separate sections") makes stack space to be part of tee.bin which leads to approx. 130K increase in siz
thread: fix stack space to not be part of tee.bin
Commit 935364080364 ("thread: move stacks to separate sections") makes stack space to be part of tee.bin which leads to approx. 130K increase in size of tee.bin for platform with 2 threads. So this patch fixes the stack space to be in NOLOAD section only.
Fixes: 935364080364 ("thread: move stacks to separate sections") Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8e01b4b9 | 03-Oct-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm32: fix saving vfp state
Prior to this patch TF-A in AArch32 didn't save the normal world VFP data registers and thus always restored then as zeroes and causing problems in normal world.
W
core: arm32: fix saving vfp state
Prior to this patch TF-A in AArch32 didn't save the normal world VFP data registers and thus always restored then as zeroes and causing problems in normal world.
With this patch if running with TF-A in AArch32 save the VFP state using the same logic as in AArch64. Since TF-A saves and restores CPACR_EL1 we cannot tell if normal world currently is using VFP or not so we have to assume that it is and always save the VFP data registers if they are about to be changed.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Hikey AArch32) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| bde8a250 | 02-Oct-2018 |
Joakim Bech <joakim.bech@linaro.org> |
pager: enable BestFit allocation when using the pager
When running xtest 6018 we have got panics because of TEE_ERROR_OUT_OF_MEMORY errors when trying to allocate memory (using malloc and calloc). T
pager: enable BestFit allocation when using the pager
When running xtest 6018 we have got panics because of TEE_ERROR_OUT_OF_MEMORY errors when trying to allocate memory (using malloc and calloc). The reason for this seems to be a fragmented heap when running with the pager enabled. By enabling the BestFit algorithm in bget we have seen a much improved use of the heap with a lot less fragmentation. We have been running xtest on QEMU v8 and HiKey 6220 and the performance difference seems to be negligible.
Fixes: https://github.com/OP-TEE/optee_os/issues/2580
Signed-off-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Joakim Bech <joakim.bech@linaro.org> (HiKey 6220, QEMU v8) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 62305667 | 25-Sep-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
Update revision to 3.3
The commit [1] that changed the revision macros from 3.2 to 3.3 was not pushed to the master branch when I created the 3.3.0-rc1 tag. Pick this commit now.
[1] Commit b5aecc0
Update revision to 3.3
The commit [1] that changed the revision macros from 3.2 to 3.3 was not pushed to the master branch when I created the 3.3.0-rc1 tag. Pick this commit now.
[1] Commit b5aecc05ca32 ("Update revision for release tag 3.3.0-rc1") (tag 3.3.0-rc1)
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| f9089765 | 02-Oct-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
scripts/symbolize.py: add help text
Document how the binutils tools (addr2line etc.) are found.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wikla
scripts/symbolize.py: add help text
Document how the binutils tools (addr2line etc.) are found.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| d7ef6334 | 01-Oct-2018 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: user_ta: set freed EXIDX pointer to NULL
Clear reference of user TA exception index table once it is freed, otherwise it is freed a second time. This issue occurs when set_exidx() fails for so
core: user_ta: set freed EXIDX pointer to NULL
Clear reference of user TA exception index table once it is freed, otherwise it is freed a second time. This issue occurs when set_exidx() fails for some reasons as an out of memory issue. This change prevents core from panicking when it occurs.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 1cccb13f | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: default guard reg_shm mobjs
Add a special guard for registered shared memory MOBJs to make sure that it's not possible to release MOBJs which aren't created by an explicit registration from no
core: default guard reg_shm mobjs
Add a special guard for registered shared memory MOBJs to make sure that it's not possible to release MOBJs which aren't created by an explicit registration from normal world.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| c0e7f04e | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: mobj_reg_shm_free() using mobj_reg_shm_put()
Let reg_shm MOBJs be completely reference counted meaning that mobj_free() on a reg_shm MOBJ only decrease the reference counter and only free it i
core: mobj_reg_shm_free() using mobj_reg_shm_put()
Let reg_shm MOBJs be completely reference counted meaning that mobj_free() on a reg_shm MOBJ only decrease the reference counter and only free it if it reaches 0.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f3a01e3a | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove mobj_reg_shm_{,un}map()
Removes mobj_reg_shm_map() and mobj_reg_shm_unmap(), they are replaced by mobj_reg_shm_inc_map() and mobj_reg_shm_dec_map().
Reviewed-by: Etienne Carriere <etie
core: remove mobj_reg_shm_{,un}map()
Removes mobj_reg_shm_map() and mobj_reg_shm_unmap(), they are replaced by mobj_reg_shm_inc_map() and mobj_reg_shm_dec_map().
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2dd4367c | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: pta: use mobj_reg_shm_{inc,dec}_map()
Use mobj_reg_shm_inc_map() and mobj_reg_shm_dec_map() instead of mobj_reg_shm_map() and mobj_reg_shm_unmap().
Acked-by: Etienne Carriere <etienne.carrier
core: pta: use mobj_reg_shm_{inc,dec}_map()
Use mobj_reg_shm_inc_map() and mobj_reg_shm_dec_map() instead of mobj_reg_shm_map() and mobj_reg_shm_unmap().
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 162f4454 | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add mobj_reg_shm_{inc,dec}_map()
mobj_reg_shm_inc_map() used when a reg_shm mobj needs to be mapped and mobj_reg_shm_dec_map() is called when the mapping isn't needed any longer.
Reviewed-by:
core: add mobj_reg_shm_{inc,dec}_map()
mobj_reg_shm_inc_map() used when a reg_shm mobj needs to be mapped and mobj_reg_shm_dec_map() is called when the mapping isn't needed any longer.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 0b020f94 | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove reg_shm_{put,free}_by_cookie()
Removes the two functions mobj_reg_shm_put_by_cookie() and mobj_reg_shm_free_by_cookie(). mobj_reg_shm_put() and mobj_free() should be used instead.
Revi
core: remove reg_shm_{put,free}_by_cookie()
Removes the two functions mobj_reg_shm_put_by_cookie() and mobj_reg_shm_free_by_cookie(). mobj_reg_shm_put() and mobj_free() should be used instead.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 46b32337 | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: entry_std: free/put by mobj in call cleanup
Use the mobj pointer instead of a shm_ref when cleaning up parameters in cleanup_shm_refs() at the end of a call.
Reviewed-by: Etienne Carriere <e
core: entry_std: free/put by mobj in call cleanup
Use the mobj pointer instead of a shm_ref when cleaning up parameters in cleanup_shm_refs() at the end of a call.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8b0c1367 | 26-Sep-2018 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add mobj_reg_shm_put()
Adds mobj_reg_shm_put() for reference counting without cookie.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander
core: add mobj_reg_shm_put()
Adds mobj_reg_shm_put() for reference counting without cookie.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 09614f8e | 01-Oct-2018 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: correct memory layout trace
Buffers that end at end of the available address range which may happen on 32bit machine fail have an end address that of computed as 0. This change uses a 64bit ad
core: correct memory layout trace
Buffers that end at end of the available address range which may happen on 32bit machine fail have an end address that of computed as 0. This change uses a 64bit address computation to prevent the displayed end address being 0.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 385000b0 | 01-Oct-2018 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: correct overflows in range overlap functions
Buffers that end at end of the available address range which may happen on 32bit machine fail have an end address that of computed as 0. This chang
core: correct overflows in range overlap functions
Buffers that end at end of the available address range which may happen on 32bit machine fail have an end address that of computed as 0. This change uses the computation already used in _core_is_buffer_inside() to ensure functions _core_is_buffer_outside() and _core_is_buffer_intersect() return a reliable result.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 52a5324c | 27-Sep-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: travis: print statistics (ccache, df)
Print ccache and disk space info before and after the build to help monitor and troubleshoot issues.
Signed-off-by: Jerome Forissier <jerome.forissier@lina
ci: travis: print statistics (ccache, df)
Print ccache and disk space info before and after the build to help monitor and troubleshoot issues.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 23a7ba3f | 27-Sep-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: travis: download 32-bit toolchain only
The 64-bit toolchain is not needed to build and run the regression tests for QEMU. Download only the 32-bit toolchain to save disk space and time.
Signed-
ci: travis: download 32-bit toolchain only
The 64-bit toolchain is not needed to build and run the regression tests for QEMU. Download only the 32-bit toolchain to save disk space and time.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 374fd46e | 27-Sep-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: travis: delete unused optee_os directory
The optee_os cloned using "repo" is not used, because we link to the directory checked out by the CI process instead. Delete it to save about 160 MiB of
ci: travis: delete unused optee_os directory
The optee_os cloned using "repo" is not used, because we link to the directory checked out by the CI process instead. Delete it to save about 160 MiB of disk space on the build server.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 1912a1ee | 27-Sep-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
ci: travis: delete expect5.45 directory after build
Save some more space on the build server.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@
ci: travis: delete expect5.45 directory after build
Save some more space on the build server.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|