- Sep 28, 2020
-
-
Jerome Forissier authored
Updates the toolchain to Arm's GCC 9.2 [1]. Note the following difference compared to the previous release (8.3), which is documented in the release notes: "Changed toolchain naming convention to match standard target triplet naming convention, with vendor name being none." For example, arm-linux-gnueabihf-gcc is now arm-none-linux-gnueabihf-gcc and aarch64-linux-gnu-gcc is now aarch64-none-linux-gnu-gcc. This renaming seems pretty much specific to the Arm build of GCC, and the latest Debian and Ubuntu distributions provide GCC 9.x or 10.x cross-compilers with the usual naming convention. Therefore, and to limit the impact of the name change, let's simply create symbolic links after the toolchain packages are extracted. Link: [1] https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads Signed-off-by:
Jerome Forissier <jerome@forissier.org> Tested-by: Jerome Forissier <jerome@forissier.org> (QEMU, QEMUv8, HiKey, HiKey960) Acked-by:
Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by:
Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (stm32mp1)
-
Jerome Forissier authored
The optee_examples_ext and optee_test_ext packages are currently using the python3 command found in $PATH. It is more correct to use the Buildroot one. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by:
Etienne Carriere <etienne.carriere@linaro.org>
-
Jerome Forissier authored
Package [host-]python-pycrypto was removed in Buildroot release 2020.05 [1] and replaced with [host-]python3-pycryptodomex. Link: [1] https://git.busybox.net/buildroot/commit/?id=7ef76ed32fcd447391e26d33a555ff5dab6dc48e Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by:
Etienne Carriere <etienne.carriere@linaro.org>
-
- Sep 22, 2020
-
-
Etienne Carriere authored
Remove check-clean target dependency in clean since meaningless for stm32mp1 platform build environment. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jerome Forissier <jerome@forissier.org>
-
Etienne Carriere authored
Replace option partition-type with option partition-type-uuid as the later is intended to GPT partitioning which is what stm32mp1 relies on. This change prevents genimage tool, since its v13 release, from creating a hybrid MBR partition table that is not supported by TF-A boot stage used by the platform. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jerome Forissier <jerome@forissier.org>
-
- Sep 01, 2020
-
-
Jerome Forissier authored
The optee_test TAs are built by a $(wildcard ...) loop. This is unreliable because there is no guarantee that os_test_lib and os_test_lib_dl will appear before os_test in the list. Yet os_test depends on the libraries being built first. Fix the issue by explicitely listing the libraries and TAs with dependencies in the correct order, then using a wildcard for the other TAs. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Aug 27, 2020
-
-
Jerome Forissier authored
common.mk currently assumes that optee_os defaults to a 32-bit build for the TEE core, in other words that CFG_ARM64_core is not set by default and that only a 64-bit build requires setting CFG_ARM64_core=y. Let's set CFG_ARM64_core=n explicitly when a 32-bit build is desired. This will let platforms such as QEMUv8 (PLATFORM=vexpress-qemu_armv8a) to select a 64-bit core by default in optee_os which makes more sense since (1) build.git would not support 32-bit until parent commit ("qemu_v8: do not force COMPILE_S_KERNEL := 64"), and (2) 32-bit is usually tested with QEMU (PLATFORM=vexpress-qemu_virt). Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Jerome Forissier authored
The 32-bit TEE core works fine on the QEMUv8 platform so set COMPILE_S_KERNEL to 64 by default but let the user change this value to 32 if needed ('make COMPILE_S_KERNEL=32 COMPILE_S_USER=32'). This also implies removing 'CFG_ARM64_core=y' which is currently added unconditionally to OPTEE_OS_COMMON_FLAGS by qemu_v8.mk. It is already taken care of by common.mk. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Jerome Forissier authored
32-bit non-secure user space works fine with the QEMUv8 build so set COMPILE_NS_USER to 64 by default but let the user change this value to 32 if needed ('make COMPILE_NS_USER=32'). Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Jerome Forissier authored
32-bit TAs work fine with the QEMUv8 build so set COMPILE_S_USER to 64 by default but let the user change this value to 32 if needed ('make COMPILE_S_USER=32'). Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Aug 14, 2020
-
-
Roland Nagy authored
Usage: set QEMU_PSS_ENABLE=y and adjust QEMU_PSS_HOST_DIR. It also requires QEMU_VIRTFS_ENABLE to be set to "y". Also added a buildroot post-script which appends lines to /etc/fstab, so shared directories can be automatically mounted if QEMU_VIRTFS_AUTOMOUNT and QEMU_PSS_AUTOMOUNT are set to "y". Signed-off-by:
Roland Nagy <rnagy@xmimx.tk> Reviewed-by:
Jerome Forissier <jerome@forissier.org> Tested-by:
Jerome Forissier <jerome@forissier.org>
-
- Aug 13, 2020
-
-
Jens Wiklander authored
The path to the simulator when unpacked has changed in recent FVP foundation model. Adjusting the path to match the latest version 11.11_34. Reviewed-by:
Jerome Forissier <jerome@forissier.org> Signed-off-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Aug 12, 2020
-
-
Jerome Forissier authored
The message displayed by "make check" when an assertion failure is detected is as follows: $ PATH=~/work/clang-10.0.0/bin:$PATH make -j10 COMPILER=clang check [...] Starting QEMU... done, guest is booted. Running: xtest... '##########!!! TEE core assertion failed: 'assertion 'maps[map_idx].sz == sz' failed at ldelf/ta_elf.c:1351 in ta_elf_print_mappings() make: *** [Makefile:221: check] Error 1 $ The "TEE core assertion failed:' part is not needed and possibly misleading (in this case the assertion occurred in ldelf which is arguably not "TEE core"). Remove it. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Jun 29, 2020
-
-
Victor Chong authored
The EDK2/UEFI welcome message when booting into fastboot mode has changed since a while ago [1], but we never updated it correspondingly in our Makefile, so do it now. LINK: [1] https://github.com/96boards-hikey/edk2/commit/f5d1102d7bf42ede641520c5c228a0e51139a58e Signed-off-by:
Victor Chong <victor.chong@linaro.org> Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jerome Forissier <jerome@forissier.org>
-
- Jun 10, 2020
-
-
Etienne Carriere authored
Update U-Boot config fragment to explicitly state no flash or MTD device is used by U-Boot and the U-Boot environment is not stored outside U-Boot image. This change is required since U-Boot v2019.01. It successfully boots Qemu/armv7-A with older and newer U-Boot releases up to v2020.04, and at least also up to latest U-boot RC tag v2020.07-rc3. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Joakim Bech <joakim.bech@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Jun 05, 2020
-
-
Etienne Carriere authored
Build OP-TEE for STM32MP1 based platforms. Currently supports platforms STM32MP157A-DK1, STM32MP157C-DK2 and STM32MP157C-EV1 using a SDcard as boot media. Default build targets board STM32MP157C-DK2: # make One can specify a target board with PLATFORM configuration switch: # make PLATFORM=stm32mp1-157A_DK1 # make PLATFORM=stm32mp1-157C_DK2 # make PLATFORM=stm32mp1-157C_EV1 Refer to br-ext/board/stmicroelectronics/stm32mp1-tz/readme.txt for mode information. TF-A, OP-TEE OS, U-Boot and Linux kernel are built outside Builrdoot. All other embedded components are built through Buildroot. Buildroot generates the final SDcard binary image file to be loaded raw in the target SD card. The image includes a GPT partition table. See br-ext/board/stmicroelectronics/stm32mp1-tz/genimage-*.cfg for more details. Note on U-Boot defconfig: from v2019.10 up to v2020.07-rc2, one shall use stm32mp15_optee_defconfig. From v2020-rc3 onward, one shall use stm32mp15_trusted_defconfig. For flexibility, stm32mp1.mk supports both. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by:
Joakim Bech <joakim.bech@linaro.org>
-
- Jun 02, 2020
-
-
Jerome Forissier authored
Let hisi-idt.py decide which python interpreter is used based on the hashbang line. Calling "python" can cause compatibility problems when "python" is Python 2 but the script needs Python3. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Reviewed-by:
Joakim Bech <joakim.bech@linaro.org>
-
- May 29, 2020
-
-
Etienne Carriere authored
Rename BENCHMARK_APP_PATH to OPTEE_BENCHMARK_PATH for consistency with the other OP-TEE packages. Remove unused BENCHMARK_APP_OUT and LIBYAML_LIB_OUT that were related to OP-TEE benchmark package. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Etienne Carriere authored
Busybox is no more built as a single package but built as part of the buildroot environment. This change removes busybox rules and resources from Makefile scripts. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Etienne Carriere authored
Define OPTEE_OS_PLATFORM for each supported platform to define the target platform for which OP-TEE OS package is built. It is used in common.mk (and ti/ti-common.mk). Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Etienne Carriere authored
Change packages to default define a _SITE configuration as expected when _SITE_METHOD is defined. This change aligns OP-TEE client/examples/test_ext packages with OP-TEE os_ext/benchmark_ext packages regarding this _SITE_METHOD/_SITE management. Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Etienne Carriere authored
Rename OP-TEE packages in br-ext with a _ext suffix so that they do not conflict with the OP-TEE packages from Buildroot. This change essentially renames Buildroot configuration switches BR2_OPTEE_* to BR2_OPTEE_*_EXT_* without changing the current build process. This change is needed for OP-TEE build environment to synchronize with Buildroot GIT version [1] or later in the Buildroot integration tree. [1] points where OP-TEE packages were introduced in Buildroot, right after 2019.02 is released. This was tested with all Buildroot release tags from 2018.11 to 2020.02, and recent 2020.05-rc1. Link: [1] https://git.buildroot.net/buildroot/commit/?id=da49312af9e0c3e7f6df50e7d6f77e1fa2921b7a Signed-off-by:
Etienne Carriere <etienne.carriere@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- May 26, 2020
-
-
Jerome Forissier authored
Add "make clang-toolchains" to download and extract Clang 9.0.1 into $(ROOT)/clang-9.0.1. Usage: $ make clang-toolchains Then use the following command to build OP-TEE and TAs with Clang: $ PATH=$PWD/../clang-9.0.1/bin:$PATH make COMPILER=clang Signed-off-by:
Jerome Forissier <jerome@forissier.org> Reviewed-by:
Victor Chong <victor.chong@linaro.org> Acked-by:
Etienne Carriere <etienne.carriere@linaro.org>
-
- May 12, 2020
-
-
Igor Opaniuk authored
1. Drop workarounds for GCC 8.x 2. Provide eMMC as env variable, which is used in extlinux.conf distroboot script. 3. Use default defconfig for all arm64. 4. Merge additional poplar.conf Acked-by:
Jerome Forissier <jerome@forissier.org> Signed-off-by:
Igor Opaniuk <igor.opaniuk@gmail.com>
-
Igor Opaniuk authored
Provide configuration for ION mem allocator, needed for SDP. Acked-by:
Jerome Forissier <jerome@forissier.org> Signed-off-by:
Igor Opaniuk <igor.opaniuk@gmail.com>
-
- May 06, 2020
-
-
Joakim Bech authored
Fix outdated links. Fixes: #414 Signed-off-by:
Joakim Bech <joakim.bech@linaro.org> Reviewed-by:
Jerome Forissier <jerome@forissier.org>
-
- Mar 09, 2020
-
-
Igor Opaniuk authored
Add initial verdin.mk for the minimal setup for OP-TEE testing. This setup uses latest mainline TF-A (v.2.2) / U-Boot (v2020.03) / Linux (5.6-rc). Verdin i.MX8M Mini boot sequence: BootROM -> SPL -> TF-A (BL31) -> OP-TEE (BL32) | -> U-Boot (BL33) -> Linux TF-A(bl31.bin), U-Boot proper and OP-TEE (tee.bin) are packed in FIT image, which is parsed by SPL. Deploying: 1. Flasing flash.bin (IMX ready-to-boot image): > dhcp && tftpboot ${loadaddr} flash.bin > setexpr blkcnt ${filesize} + 0x1ff > setexpr blkcnt ${blkcnt} / 0x200 > mmc dev 0 1 && mmc write ${loadaddr} 0x2 ${blkcnt} 2. Boot Linux kernel via TFTP/NFS: -> setenv serverip <ip_of_your_server> -> setenv nfsroot /path/to/nfs/root -> setenv fdt_file fsl-imx8mm-verdin-dev.dtb -> setenv bootargs "console=${console},${baudrate} root=/dev/nfs \ ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp" -> tftp ${loadaddr} ${image}; tftp ${fdt_addr} ${fdt_file}; -> booti ${loadaddr} - ${fdt_addr} Test results: +----------------------------------------------------- 24600 subtests of which 0 failed 98 test cases of which 0 failed 0 test cases were skipped TEE test application done! Acked-by:
Jerome Forissier <jerome@forissier.org> Signed-off-by:
Igor Opaniuk <igor.opaniuk@gmail.com>
-
- Feb 25, 2020
-
-
Jerome Forissier authored
If an error occurs when building a TA, the error does not stop the build. It may therefore go unnoticed if files have been generated previously. This patch adds "set -e" to address this issue. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Reviewed-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Jan 31, 2020
-
-
Stefan Wiehler authored
Currently one has to patch the PetaLinux installation to add these missing dependencies. However, there should be no need to touch the installation, which is often not feasible in e.g. corporate environments anyway. Different OP-TEE releases require different dependencies; this patch has been tested for all releases down to 3.5.0. Signed-off-by:
Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com> Reviewed-by:
Joakim Bech <joakim.bech@linaro.org>
-
- Jan 13, 2020
-
-
Joakim Bech authored
The GitHub templates and actions are useful to the "build" git also, therefore recursively sync up (copy) the .github folder from optee_os. Note, that here we have also done some changes to the GitHub actions. In optee_os we have two different actions files, one for issues and one for pull requests. It seems like it is possible to combine them into a single action file as shown in the actions examples [1]. Another change is that we also exclude marking issues stale if they already have the label "bug". Note that we're only excluding issues, since PR's should not have the "bug" label to start with. Link: [1] https://github.com/actions/stale/blob/master/README.md Signed-off-by:
Joakim Bech <joakim.bech@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org> Acked-by:
Jerome Forissier <jerome@forissier.org>
-
- Jan 09, 2020
-
-
Albert Schwarzkopf authored
Adds /dev/urandom from the host as a source for random data so the guest does not block on calls to getentropy() etc. Signed-off-by:
Albert Schwarzkopf <githubc@quitesimple.org> Reviewed-by:
Joakim Bech <joakim.bech@linaro.org>
-
Albert Schwarzkopf authored
Adds CONFIG_HW_RANDOM_VIRTIO so the guest gets entropy from the host Signed-off-by:
Albert Schwarzkopf <githubc@quitesimple.org> Reviewed-by:
Joakim Bech <joakim.bech@linaro.org>
-
- Jan 08, 2020
-
-
Jerome Forissier authored
We currently do not copy any kernel module into our root FS, they are not needed. Therefore, drop the "modules" target when building the kernel to save compile time. Signed-off-by:
Jerome Forissier <jerome.forissier@linaro.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Jerome Forissier authored
Use the cc-option macro to deal with compilers that do not support the -Wno-error=stringop-truncation option. Fixes: 46f7be20 ("hikey960: fix EDK2 build with GCC 9.x") Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Jerome Forissier authored
Use cc-option to support older as well as recent compilers. Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Jerome Forissier authored
Adds the cc-option macro to be used to detect wether a C compiler supports a given option or not. It is similar to the macro added in optee_os [1] except that it takes the compiler as the first argument for flexibility. Link: [1] https://github.com/OP-TEE/optee_os/commit/989ac108b0ef Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
- Jan 07, 2020
-
-
Jerome Forissier authored
Actually fix the build error mentioned in the below commit. The variable BUILD_CC is set at the wrong place (I think I had it set as an environment variable when I tested this, which is why it would work anyways). Fixes: 1e8d0b5a ("hikey960: fix EDK2 build with GCC 9.x") Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Jens Wiklander <jens.wiklander@linaro.org>
-
Pipat Methavanitpong authored
This commit adds building SCP firmware for the DeveloperBox. It defines a new baremetal toolchain "aarch32-none" using GNU Embedded Toolchain for Arm 9-2019-q4-major to build. SCP firmware uses SCMI to provide power and performance management. This commit also enables SCMI driver in TF-A to communicate with SCP. Acked-by:
Jerome Forissier <jerome@forissier.org> Signed-off-by:
Pipat Methavanitpong <pipat.methavanitpong@linaro.org>
-
- Dec 17, 2019
-
-
Jerome Forissier authored
The current EDK2 code fails to build with GCC 9.x: make[3]: Entering directory '/home/jerome/work/optee_repo_hikey960/edk2/BaseTools/Source/C/GenVtf' gcc -c -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/ -O2 GenVtf.c -o GenVtf.o In file included from /usr/include/string.h:494, from ../Common/FvLib.h:21, from GenVtf.c:19: In function ‘strncpy’, inlined from ‘ConvertVersionInfo’ at GenVtf.c:132:7: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error: ‘__builtin_strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] 106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GenVtf.c: In function ‘ConvertVersionInfo’: GenVtf.c:130:14: note: length computed here 130 | Length = strlen(Str); | ^~~~~~~~~~~ In file included from /usr/include/string.h:494, from ../Common/FvLib.h:21, from GenVtf.c:19: In function ‘strncpy’, inlined from ‘CreateFitTableAndInitialize’ at GenVtf.c:1532:3: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error: ‘__builtin_strncpy’ output truncated before terminating nul copying 8 bytes from a string of the same length [-Werror=stringop-truncation] 106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[3]: *** [../Makefiles/footer.makefile:27: GenVtf.o] Error 1 This error was found with Ubuntu 19.10 (comes with GCC 9.2.1). The HiKey960 EDK2 repository [1] has not received any update in the past year, I am not sure it is still maintained. There is apparently some support for HiKey960 in the upstream EDK2 repositories [2] and [3], but I could not get my board to boot with upstream code. So, a quick fix seems in order. [1] https://github.com/96boards-hikey/edk2.git [2] https://github.com/tianocore/edk2.git [3] https://github.com/tianocore/edk2-platforms.git Signed-off-by:
Jerome Forissier <jerome@forissier.org> Acked-by:
Victor Chong <victor.chong@linaro.org>
-
- Nov 22, 2019
-
-
Jerome Forissier authored
The kernel image for QEMUv8 is Image, not zImage (there is no compressed image support in Linux for arm64). Fix the makefile. Fixes: c54f4f51 ("qemu, qemu_v8: do not build Linux modules") Signed-off-by:
Jerome Forissier <jerome@forissier.org> Reviewed-by:
Jens Wiklander <jens.wiklander@linaro.org>
-