| 71c1078a | 05-Nov-2016 |
Victor Chong <victor.chong@linaro.org> |
hikey: enable spi by default and add sample test code
Suggested-by: Daniel Thompson <daniel.thompson@linaro.org> Suggested-by: Leo Yan <leo.yan@linaro.org> Suggested-by: Haojian Zhuang <haojian.zhua
hikey: enable spi by default and add sample test code
Suggested-by: Daniel Thompson <daniel.thompson@linaro.org> Suggested-by: Leo Yan <leo.yan@linaro.org> Suggested-by: Haojian Zhuang <haojian.zhuang@linaro.org> Signed-off-by: Victor Chong <victor.chong@linaro.org> Tested-by: Victor Chong <victor.chong@linaro.org> (with CFG_SPI_TEST=y) Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 32157afc | 29-Nov-2016 |
Guanchao Liang <liang.guanchao@linaro.org> |
add static ta for testing interrupt framework
Signed-off-by: Guanchao Liang <liang.guanchao@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne
add static ta for testing interrupt framework
Signed-off-by: Guanchao Liang <liang.guanchao@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Joakim Bech <joakim.bech@linaro.org> (QEMU) [Update commit author to be same as S-o-b: above] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 26ed70ec | 29-Nov-2016 |
Guanchao Liang <liang.guanchao@linaro.org> |
core: add code for the interrupt framework
With this commit, we add three more GIC APIs for the kernel of OPTEE-OS: itr_raise_sgi : can raise software generate interrupt(SGI) from secure world to no
core: add code for the interrupt framework
With this commit, we add three more GIC APIs for the kernel of OPTEE-OS: itr_raise_sgi : can raise software generate interrupt(SGI) from secure world to no-secure world, or secure world to secure world. It's a quick communication between different worlds and different cores. Because SGI is using the GIC N-N model, so with this API, every core can receive the interrupt if want.
itr_raise_pi : can trigger the peripheral interrupt with the corresponding interrupt number. When sending it to N cores, just one core can receive the effective interrupt.
itr_set_affinity : can target the peripheral interrupt to the core you want, it means that one can bind the interrupt to the corresponding core use this API.
The usage may as follow: itr_raise_sgi(11, 0x1 << 1) it will raise SGI11 to core 1, and if you want not only core 1 can receive SGI11 but also core 2, then you can change the code to itr_raise_sgi(11, 0x1 << 1 || 0x1 << 2).
itr_set_affinity(61, 0x1 << 1) itr_raise_pi(61) These two APIs may use together, the operation set_affinity set the PI61 can just sent to core 1, then raise_pi, core 1 will receive the peripheral interrupt 61.
Signed-off-by: Guanchao Liang <liang.guanchao@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Joakim Bech <joakim.bech@linaro.org> (QEMU) [Update commit author to be same as S-o-b: above] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| ab046bb5 | 18-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core/armv7: cleanup bootargs
In non-A-TF boot modes, OP-TEE core expects some boot arguments: - nonsecure entry point, default expected from core register LR. - pagestore address, when pager is enab
core/armv7: cleanup bootargs
In non-A-TF boot modes, OP-TEE core expects some boot arguments: - nonsecure entry point, default expected from core register LR. - pagestore address, when pager is enable, from core register R0. - devicetree address, when DT is enable, from core register R2.
Some non-A-TF booted platform rely on u-boot has bootloader, and expect u-boot to boot both linux and op-tee. armv7/linux expects the following boot arguments: - machine ID, expected from core register R1. - devicetree address from core register R2.
Before this patch, some platform used CFG_TEE_GDB_BOOT together with CFG_BUILT_IN_ARGS to both provide op-tee core boot arguments, and relay linux argument from op-tee entry to linux kernel entry (nonsecure entry).
This change proposes to rationalize a bit. Both linux and optee expect device tree from register R2. op-tee could relay machine ID (R1).
This change removes CFG_TEE_GDB_BOOT and CFG_BUILT_IN_ARGS that are now deprecated.
This change still supports CFG_PAGEABLE_ADDR, CFG_DT_ADDR and CFG_NS_ENTRY_ADDR to statically define the pagestore, device tree and nonsecure entry. These can be defined independently.
Since this change, if CFG_WITH_ARM_TRUSTED_FW is not enable, the standard boot arguments (registers R1 and R2 at optee entry) are propagated to the non secure entry.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| ed52538e | 15-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core/armv7: clear 4th arg of secondary boot cores nonsecure entry
Secondary boot cores shall clean cpu register R4 before leaving secure. R4 is the 4th argument propagated to non-secure entry by opt
core/armv7: clear 4th arg of secondary boot cores nonsecure entry
Secondary boot cores shall clean cpu register R4 before leaving secure. R4 is the 4th argument propagated to non-secure entry by optee monitor.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 050ba678 | 25-Nov-2016 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: crypto: avoid undefined bit shifts by a negative amount (-1)
The GET_ATTRIBUTE() and SET_ATTRIBUTE() macros are replaced with static functions that properly handle the case when the attribute
core: crypto: avoid undefined bit shifts by a negative amount (-1)
The GET_ATTRIBUTE() and SET_ATTRIBUTE() macros are replaced with static functions that properly handle the case when the attribute is not found.
Fixes: Coverity CID:1378609 CID:1378610 CID:1378611 CID:1378612 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8daf3da9 | 24-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: fix stack setup at secondary core entry
stack_tmp_offset is required by secondary boot cores before pager is initialized.
Fixes: e56a56428def ("core: sm: use stack_tmp for sm_from_nsec") Sign
core: fix stack setup at secondary core entry
stack_tmp_offset is required by secondary boot cores before pager is initialized.
Fixes: e56a56428def ("core: sm: use stack_tmp for sm_from_nsec") Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| c822f03f | 17-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: sm: use stack_tmp for sm_from_nsec()
As the C function sm_from_nsec() used by the secure monitor is expected to be extended over time it needs a larger stack. With this patch the secure monito
core: sm: use stack_tmp for sm_from_nsec()
As the C function sm_from_nsec() used by the secure monitor is expected to be extended over time it needs a larger stack. With this patch the secure monitor uses stack_tmp. The first part of stack_tmp is permanently reserved for secure and non-secure contexts.
Tested-by: Joakim Bech <joakim.bech@linaro.org> (RPi3) Tested-by: Andrew F. Davis <afd@ti.com> (plat-ti) Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (stm-b2260) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU v7 & v8) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 3f4d6849 | 17-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: redesign secure monitor
The secure monitor is redesigned to make it easier to register services.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jen
core: redesign secure monitor
The secure monitor is redesigned to make it easier to register services.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9dd11da5 | 19-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm32: add mov_imm assembly macro
Adds mov_imm assembly macro to load 32-bit immediate values into a register.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens
core: arm32: add mov_imm assembly macro
Adds mov_imm assembly macro to load 32-bit immediate values into a register.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8c110ab1 | 08-Nov-2016 |
Peng Fan <peng.fan@nxp.com> |
core: imx: fix compile error
Error log: core/arch/arm/plat-imx/conf.mk:26: *** missing separator. Stop.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
core: imx: fix compile error
Error log: core/arch/arm/plat-imx/conf.mk:26: *** missing separator. Stop.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 9eece615 | 15-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: fix ta_private_vmem support
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> |
| ff25a4d2 | 15-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: fix support of TA_FLAG_CACHE_MAINTENANCE
Allow loaded TAs to set the property TA_FLAG_CACHE_MAINTENANCE.
TAs are allowed to request cache maintenance operations only on the memory buffers pas
core: fix support of TA_FLAG_CACHE_MAINTENANCE
Allow loaded TAs to set the property TA_FLAG_CACHE_MAINTENANCE.
TAs are allowed to request cache maintenance operations only on the memory buffers passed as parameters. They are not allowed to do cache maintenance on TA private data.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| dd3247be | 15-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
libutee extension: check-access-right for secure/nonsec permissions
Define TEE_MEMORY_ACCESS_NONSECURE and TEE_MEMORY_ACCESS_SECURE are extensions of the flag bitfield argument of TEE_CheckMemoryAcc
libutee extension: check-access-right for secure/nonsec permissions
Define TEE_MEMORY_ACCESS_NONSECURE and TEE_MEMORY_ACCESS_SECURE are extensions of the flag bitfield argument of TEE_CheckMemoryAccessRights(). Once one of these is set, core checks the secure mapping attribute.
Note: if both are set, it's obviously an caller error. Implementation will return a TEE_ERROR_ACCESS_DENIED.
Include tee_api_defines_extensions.h from tee_internal_api_extensions.h so that TAs only have to include tee_internal_api_extensions.h to access extensions resources.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d5461e38 | 09-Nov-2016 |
Peng Fan <peng.fan@nxp.com> |
core: imx: boot up secondary cores more reliable
Set CORE[x]_RST bit when release secondary cores to make it more reliable.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Etienne Carriere
core: imx: boot up secondary cores more reliable
Set CORE[x]_RST bit when release secondary cores to make it more reliable.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| dd2561c4 | 16-Nov-2016 |
Peng Fan <peng.fan@nxp.com> |
core: imx: switch to use c code for PL310
1. Add a new file imx_pl310.c for arm_cl2_config and arm_cl2_enable.
2. For i.MX6Q, CFG_PL310 is defined and arm_cl2_config is implemented. In arm_cl2_c
core: imx: switch to use c code for PL310
1. Add a new file imx_pl310.c for arm_cl2_config and arm_cl2_enable.
2. For i.MX6Q, CFG_PL310 is defined and arm_cl2_config is implemented. In arm_cl2_config, all ways are invalidated, but it does not follow the rules to wait all ways to be invalidated. So In the following call to inval_cache_vrange, arm_cl2_cleaninvbypa will trigger SLVERR.
This is because the first invalidation operation not finished in background, and another invalidation is issued to PL310. So switch to use arm_cl2_invbyway which will wait until invalidation finished.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 09fc0424 | 09-Nov-2016 |
Emmanuel MICHEL <emmanuel.michel@st.com> |
ltc: Fix clear big number in TEE wrapper
Reset a transient object clear datas of this object. For big numbers, the corresponding method bn_clear reset the underlying struct mpa_numbase_struct by fil
ltc: Fix clear big number in TEE wrapper
Reset a transient object clear datas of this object. For big numbers, the corresponding method bn_clear reset the underlying struct mpa_numbase_struct by filling of zeros its data. However this struct has metadata, and the call of memset is done on the begin on the structure, so on the metadata + part of the data, instead of being done only of the datas. Fix by zero only datas.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Tested-by: Emmanuel MICHEL <emmanuel.michel@st.com> (STM platform) Signed-off-by: Emmanuel MICHEL <emmanuel.michel@st.com>
show more ...
|
| f01690c3 | 15-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: fix mapping init debug trace
Before this change, debug trace shows wrong virtual address range.
Confusion comes from the 'struct tee_mmap_region':
va Start address of the virtual
core: fix mapping init debug trace
Before this change, debug trace shows wrong virtual address range.
Confusion comes from the 'struct tee_mmap_region':
va Start address of the virtual 'region' where to map. Aligned on 'region' alignment constraint. region_size Byte size of the virtual 'region' where to map. pa Physical start address of the *mapped* buffer. size Byte size of the *mapped* buffer.
The virtual start address of the *mapped* buffer is not stored in the structure. It must be computed.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| 1c2059ca | 11-Nov-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: fix 'flow' traces in pager
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Etienne Carriere <etienne.car
core: fix 'flow' traces in pager
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 5a2e7287 | 11-Nov-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: pager: keep plat_cpu_reset_early() unpaged
Keep plat_cpu_reset_early() in unpaged area since it needs to be always available.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signe
core: pager: keep plat_cpu_reset_early() unpaged
Keep plat_cpu_reset_early() in unpaged area since it needs to be always available.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 09a9f39b | 12-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: rename all tee_fs_rpc_new_ functions
Rename all functions with tee_fs_rpc_new_ prefix to use a tee_fs_rpc_ prefix instead now that all the legacy RPC functions are removed.
Reviewed-by: E
core: FS: rename all tee_fs_rpc_new_ functions
Rename all functions with tee_fs_rpc_new_ prefix to use a tee_fs_rpc_ prefix instead now that all the legacy RPC functions are removed.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 12936033 | 11-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: remove unused legacy RPC functions
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> |
| 5799c048 | 12-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: SQL FS: use new RPC transaction functions
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> |
| de564096 | 11-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: SQL FS: use new RPC rename function
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> |
| 0c51ac2b | 11-Oct-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: simplify FOP create
As the FOP create always is called with the overwrite flag it can be simplified. This makes the implementation of create much easier.
Reviewed-by: Etienne Carriere <et
core: FS: simplify FOP create
As the FOP create always is called with the overwrite flag it can be simplified. This makes the implementation of create much easier.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (FVP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|