| 6c02f96f | 25-May-2020 |
Jerome Forissier <jerome@forissier.org> |
Revert "arm64: Disable outline-atomics when compiling"
This reverts commit 5e75fab066a352c8f334b1b5c73380f5896e85f3.
Unfortunately, the cc-option function cannot be called in core/arch/arm/arm.mk,
Revert "arm64: Disable outline-atomics when compiling"
This reverts commit 5e75fab066a352c8f334b1b5c73380f5896e85f3.
Unfortunately, the cc-option function cannot be called in core/arch/arm/arm.mk, at least not without further changes, because it depends on $(CC$(sm)) which is set in mk/gcc.mk or mk/clang.mk. Both files need $(arch-bits-$(sm)), which is set in core/arch/arm/arm.mk. Circular dependency.
Let's revert this change until a proper fix is found, because it has side effects on non-GCC 10 compilation such as build warnings [1] and slow compilation with Clang.
Signed-off-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| 5e75fab0 | 19-May-2020 |
Joshua Watt <JPEWhacker@gmail.com> |
arm64: Disable outline-atomics when compiling
Disables the automatic detection of LSE (Large System Extension) instructions when compiling AArch64 code. GCC 10 implements this detection in libgcc us
arm64: Disable outline-atomics when compiling
Disables the automatic detection of LSE (Large System Extension) instructions when compiling AArch64 code. GCC 10 implements this detection in libgcc using __getauxval(), which OP-TEE doesn't implement. This requires that the proper -mcpu is passed to GCC so that the code can be correctly compiled to use either LSE or load-store-exclusive.
Fixes linker errors like the following when compiling with GCC 10:
aarch64-linux-ld.bfd: libgcc.a(lse-init.o): in function `init_have_lse_atomics': lse-init.c:44: undefined reference to `__getauxval' core/arch/arm/kernel/link.mk:38: recipe for target 'build/core/all_objs.o' failed
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> [jf: s/optee/OP-TEE/] Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| b627229f | 19-May-2020 |
Khoa Hoang <admin@khoahoang.com> |
core: tee_mmu: fix use after free bug in vm_unmap()
vm_unmap() uses r->va and r->size after it is freed and can cause the end VA address calculation to be wrong and the while loop keep going till it
core: tee_mmu: fix use after free bug in vm_unmap()
vm_unmap() uses r->va and r->size after it is freed and can cause the end VA address calculation to be wrong and the while loop keep going till it unmaps the rest of the regions. This bug can cause TA to crash with a translation fault since vm_unmap() unmapped text and data
Signed-off-by: Khoa Hoang <admin@khoahoang.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 7fdadfdb | 19-May-2020 |
Jerome Forissier <jerome@forissier.org> |
core: aslr: suppress R_AARCH64_ABS64 and R_ARM_ABS32 relocations
The following errors were observed when building with GCC 6.2.1:
- 64 bits: GEN out/arm/core/tee.bin Unexpected relocation t
core: aslr: suppress R_AARCH64_ABS64 and R_ARM_ABS32 relocations
The following errors were observed when building with GCC 6.2.1:
- 64 bits: GEN out/arm/core/tee.bin Unexpected relocation type 0x101
- 32 bits: GEN out/arm/core/tee.bin Unexpected relocation type 0x2
Relocation type 0x101 is R_AARCH64_ABS64 and 0x2 is R_ARM_ABS32. The errors are output by scripts/gen_tee_bin.py which expects only relative relocations (the ones that are necessary for ASLR).
This patch adds the -Bsymbolic linker option to avoid these relocations. More information can be found in Linux commit [1].
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=08cc55b2afd97a654f71b3bebf8bb0ec89fdc498 Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| c192d8ef | 11-May-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
plat-imx: psci: support Arm SMCCC_VERSION function ID
As per Arm SMCCC v1.1 specification [1], PSCI PSCI_FEATURES function ID should report Arm Architecture Call SMCCC_VERSION as supported when the
plat-imx: psci: support Arm SMCCC_VERSION function ID
As per Arm SMCCC v1.1 specification [1], PSCI PSCI_FEATURES function ID should report Arm Architecture Call SMCCC_VERSION as supported when the secure firmware supports both PSCI PSCI_FEATURES function ID and Arm SMCCC_VERSION function ID.
Link: [1] https://developer.arm.com/docs/den0028/latest Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Cedric Neveux <cedric.neveux@nxp.com>
show more ...
|
| c3682b1c | 15-May-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: make core_is_buffer_*() paddr_t compatible
The core_is_buffer_*() helpers are sometimes used with physical addresses (type paddr_t). This can cause problem on platforms where sizeof(paddr_t) >
core: make core_is_buffer_*() paddr_t compatible
The core_is_buffer_*() helpers are sometimes used with physical addresses (type paddr_t). This can cause problem on platforms where sizeof(paddr_t) > sizeof(vaddr_t), that is on ARM32 systems with CFG_CORE_LARGE_PHYS_ADDR=y. The FVP platform compiled for AArch32 is one such system which as a consequence fails with: E/TC:0 0 check_phys_mem_is_outside:335 Non-sec mem (0x880000000:0x180000000) ove rlaps map (type 12 0xff000000:0x1000000) E/TC:0 0 Panic at core/arch/arm/mm/core_mmu.c:336 <check_phys_mem_is_outside>
This patch fixes this problem by taking input addresses as paddr_t and sizes as paddr_ssize_t instead. The wrapper macros which did some automatic casting removed. The requires updates at some of the places where these functions are called.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 055830db | 15-May-2020 |
Markus S. Wamser <github-dev@mail2013.wamser.eu> |
core: simple typo fixes in comments in core/arch tree
* changed "the the" to "the" in thread.h * changed "the the" to "to the" in wait_queue.c * changed "Optinally" to "Optionally" in generic_entry_
core: simple typo fixes in comments in core/arch tree
* changed "the the" to "the" in thread.h * changed "the the" to "to the" in wait_queue.c * changed "Optinally" to "Optionally" in generic_entry_a32.S
Signed-off-by: Markus S. Wamser <github-dev@mail2013.wamser.eu> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 6af446ab | 14-May-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
plat-stm32mp1: ack SCMI SiP SMC entry with 0 return code
Load STM32_SIP_SVC_OK in output argument a0 on return from SCMI message notification from SiP SMC function IDs. It simplifies non-secure worl
plat-stm32mp1: ack SCMI SiP SMC entry with 0 return code
Load STM32_SIP_SVC_OK in output argument a0 on return from SCMI message notification from SiP SMC function IDs. It simplifies non-secure world to consider any non-zero values, including standard unknown function error code (-1), as reporting a failure.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
show more ...
|
| fd4db3ee | 05-Apr-2020 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat-imx: generate tee-raw.bin
We have observed that existing ARM-TF for iMX8QM treats OP-TEE binary as headerless image. So, to create proper boot image we need raw OP-TEE binary image.
Signed-off
plat-imx: generate tee-raw.bin
We have observed that existing ARM-TF for iMX8QM treats OP-TEE binary as headerless image. So, to create proper boot image we need raw OP-TEE binary image.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Peng Fan <peng.fan@nxp.com>
show more ...
|
| 37c24896 | 05-Apr-2020 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat-imx: describe non-secure DDR in i.MX8Q* platforms
Add NSEC_DDR definition for for i.MX8QM and i.MX8QX SoCs. This was tested on i.MX8QM platform.
Signed-off-by: Volodymyr Babchuk <volodymyr_bab
plat-imx: describe non-secure DDR in i.MX8Q* platforms
Add NSEC_DDR definition for for i.MX8QM and i.MX8QX SoCs. This was tested on i.MX8QM platform.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Peng Fan <peng.fan@nxp.com>
show more ...
|
| 88d4bbda | 05-Apr-2020 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat-imx: describe non-secure DDR memory
To enable dynamic SHM on iMX platform we need to describe which memory regions belong to non-secure memory areas.
Signed-off-by: Volodymyr Babchuk <volodymy
plat-imx: describe non-secure DDR memory
To enable dynamic SHM on iMX platform we need to describe which memory regions belong to non-secure memory areas.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Peng Fan <peng.fan@nxp.com>
show more ...
|
| ea80a74d | 05-Apr-2020 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat-imx: move platform-specific data to nexus memory
This is needed to enable virtualization support iMX platforms.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Clement
plat-imx: move platform-specific data to nexus memory
This is needed to enable virtualization support iMX platforms.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Peng Fan <peng.fan@nxp.com>
show more ...
|
| 7718c20f | 01-May-2020 |
Etienne Carriere <etienne.carriere@st.com> |
plat-stm32mp1: enable IO compensation at boot time
Implement platform functions stm32mp_syscfg_enable_io_compensation() and stm32mp_syscfg_disable_io_compensation() to enable/disable STM23MP1 IO com
plat-stm32mp1: enable IO compensation at boot time
Implement platform functions stm32mp_syscfg_enable_io_compensation() and stm32mp_syscfg_disable_io_compensation() to enable/disable STM23MP1 IO compensation. Enable IO compensation when platform boots.
This change defines SYSCFG clock that is needed and moves definition of the RCC compatible string DT_RCC_CLK_COMPAT to RCC header file so that it can be shared with stm32mp1_syscfg.c.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a2fc83d1 | 11-May-2020 |
Jerome Forissier <jerome@forissier.org> |
core: always build libfdt
libfdt is built only when CFG_DT=y. As a result, the libfdt header files are only available when CFG_DT=y and any source file that makes optional use of the library has to
core: always build libfdt
libfdt is built only when CFG_DT=y. As a result, the libfdt header files are only available when CFG_DT=y and any source file that makes optional use of the library has to guard the #include <libfdt.h> with a #ifdef CFG_DT ... #endif block. This contrasts with other features which don't require such guards.
This patch builds libfdt unconditionally and removes the include guards. No change is expected in the binaries.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 193e0893 | 11-May-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
plat-hisilicon: psci: support Arm SMCCC_VERSION function ID
As per Arm SMCCC v1.1 specification [1], PSCI PSCI_FEATURES function ID should report Arm Architecture Call SMCCC_VERSION as supported whe
plat-hisilicon: psci: support Arm SMCCC_VERSION function ID
As per Arm SMCCC v1.1 specification [1], PSCI PSCI_FEATURES function ID should report Arm Architecture Call SMCCC_VERSION as supported when the secure firmware supports both PSCI PSCI_FEATURES function ID and Arm SMCCC_VERSION function ID.
Link: [1] https://developer.arm.com/docs/den0028/latest Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| 206b29e8 | 28-Jun-2019 |
Etienne Carriere <etienne.carriere@st.com> |
plat-stm32mp1: SiP SMC service for BSEC access
Implement a SiP SMC based interface fàr the non-secure world to access BSEC words. The service is embedded upon CFG_STM32_BSEC_SIP=y. If not embedded,
plat-stm32mp1: SiP SMC service for BSEC access
Implement a SiP SMC based interface fàr the non-secure world to access BSEC words. The service is embedded upon CFG_STM32_BSEC_SIP=y. If not embedded, the service simply reports a failure.
This service is used by U-boot package since its release v2019.07-rc1 [1] to retrieve information such as the device MAC address [2].
Link: [1] https://github.com/u-boot/u-boot/blob/v2019.07-rc1/arch/arm/mach-stm32mp/include/mach/stm32mp1_smc.h Link: [2] https://github.com/u-boot/u-boot/blob/v2019.07-rc1/arch/arm/mach-stm32mp/cpu.c#L475
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| 4703bfe2 | 25-Feb-2019 |
Etienne Carriere <etienne.carriere@st.com> |
dts: stm32mp1: non-secure can access MAC address and board ID OTPs
Add property st,non-secure-otp to MAC address NVMEM cells in stm32mp1 SoC DTSI and to board ID NVMEM cells in stm32mp1 ST boards DT
dts: stm32mp1: non-secure can access MAC address and board ID OTPs
Add property st,non-secure-otp to MAC address NVMEM cells in stm32mp1 SoC DTSI and to board ID NVMEM cells in stm32mp1 ST boards DTS files since non-secure world is allowed to access these OTPs despite they are located in the upper BSEC words (secure) area.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| d1babea5 | 08-May-2020 |
Etienne Carriere <etienne.carriere@st.com> |
plat-stm32mp1: psci: support Arm SMCCC_VERSION function ID
As per Arm SMCCC v1.1 specification [1], PSCI PSCI_FEATURES function ID should report Arm Architecture Call SMCCC_VERSION as supported when
plat-stm32mp1: psci: support Arm SMCCC_VERSION function ID
As per Arm SMCCC v1.1 specification [1], PSCI PSCI_FEATURES function ID should report Arm Architecture Call SMCCC_VERSION as supported when the secure firmware supports both PSCI PSCI_FEATURES function ID and Arm SMCCC_VERSION function ID.
Link: [1] https://developer.arm.com/docs/den0028/latest Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 64ecce8c | 07-May-2020 |
Jerome Forissier <jerome@forissier.org> |
core: generic_boot: use "%#lx" to print unsigned long, not "0x%"PRIxPA
In 32-bit builds with CFG_CORE_LARGE_PHYS_ADDR=y, PRIxPA is "llx" which is not the recommended format to print an unsigned long
core: generic_boot: use "%#lx" to print unsigned long, not "0x%"PRIxPA
In 32-bit builds with CFG_CORE_LARGE_PHYS_ADDR=y, PRIxPA is "llx" which is not the recommended format to print an unsigned long int. Use "lx" instead to avoid warnings with some compilers.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e555de5f | 03-Apr-2020 |
Ruchika Gupta <ruchika.gupta@nxp.com> |
core: plat-ls: Enable CAAM driver for PLATFORM lx2160ardb
Enable and test CAAM driver on lx2160ardb platform for hash, ciphers and RSA
Signed-off-by: Ruchika Gupta <ruchika.gupta@nxp.com> Reviewed-
core: plat-ls: Enable CAAM driver for PLATFORM lx2160ardb
Enable and test CAAM driver on lx2160ardb platform for hash, ciphers and RSA
Signed-off-by: Ruchika Gupta <ruchika.gupta@nxp.com> Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com> Reviewed-by: Clement Faure <clement.faure@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| a9a03ac4 | 05-May-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: boot: relax init sections from DT related resources
Move the initialization sequences that deal with device tree parsing support out of the text_init and rodata_init sections to relax memory p
core: boot: relax init sections from DT related resources
Move the initialization sequences that deal with device tree parsing support out of the text_init and rodata_init sections to relax memory pressure on them. To do so this change splits init_primary_helper() in 2 helper functions: generic_init_primary() for resources expected in the init sections and paged_init_primary() for resources that move the pageable sections.
Updates inline comments to state generic_boot_init_primary() lies in the init area, not in the unpaged area as wrongly stated prior this change.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (stm32mp1)
show more ...
|
| 59c253f9 | 01-May-2020 |
Etienne Carriere <etienne.carriere@st.com> |
plat-stm32mp1: check TZC400 configuration
Core checks TZC400 configuration during initialization to ensure DDR firewall expectations are satisfied.
Signed-off-by: Etienne Carriere <etienne.carriere
plat-stm32mp1: check TZC400 configuration
Core checks TZC400 configuration during initialization to ensure DDR firewall expectations are satisfied.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a3d77d19 | 01-May-2020 |
Etienne Carriere <etienne.carriere@st.com> |
plat-stm32mp1: define platform flavors per DTS file
Identify platform flavors from targeted embedded DTS file.
Supported platform flavors are 157A_DK1, 157C_DK2, 157C_ED1 and 157C_EV1. They relate
plat-stm32mp1: define platform flavors per DTS file
Identify platform flavors from targeted embedded DTS file.
Supported platform flavors are 157A_DK1, 157C_DK2, 157C_ED1 and 157C_EV1. They relate to 2 SoC variants and 4 ST boards.
Supported SoC variants are 157A and 157C. The later implements a cryptography computation hardware accelerator. Supported ST boards are DK1, DK2, ED1 and EV1. The 2 first integrate a 500MByte DDR while the 2 later integrate a 1GByte DDR.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| 1bf81340 | 02-May-2020 |
Etienne Carriere <etienne.carriere@st.com> |
dts: stm32mp1: bump to Linux kernel v5.6.10 DTS files
Synchronize with STM32MP15 DTS files from Linux kernel v5.6.10.
Changes made on DTS/DTSI file from Linux kernel v5.6.10: - stm32mp151.dtsi: add
dts: stm32mp1: bump to Linux kernel v5.6.10 DTS files
Synchronize with STM32MP15 DTS files from Linux kernel v5.6.10.
Changes made on DTS/DTSI file from Linux kernel v5.6.10: - stm32mp151.dtsi: add ETZPC node, declare PSCI v1.0. - stm32mp157a-dk1.dts: disable RCC secure-status. - stm32mp157c-dk2.dts: disable RCC secure-status. - stm32mp157c-ed1.dts (included by ev1): disable RCC secure-status. - Remove resources related to input DT bindings using explicit inline comments as those are under Linux kernel GPLv2 licensing model.
ETZPC node useless in non-secure Linux kernel but needed by secure world.
RCC node remains disabled for the secure side so that RCC TZ hardening is disabled since mainline Linux kernel and U-Boot do not support SCMI clocks and reset domains. IWDG1, ETZPC, STGEN and CRYP1 devices are described to ease their later integration.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| a8f0bfcf | 28-Apr-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
plat-stm32mp1: PSCI_SYSTEM_OFF support
Implement PSCI_SYSTEM_OFF command when STPMIC1 is used.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@foris
plat-stm32mp1: PSCI_SYSTEM_OFF support
Implement PSCI_SYSTEM_OFF command when STPMIC1 is used.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|