aboutsummaryrefslogtreecommitdiff
path: root/.shippable.yml
AgeCommit message (Collapse)Author
2019-04-01ci: .shippable.yml: add build for mbedtlsJens Wiklander
Adds shippable build configuration for using mbedtls as crypto library. Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960, mbedtls, GP) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
2019-02-22Add support for Hisilicon Hi3519AV100 DEMO boardZeng Tao
Hi3519AV100 is a high-performance and low-power 4K Smart IP Camera SoC designed for IP cameras, action cameras, panoramic cameras, rear view mirrors, and UAVs. Hi3519A V100 introduces H.265/H.264 encoding and decoding, with performance up to 4K x 2K@60 fps and 1080p@240 fps. For more information: http://www.hisilicon.com/en/Products/ProductList/Surveillance This patch has been tested using the following step, 1. Patch the uboot and Linux kernel with OP-TEE support if required 2. build step: (1) make CROSS_COMPILE=arm-himix200-linux- PLATFORM=hisilicon PLATFORM_FLAVOR=hi3519av100_demo (OPTEE-OS build) (2) make CROSS_COMPILE_HOST=arm-himix200-linux- (OPTEE_CLIENT build) (3) cross_compile openssl and replace optee_test/host/libopenssl (4) make CROSS_COMPILE_HOST=arm-himix200-linux- CROSS_COMPILE_TA=arm-himix200-linux- TA_DEV_KIT_DIR=../optee_os/out/arm-plat-hisilicon/export-ta_arm32 COMPILE_NS_USER=32 (OPTEE_TEST build) 3. mkimage -A arm -T kernel -O tee -C none -d tee.bin uTee.optee 4. Boot setting in uboot: nand read 0x22007fc0 0x100000 0x400000; /* load kernel */ tftp 0x30000000 uTee.optee;bootm 0x30000000; 5. after Linux startup, run daemon tee-supplicant 6. run xtest Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Zeng Tao <prime.zeng@hisilicon.com>
2019-02-06ci: .shippable.yml: add build for QEMUv8 with virtualizationJerome Forissier
There is currently no CI build with CFG_VIRTUALIZATION=y. Add one. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2019-01-30plat-bcm: Add Broadcom ARMv8-A SoC ns3Sandeep Tripathy
Add base platform support for Broadcom ns3 SoC. Broadcom ns3 is ARMv8-A based SoS with Cortex-A72 cores and GICv3. It is configured to run with TF-A. Signed-off-by: Sandeep Tripathy <sandeep.tripathy@broadcom.com> Reviewed-by: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com> Reviewed-by: Scott Branden <scott.branden@broadcom.com> Reviewed-by: Pramod Kumar <pramod.kumar@broadcom.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2018-12-18libtomcrypt: Import SHA512/256 approved hash algorithmSumit Garg
SHA-512/256 is an approved hash algorithm and a vetted conditioner as per NIST.SP.800-90B spec. We have used it to condition raw thermal sensor noise on Developerbox to condense entropy. It is imported from libtomcrypt: Git url: https://github.com/libtom/libtomcrypt.git, release tag: v1.18.0. Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
2018-12-11Remove Secure Element API supportJerome Forissier
There is probably no-one using the Secure Element API. We have never heard anyone asking questions about it, have no way to test it and we believe it is not even working right now. Therefore, remove it. - The reserved syscalls are still present, but return TEE_ERROR_NOT_SUPPORTED - The TEE_SE* functions (GlobalPlatform TEE Secure Element API, GPD_SPE_024) are removed from libutee.a and the header file tee_internal_se_api.h is removed as well Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
2018-12-10plat-ls: NXP LX2160ARDB platform support is addedPankaj Gupta
Added support for armv8 platform flavour. - PLATFORM = ls-lx2160ardb Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2018-12-10plat-imx: add i.MX8MQ/MM EVK supportPeng Fan
Add i.MX8MQ/MM EVK support. i.MX8M family use Cortex-A53 as the CPU core, the i.MX8MQ EVK has 3GB DRAM memory, and i.MX8MM EVK has 2GB DRAM memory. Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2018-11-08core: instrument mutexes with lockdepJerome Forissier
Implements lockdep hooks for mutexes. CFG_LOCKDEP is disabled by default, because it causes a noticeable slowdown (plain xtest runs 2-4x slower). Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU, HiKey960) Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-08-14plat-ls:add LS2088ARDB platform flavorsVinitha V Pillai
Signed-off-by: Vinitha V Pillai <vinitha.pillai@nxp.com> Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com>
2018-08-14plat-ls:add LS1088ARDB platform flavorsVinitha V Pillai
Signed-off-by: Vinitha V Pillai <vinitha.pillai@nxp.com> Signed-off-by: Sahil Malhotra <sahil.malhotra@nxp.com> Reviewed-by: Pankaj Gupta <pankaj.gupta@nxp.com>
2018-08-14plat-ls:add LS1012AFRWY platform flavorsVinitha V Pillai
Signed-off-by: Vinitha V Pillai <vinitha.pillai@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com>
2018-08-14core:arch:arm:plat-ls: make generic layout for all platformsVinitha V Pillai
Signed-off-by: Vinitha V Pillai <vinitha.pillai@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Reviewed-by: Sahil Malhotra <sahil.malhotra@nxp.com>
2018-08-13plat-sunxi: Add Allwinner A64 supportAmit Singh Tomar
This commit adds support for pine64[1] board based on Allwinner's A64 SoC. 1. Build command # make PLATFORM=sunxi-sun50i_a64 2. Pass optee_example_hello_world and xtest. [1]: https://www.pine64.org/ Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Amit Singh Tomar <amittomer25@gmail.com>
2018-08-06shippable: remove uneccessary macros for mx6ul/ullevkPeng Fan
The macros are already defined in conf.mk, no need add them in shippable. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2018-07-10ci: shippable: build with CFG_TEE_CORE_LOG_LEVEL=0Jens Wiklander
Adds a separate build with only CFG_TEE_CORE_LOG_LEVEL=0 set. Needed to catch the error fixed in https://github.com/OP-TEE/optee_os/pull/2454 Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-06-26Do not set -Werror by defaultJerome Forissier
Having -Werror turned on by default can be annoying, because not everyone uses the same compiler, and different compiler versions have different warnings. Therefore, provide CFG_WERROR to turn it on instead. Enable CFG_WERROR in the CI scripts because we still don't want warnings with the officially supported compilers. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
2018-06-19ci: shippable: build stm32mp1Etienne Carriere
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-06-15ci: shippable: Add sunxi-bpi_zeroYing-Chun Liu (PaulLiu)
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
2018-06-14Add new platform for the TI K3 class of SoCsAndrew F. Davis
Add platform 'k3' for the TI K3 family. These are ARMv8 devices and are quite different from our line of existing ARMv7 OMAP style SoCs, hence the new platform. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-06-07ci: shippable: enable parallel buildJerome Forissier
Try to speed up the Shippable CI by re-introducing parallel builds, which were removed by commit c330283b4a00 ("ci: .shippable.yml: disable parallel build") due to random build errors. Although the root cause was never identified, there are reasons to believe that the issue may not be reproducible anymore: - The container environment has likely seen updates - Commit 836334a163f9 ("ci: shippable: set build directory identically for all platforms") has modified the output paths, so a race condition on directory creation seems quite unlikely to happen. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
2018-06-04ci: shippable: set build directory identically for all platformsJerome Forissier
Further improve the ccache hit rate by setting the build directory to be the same for all platforms. Prior to this, only the build for the same platform could share cached files, because the file path is part of the hash. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-06-04ci: shippable: enable ccache's 'unify' optionJerome Forissier
There is currently no caching possible between the various _make lines in .shippable.yml, because they select different configuration flags. Since all the files include $(out-dir)/include/generated/conf.h automatically, the preprocessor output is therefore different simply due to the fact that conf.h is different from one line to the other. This is quite unfortunate, because most source files depend on a handful of configuration flags only and therefore activating unrelated flags should not cause a cache miss. Addressing this problem is exactly the purpose of the 'unify' option of ccache [1]. Activate it by setting CCACHE_UNIFY=true and CFG_DEBUG_INFO=n before building. The lines that set DEBUG=0 or DEBUG=1 are adjusted to produce the same result as before. Link: [1] https://github.com/ccache/ccache/blob/v3.4.2/doc/MANUAL.adoc#configuration-settings Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-05-30synquacer: Add DeveloperBox platform supportSumit Garg
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2018-05-14ci: shippable: remove deprecated config flagsJerome Forissier
CFG_PS2MOUSE, CFG_PL050 and CFG_PL111 are gone so remove them from the Shippable script. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-05-14ci: shippable: build with CFG_PCSC_PASSTHRU_READER_DRV=yJerome Forissier
Commit 41f869fe7680 ("Fix crash when bumping qemu to 2.12.0") sets CFG_PCSC_PASSTHRU_READER_DRV=n by default. Adjust .shippable.yml to enable it instead, so that it is still compile-tested. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-05-14ci: shippable: remove redundant lineJerome Forissier
CFG_WITH_STATS defaults to 'y' so remove the line that sets it explicitly in .shippable.yml. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-01-19ci: shippable: build hikey960 with CFG_SECURE_DATA_PATH=nJerome Forissier
Add a configuration that was found to cause a compile error in our multi-platform Travis build [1] but was not detected by Shippable [2]. Link: [1] https://travis-ci.org/OP-TEE/build/jobs/330150659#L996-L1003 Link: [2] https://app.shippable.com/github/OP-TEE/optee_os/runs/534/summary/console Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2018-01-17Remove support for Allwinner A80 platform (plat-sunxi)Jerome Forissier
It has been almost three years since we have heard about plat-sunxi (no new contributions, no patch ack'ed or tested, no feedback at release time). Therefore, remove support for this platform. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> CC: Sun Yangbang <sunny@allwinnertech.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-12-15poplar: Add initial supportVictor Chong
Signed-off-by: Victor Chong <victor.chong@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-12-08ci: shippable: configure caching properly for ccacheJerome Forissier
Caching was inadvertently broken by commit 4af6a141f612 ("ci: shippable: run only platform builds"). I wrongly assumed that Shippable saves the ccache directory by default (~/.ccache), but is not the case. Only $SHIPPABLE_BUILD_DIR is saved, i.e., the checked out project (/root/src/github.com/OP-TEE/optee_os). Fix that by giving the ccache directory in cache_dir_list. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-11-29core: imx: add i.MX6SX Sabreauto supportPeng Fan
Add i.MX6SX Sabreauto support. Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-11-28ci: shippable: remove redundant build configurationsJerome Forissier
Apply the proposal made by Jens in PR 1616 to the Shippable configuration: "Removes build configurations that doesn't add much additional coverage. The two QEMU based ports are used to test most build configuration, the other ports are only built in basic configuration(s)." Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> CC: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-11-28ci: shippable: run only platform buildsJerome Forissier
This is the second of two commits to split the CI work in two. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-11-21plat-marvell: Add initial support for ARMADA3700wangwen
Only test 64bit mode with default configuration 1. Build command make PLATFORM=marvell-armada3700 2. Pass xtest Signed-off-by: wangwen <wangwen@marvell.comi> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Kevin Peng <kevinp@marvell.com>
2017-11-15ci: .shippable.yml: disable parallel buildJerome Forissier
We get random build failures with Shippable CI. First kind is [1]: /bin/bash: out/arm-plat-imx/conf.mk.tmp: No such file or directory core/core.mk:69: recipe for target 'out/arm-plat-imx/conf.mk' failed make: *** [out/arm-plat-imx/conf.mk] Error 1 make: *** Waiting for unfinished jobs.... Second kind is [2]: mkdir: cannot create directory 'out/arm-plat-ti/core': No such file or directory mk/subdir.mk:151: recipe for target 'out/arm-plat-ti/core/ta_pub_key.c' failed make: *** [out/arm-plat-ti/core/ta_pub_key.c] Error 1 make: *** Waiting for unfinished jobs.... Sometimes both bash and mkdir fail with 'No such file or directory' [3] I cannot see any mistake in our Makefile or anything that could explain these errors. I have opened a support request with Shippable [4]. In the mean time, let's disable the parallel build (make -jN) since I could not reproduce the issue with a purely sequential build. Hopefully it will not slow things down too much (we already need a reasonably up-to-date cache anyway). Link: [1] https://app.shippable.com/github/OP-TEE/optee_os/runs/347/1/console Link: [2] https://app.shippable.com/github/OP-TEE/optee_os/runs/332/1/console Link: [3] https://app.shippable.com/github/OP-TEE/optee_os/runs/342/1/console Link: [4] https://github.com/Shippable/support/issues 3953 Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2017-11-15plat-ls: Add support for armv8 platform flavourPankaj Gupta
Added support for armv8 platform flavour. - PLATFORM = ls-ls1012ardb Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Reviewed-by: Sumit Garg <sumit.garg@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2017-11-15ci: .shippable.yml: enable RPMB FS during "make check"Jerome Forissier
For better test coverage, run xtest in QEMU with RPMB FS enabled. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-10-16Add Marvell platform with initial support for ARMADA A7K & A8KKevin Peng
Only tested 64-bit mode with default configurations: 1. build command make PLATFORM=marvell-armada7080 CFG_ARM64_core=y 2. Passed xtest Signed-off-by: Kevin Peng <kevinp@marvell.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
2017-10-10ci: shippable: make sure QEMU test runs on the proper commitJerome Forissier
There is a bug in the step that prepares a source tree to build and run OP-TEE with QEMU, at the end of the CI script. The idea is, clone the current project forest using the repo tool, then remove optee_os and replace it with a symbolic link to the one that has been checked out in the CI infrastructure. So that, we are effectively testing the desired pull request or branch. The problem is, the symlink is not removed at the end of the script, so it ends up being cached and restored with the next build. The repo sync command follows the symlink and overwrites the "good" optee_os with the current master branch and at this point we're doomed. Fix that by making sure there is no optee_os symlink leftover from the cache. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-09-26ci: .shippable.yml: fix _make functionJerome Forissier
The _make function is supposed to return an error status in case make fails. For this to happen, we need to use && between commands, not ;. Fixes: 5da449eaf73b ("ci: add .shippable.yml") Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-09-20ci: .shippable.yml: fix commit rangeJerome Forissier
When building a pull request, we want to run checkpatch on each commit included in the pull request. Unfortunately, it is not what the current code does, because $SHIPPABLE_COMMIT_RANGE contains a three-dot notation such as: <commit>...<commit>. This syntax is interpreted differently depending on the git command that parses it. Quoting git help diff: git diff [--options] <commit> <commit> [--] [<path>...] This is to view the changes between two arbitrary <commit>. git diff [--options] <commit>..<commit> [--] [<path>...] This is synonymous to the previous form. git diff [--options] <commit>...<commit> [--] [<path>...] This form is to view the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>. Quoting git help revisions (documents the format used by git log or git rev-list): <rev1>..<rev2> Include commits that are reachable from <rev2> but exclude those that are reachable from <rev1>. <rev1>...<rev2> Include commits that are reachable from either <rev1> or <rev2> but exclude those that are reachable from both. In other words, three dots for git diff is like two dots for git log or git rev-list. What we need to use with git rev-list is the two dot notation. Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-09-14ci: add .shippable.ymlJerome Forissier
Add a configuration file for the Shippable continuous integration tool [1]. This file performs the same steps as the current Travis file (.travis.yml), but it is faster and simpler. Another advantage is, the timeout is 1 hour compared to 50 minutes for Travis. All in all, this could be a good fix for the issues we have with Travis being too slow to properly check our pull requests. This was tested on a private fork of optee_os, and it worked well for verifying pushes to private branches as well as pull requests. A full build takes about 20-25 minutes, that is including the builds for all targets plus the xtest run in QEMU (with a fully populated cache). One reason for Shippable being faster is that a custom Docker container image is used, namely: jforissier/optee_os_ci on Docker Hub [2]. It is Ununtu 17.04 plus the packages required to build OP-TEE and run the QEMU regression tests. Therefore, there is no lengthy preparation step, such as building tools that are missing in the images provided by Travis. Docker images are cached by Shippable, so our own rarely needs to be fetched (which takes roughly 5 minutes). Another reason for the good speed is that we use ccache for everything. With a warm cache, each platform is built in no more than 5-6 seconds, and this speedup is not offset by the longer time it takes to persist a bigger cache file (contrary to what I observed with Travis). Since caching works so well I also decided to cache the whole QEMU environment (repo-based tree), so that the repo init + repo sync steps are usually quite fast (45 seconds). Lastly, switching GitHub from Travis to Shippable is very easy, so we may consider doing so in the short term. Links: [1] https://shippable.com Links: [2] https://hub.docker.com/r/jforissier/optee_os_ci Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>