1b10b4515SJerome Forissiername: CI 2b10b4515SJerome Forissieron: [push, pull_request] 39c16bc95SAlexpermissions: 40960b676SJerome Forissier contents: read 50960b676SJerome Forissierconcurrency: 60960b676SJerome Forissier group: ci-${{ github.ref }} # unique per branch 70960b676SJerome Forissier cancel-in-progress: true # cancel previous runs on the same branch 8b10b4515SJerome Forissierjobs: 9b10b4515SJerome Forissier code_style: 10b10b4515SJerome Forissier name: Code style 11b10b4515SJerome Forissier runs-on: ubuntu-latest 12b10b4515SJerome Forissier container: jforissier/optee_os_ci 13b10b4515SJerome Forissier steps: 14b10b4515SJerome Forissier - name: Checkout 15c847c2c9SJerome Forissier uses: actions/checkout@v4 16b10b4515SJerome Forissier with: 173957cdc4SJerome Forissier fetch-depth: 0 # full history so checkpatch can check commit IDs in commit messages 18b10b4515SJerome Forissier - name: Update Git config 19b10b4515SJerome Forissier run: git config --global --add safe.directory ${GITHUB_WORKSPACE} 20b10b4515SJerome Forissier - name: Run checkpatch 21b10b4515SJerome Forissier shell: bash 22b10b4515SJerome Forissier run: | 23b10b4515SJerome Forissier # checkpatch task 24b10b4515SJerome Forissier set -e 25b10b4515SJerome Forissier pushd . >/dev/null 26b10b4515SJerome Forissier mkdir -p /tmp/linux/scripts 27b10b4515SJerome Forissier cd /tmp/linux/scripts 28b10b4515SJerome Forissier wget --quiet https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/plain/scripts/checkpatch.pl 29b10b4515SJerome Forissier chmod +x checkpatch.pl 30b10b4515SJerome Forissier wget --quiet https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/plain/scripts/spelling.txt 31b10b4515SJerome Forissier echo "invalid.struct.name" >const_structs.checkpatch 32b10b4515SJerome Forissier export PATH=/tmp/linux/scripts:$PATH 33b10b4515SJerome Forissier popd >/dev/null 34b10b4515SJerome Forissier source scripts/checkpatch_inc.sh 35b10b4515SJerome Forissier function _do() { echo '>>' $*; $*; } 36b10b4515SJerome Forissier # Run checkpatch.pl: 37b10b4515SJerome Forissier # - on the tip of the branch only if we're not in a pull request 38b10b4515SJerome Forissier # - otherwise: 39b10b4515SJerome Forissier # * on each commit in the development branch that is not in the target (merge to) branch 40b10b4515SJerome Forissier # * on the global diff if the PR contains more than one commit (useful to check if fixup 41b10b4515SJerome Forissier # commits do solve previous checkpatch errors) 42b10b4515SJerome Forissier if [ "${GITHUB_EVENT_NAME}" = "push" ]; then \ 43b10b4515SJerome Forissier _do checkpatch HEAD || failed=1; \ 44b10b4515SJerome Forissier else \ 45b10b4515SJerome Forissier for c in $(git rev-list HEAD^1..HEAD^2); do \ 46b10b4515SJerome Forissier _do checkpatch $c || failed=1; \ 47b10b4515SJerome Forissier done; \ 48b10b4515SJerome Forissier if [ "$(git rev-list --count HEAD^1..HEAD^2)" -gt 1 ]; then \ 49b10b4515SJerome Forissier _do checkdiff $(git rev-parse HEAD^1) $(git rev-parse HEAD^2) || failed=1; \ 50b10b4515SJerome Forissier fi; \ 51b10b4515SJerome Forissier fi 52b10b4515SJerome Forissier [ -z "$failed" ] 53b10b4515SJerome Forissier - name: Run pycodestyle 5432692b31SJerome Forissier if: success() || failure() 55b10b4515SJerome Forissier run: | 56b10b4515SJerome Forissier # pycodestyle task 57b10b4515SJerome Forissier sudo -E bash -c "apt update -qq -y && apt install -qq -y pycodestyle" 58b10b4515SJerome Forissier pycodestyle scripts/*.py core/arch/arm/plat-stm32mp1/scripts/stm32image.py 59b10b4515SJerome Forissier builds: 600960b676SJerome Forissier name: Build (${{ matrix.name }}) 61b10b4515SJerome Forissier runs-on: ubuntu-latest 62b10b4515SJerome Forissier container: jforissier/optee_os_ci 630960b676SJerome Forissier strategy: 640960b676SJerome Forissier fail-fast: false 650960b676SJerome Forissier matrix: 660960b676SJerome Forissier include: 670960b676SJerome Forissier - name: arm hikey 680960b676SJerome Forissier make_commands: | 69b10b4515SJerome Forissier _make PLATFORM=hikey 70b10b4515SJerome Forissier _make PLATFORM=hikey CFG_ARM64_core=y 710960b676SJerome Forissier - name: arm hikey-hikey960 720960b676SJerome Forissier make_commands: | 730960b676SJerome Forissier _make PLATFORM=hikey-hikey960 740960b676SJerome Forissier _make PLATFORM=hikey-hikey960 COMPILER=clang 750960b676SJerome Forissier _make PLATFORM=hikey-hikey960 CFG_ARM64_core=y 760960b676SJerome Forissier _make PLATFORM=hikey-hikey960 CFG_ARM64_core=y COMPILER=clang 770960b676SJerome Forissier _make PLATFORM=hikey-hikey960 CFG_SECURE_DATA_PATH=n 780960b676SJerome Forissier - name: arm imx-imx6* 1 790960b676SJerome Forissier make_commands: | 80b10b4515SJerome Forissier _make PLATFORM=imx-mx6ulevk 81b10b4515SJerome Forissier _make PLATFORM=imx-mx6ulevk CFG_NXP_CAAM=y CFG_CRYPTO_DRIVER=y 82b10b4515SJerome Forissier _make PLATFORM=imx-mx6ul9x9evk 83b10b4515SJerome Forissier _make PLATFORM=imx-mx6ullevk CFG_WITH_SOFTWARE_PRNG=n CFG_IMX_RNGB=y 84b10b4515SJerome Forissier _make PLATFORM=imx-mx6ulzevk 85b10b4515SJerome Forissier _make PLATFORM=imx-mx6slevk 86b10b4515SJerome Forissier _make PLATFORM=imx-mx6sllevk 87b10b4515SJerome Forissier _make PLATFORM=imx-mx6sxsabreauto 88b10b4515SJerome Forissier _make PLATFORM=imx-mx6sxsabresd 89b10b4515SJerome Forissier _make PLATFORM=imx-mx6sxsabresd CFG_NXP_CAAM=y CFG_CRYPTO_DRIVER=y 90b10b4515SJerome Forissier _make PLATFORM=imx-mx6solosabresd 91b10b4515SJerome Forissier _make PLATFORM=imx-mx6solosabreauto 92b10b4515SJerome Forissier _make PLATFORM=imx-mx6sxsabreauto 930960b676SJerome Forissier - name: arm imx-imx6* 2 940960b676SJerome Forissier make_commands: | 95b10b4515SJerome Forissier _make PLATFORM=imx-mx6qsabrelite 96b10b4515SJerome Forissier _make PLATFORM=imx-mx6qsabresd 97b10b4515SJerome Forissier _make PLATFORM=imx-mx6qsabresd CFG_RPMB_FS=y 98b10b4515SJerome Forissier _make PLATFORM=imx-mx6qsabreauto 99b10b4515SJerome Forissier _make PLATFORM=imx-mx6qsabreauto CFG_NXP_CAAM=y CFG_CRYPTO_DRIVER=y 100b10b4515SJerome Forissier _make PLATFORM=imx-mx6qpsabreauto 101b10b4515SJerome Forissier _make PLATFORM=imx-mx6qpsabresd 102b10b4515SJerome Forissier _make PLATFORM=imx-mx6dlsabresd 103b10b4515SJerome Forissier _make PLATFORM=imx-mx6dlsabreauto 104b10b4515SJerome Forissier _make PLATFORM=imx-mx6dapalis 105b10b4515SJerome Forissier _make PLATFORM=imx-mx6qapalis 1060960b676SJerome Forissier - name: arm imx-mx7* 1070960b676SJerome Forissier make_commands: | 108b10b4515SJerome Forissier _make PLATFORM=imx-mx7dsabresd 109b10b4515SJerome Forissier _make PLATFORM=imx-mx7dsabresd CFG_NXP_CAAM=y CFG_CRYPTO_DRIVER=y 110b10b4515SJerome Forissier _make PLATFORM=imx-mx7ulpevk 1110960b676SJerome Forissier - name: arm imx-mx8* 1120960b676SJerome Forissier make_commands: | 113b10b4515SJerome Forissier _make PLATFORM=imx-mx8mmevk 114b10b4515SJerome Forissier _make PLATFORM=imx-mx8mmevk CFG_NXP_CAAM=y CFG_CRYPTO_DRIVER=y 115b10b4515SJerome Forissier _make PLATFORM=imx-mx8mnevk 116b10b4515SJerome Forissier _make PLATFORM=imx-mx8mqevk 117b10b4515SJerome Forissier _make PLATFORM=imx-mx8mpevk 118b10b4515SJerome Forissier _make PLATFORM=imx-mx8qxpmek 11937f820d6SClement Faure _make PLATFORM=imx-mx8dxmek 120b10b4515SJerome Forissier _make PLATFORM=imx-mx8qmmek 121b10b4515SJerome Forissier _make PLATFORM=imx-mx8dxlevk 122b10b4515SJerome Forissier _make PLATFORM=imx-mx8ulpevk 123b10b4515SJerome Forissier _make PLATFORM=imx-mx8ulpevk CFG_NXP_CAAM=y CFG_CRYPTO_DRIVER=y 1240960b676SJerome Forissier - name: arm imx-mx9* 1250960b676SJerome Forissier make_commands: | 1260960b676SJerome Forissier _make PLATFORM=imx-mx91evk 127cb34c33eSClement Faure _make PLATFORM=imx-mx93evk 1285fe5dd14SSahil Malhotra _make PLATFORM=imx-mx95evk 1290960b676SJerome Forissier - name: arm k3 1300960b676SJerome Forissier make_commands: | 131b10b4515SJerome Forissier _make PLATFORM=k3-j721e 132b10b4515SJerome Forissier _make PLATFORM=k3-j721e CFG_ARM64_core=y 1330b28c65fSJayesh Choudhary _make PLATFORM=k3-j784s4 1340b28c65fSJayesh Choudhary _make PLATFORM=k3-j784s4 CFG_ARM64_core=y 135b10b4515SJerome Forissier _make PLATFORM=k3-am65x 136b10b4515SJerome Forissier _make PLATFORM=k3-am65x CFG_ARM64_core=y 137b10b4515SJerome Forissier _make PLATFORM=k3-am64x 138b10b4515SJerome Forissier _make PLATFORM=k3-am64x CFG_ARM64_core=y 139b10b4515SJerome Forissier _make PLATFORM=k3-am62x 140b10b4515SJerome Forissier _make PLATFORM=k3-am62x CFG_ARM64_core=y 141ef1ebdc2SVignesh Raghavendra _make PLATFORM=k3-am62lx 142ef1ebdc2SVignesh Raghavendra _make PLATFORM=k3-am62lx CFG_ARM64_core=y 1430960b676SJerome Forissier - name: arm ls 1440960b676SJerome Forissier make_commands: | 145b10b4515SJerome Forissier _make PLATFORM=ls-ls1043ardb 146b10b4515SJerome Forissier _make PLATFORM=ls-ls1046ardb 147b10b4515SJerome Forissier _make PLATFORM=ls-ls1012ardb 148b10b4515SJerome Forissier _make PLATFORM=ls-ls1028ardb 149b10b4515SJerome Forissier _make PLATFORM=ls-ls1088ardb 150b10b4515SJerome Forissier _make PLATFORM=ls-ls2088ardb 151b10b4515SJerome Forissier _make PLATFORM=ls-lx2160ardb 152b10b4515SJerome Forissier _make PLATFORM=ls-lx2160aqds 1530960b676SJerome Forissier - name: arm marvell 1540960b676SJerome Forissier make_commands: | 155b10b4515SJerome Forissier _make PLATFORM=marvell-armada7k8k 156b10b4515SJerome Forissier _make PLATFORM=marvell-armada3700 157b10b4515SJerome Forissier _make PLATFORM=marvell-otx2t96 158b10b4515SJerome Forissier _make PLATFORM=marvell-otx2f95 159b10b4515SJerome Forissier _make PLATFORM=marvell-otx2t98 1609115cdfaSGowthami _make PLATFORM=marvell-cn10ka 1619115cdfaSGowthami _make PLATFORM=marvell-cn10kb 1629115cdfaSGowthami _make PLATFORM=marvell-cnf10ka 1639115cdfaSGowthami _make PLATFORM=marvell-cnf10kb 1646945b368SAnil Kumar Reddy _make PLATFORM=marvell-cn20ka 1650960b676SJerome Forissier - name: arm mediatek 1660960b676SJerome Forissier make_commands: | 1670960b676SJerome Forissier _make PLATFORM=mediatek-mt8173 1680960b676SJerome Forissier _make PLATFORM=mediatek-mt8175 1690960b676SJerome Forissier _make PLATFORM=mediatek-mt8183 1700960b676SJerome Forissier _make PLATFORM=mediatek-mt8516 1710960b676SJerome Forissier - name: arm misc 1 1720960b676SJerome Forissier make_commands: | 1730960b676SJerome Forissier _make PLATFORM=d02 1740960b676SJerome Forissier _make PLATFORM=d02 CFG_ARM64_core=y 1750960b676SJerome Forissier _make PLATFORM=poplar 1760960b676SJerome Forissier _make PLATFORM=poplar CFG_ARM64_core=y 1770960b676SJerome Forissier _make PLATFORM=rcar 1780960b676SJerome Forissier _make PLATFORM=rzg 1790960b676SJerome Forissier _make PLATFORM=rzg CFG_ARM64_core=y 1800960b676SJerome Forissier _make PLATFORM=rpi3 1810960b676SJerome Forissier _make PLATFORM=rpi3 CFG_ARM64_core=y 1820960b676SJerome Forissier _make PLATFORM=zynq7k-zc702 1836945b368SAnil Kumar Reddy _make PLATFORM=marvell-cnf20ka 184b10b4515SJerome Forissier _make PLATFORM=synquacer 185b10b4515SJerome Forissier _make PLATFORM=sunxi-bpi_zero 186b10b4515SJerome Forissier _make PLATFORM=sunxi-sun50i_a64 1870960b676SJerome Forissier - name: arm misc 2 1880960b676SJerome Forissier make_commands: | 189b10b4515SJerome Forissier _make PLATFORM=bcm-ns3 CFG_ARM64_core=y 190b10b4515SJerome Forissier _make PLATFORM=hisilicon-hi3519av100_demo 191b10b4515SJerome Forissier _make PLATFORM=amlogic 192b10b4515SJerome Forissier _make PLATFORM=rzn1 193d8d2e5e6SJorge Ramirez-Ortiz _make PLATFORM=versal CFG_VERSAL_FPGA_DDR_ADDR=0x40000000 19442f66171SVishnu Banavath _make PLATFORM=corstone1000 19528a029b5SMargarita Glushkin _make PLATFORM=nuvoton 196c25f5007Sloubaihui _make PLATFORM=d06 197a8cfcdf2Sloubaihui _make PLATFORM=d06 CFG_HISILICON_ACC_V3=y 198c1e65709SSungmin Han _make PLATFORM=telechips-tcc805x 19920d6b459SAkshay Belsare _make PLATFORM=versal2 20020d6b459SAkshay Belsare _make PLATFORM=versal2 CFG_AMD_PS_GPIO=y 2010960b676SJerome Forissier _make PLATFORM=sprd-sc9860 2020960b676SJerome Forissier _make PLATFORM=sprd-sc9860 CFG_ARM64_core=y 2030960b676SJerome Forissier - name: arm Plug and Trust 2040960b676SJerome Forissier make_commands: | 2050960b676SJerome Forissier function download_plug_and_trust() { mkdir -p $HOME/se050 && git clone --single-branch -b v0.4.2 https://github.com/foundriesio/plug-and-trust $HOME/se050/plug-and-trust || (rm -rf $HOME/se050 ; echo Nervermind); } 2060960b676SJerome Forissier download_plug_and_trust 207b10b4515SJerome Forissier 2080960b676SJerome Forissier if [ -d $HOME/se050/plug-and-trust ]; then _make PLATFORM=imx-mx6ullevk CFG_NXP_SE05X=y CFG_IMX_I2C=y CFG_STACK_{THREAD,TMP}_EXTRA=8192 CFG_CRYPTO_DRV_{CIPHER,ACIPHER}=y CFG_WITH_SOFTWARE_PRNG=n CFG_NXP_SE05X_{DIEID,RNG,RSA,ECC,CTR}_DRV=y CFG_NXP_SE05X_RSA_DRV_FALLBACK=y CFG_NXP_SE05X_ECC_DRV_FALLBACK=y CFG_NXP_SE05X_PLUG_AND_TRUST=$HOME/se050/plug-and-trust ; fi 2090960b676SJerome Forissier if [ -d $HOME/se050/plug-and-trust ]; then _make PLATFORM=imx-mx8mmevk CFG_NXP_CAAM=y CFG_NXP_CAAM_AE_{GCM,CCM}_DRV=y CFG_NXP_CAAM_RNG_DRV=y CFG_NXP_SE05X=y CFG_IMX_I2C=y CFG_STACK_{THREAD,TMP}_EXTRA=8192 CFG_CRYPTO_DRV_{CIPHER,ACIPHER,AUTHENC}=y CFG_NXP_SE05X_RNG_DRV=n CFG_WITH_SOFTWARE_PRNG=n CFG_NXP_SE05X_{DIEID,RSA,ECC,CTR}_DRV=y CFG_NXP_SE05X_RSA_DRV_FALLBACK=y CFG_NXP_SE05X_ECC_DRV_FALLBACK=y CFG_NXP_SE05X_PLUG_AND_TRUST=$HOME/se050/plug-and-trust ; fi 2101e219620SSumit Garg - name: arm qcom 2111e219620SSumit Garg make_commands: | 2121e219620SSumit Garg _make PLATFORM=qcom-kodiak 2130960b676SJerome Forissier - name: arm rockchip 2140960b676SJerome Forissier make_commands: | 2150960b676SJerome Forissier _make PLATFORM=rockchip-rk322x 2160960b676SJerome Forissier _make PLATFORM=rockchip-rk3399 2170960b676SJerome Forissier _make PLATFORM=rockchip-rk3588 2180960b676SJerome Forissier - name: arm sam 2190960b676SJerome Forissier make_commands: | 2200960b676SJerome Forissier _make PLATFORM=sam 2210960b676SJerome Forissier _make PLATFORM=sam-sama5d2_xplained 2220960b676SJerome Forissier _make PLATFORM=sam-sama5d27_som1_ek 2230960b676SJerome Forissier _make PLATFORM=sam-sama5d27_wlsom1_ek 2240960b676SJerome Forissier - name: arm SCP firmware 2250960b676SJerome Forissier make_commands: | 2260960b676SJerome Forissier function download_scp_firmware() { git clone --single-branch https://git.gitlab.arm.com/firmware/SCP-firmware.git $HOME/scp-firmware && git -C $HOME/scp-firmware checkout 0d48080449e3bd3e5218a31c5f24a6068004c5af || (rm -rf $HOME/scp-firmware ; echo Nervermind); } 2270960b676SJerome Forissier download_scp_firmware 2280960b676SJerome Forissier 2290960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=vexpress-qemu_armv8a CFG_SCMI_SCPFW=y CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 2300960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp2 CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 2310960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp2-235F_DK CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 2320960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp2-215F_DK CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 2330960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=vexpress-fvp CFG_SCMI_SCPFW=y CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 2340960b676SJerome Forissier # if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp1-157C_DK2 CFG_SCMI_SCPFW=y CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 2350960b676SJerome Forissier - name: arm stm 2360960b676SJerome Forissier make_commands: | 2370960b676SJerome Forissier _make PLATFORM=stm-b2260 2380960b676SJerome Forissier _make PLATFORM=stm-cannes 2390960b676SJerome Forissier - name: arm stm32mp1 2400960b676SJerome Forissier make_commands: | 2410960b676SJerome Forissier _make PLATFORM=stm32mp1 2420960b676SJerome Forissier _make PLATFORM=stm32mp1-135F_DK CFG_DRIVERS_CLK_PRINT_TREE=y CFG_DRIVERS_REGULATOR_PRINT_TREE=y 2430960b676SJerome Forissier _make PLATFORM=stm32mp1-135F_DK COMPILER=clang 2440960b676SJerome Forissier _make PLATFORM=stm32mp1 CFG_STM32MP1_OPTEE_IN_SYSRAM=y CFG_STM32MP_REMOTEPROC=y 2450960b676SJerome Forissier - name: arm ti 2460960b676SJerome Forissier make_commands: | 2470960b676SJerome Forissier _make PLATFORM=ti-dra7xx out/core/tee{,-pager,-pageable}.bin 2480960b676SJerome Forissier _make PLATFORM=ti-am57xx 2490960b676SJerome Forissier _make PLATFORM=ti-am43xx 2500960b676SJerome Forissier - name: arm vexpress-fvp 2510960b676SJerome Forissier make_commands: | 2520960b676SJerome Forissier _make PLATFORM=vexpress-fvp 2530960b676SJerome Forissier _make PLATFORM=vexpress-fvp CFG_ARM64_core=y 2540960b676SJerome Forissier _make PLATFORM=vexpress-fvp CFG_ARM64_core=y CFG_CORE_SEL1_SPMC=y CFG_SECURE_PARTITION=y 2550960b676SJerome Forissier - name: arm vexpress-juno 2560960b676SJerome Forissier make_commands: | 2570960b676SJerome Forissier _make PLATFORM=vexpress-juno 2580960b676SJerome Forissier _make PLATFORM=vexpress-juno CFG_ARM64_core=y 2590960b676SJerome Forissier - name: arm vexpress-qemu_armv8a 1 2600960b676SJerome Forissier make_commands: | 2610960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a 2620960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a COMPILER=clang 2630960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_TEE_CORE_LOG_LEVEL=0 CFG_TEE_CORE_DEBUG=n CFG_TEE_TA_LOG_LEVEL=0 CFG_DEBUG_INFO=n 2640960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_TEE_CORE_LOG_LEVEL=4 CFG_TEE_CORE_DEBUG=y CFG_TEE_TA_LOG_LEVEL=4 CFG_CC_OPT_LEVEL=0 CFG_DEBUG_INFO=y 2650960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_WITH_PAGER=y 2660960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_FTRACE_SUPPORT=y CFG_ULIBS_MCOUNT=y CFG_ULIBS_SHARED=y 2670960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_TA_GPROF_SUPPORT=y CFG_FTRACE_SUPPORT=y CFG_SYSCALL_FTRACE=y CFG_ULIBS_MCOUNT=y 2680960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_NS_VIRTUALIZATION=y 2690960b676SJerome Forissier - name: arm vexpress-qemu_armv8a 2 2700960b676SJerome Forissier make_commands: | 2710960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_PREALLOC_EL0_TBLS=y 2720960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_TRANSFER_LIST=y CFG_MAP_EXT_DT_SECURE=y 2730960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SEL1_SPMC=y 2740960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SEL2_SPMC=y CFG_CORE_PHYS_RELOCATABLE=y CFG_TZDRAM_START=0x0d304000 CFG_TZDRAM_SIZE=0x00cfc000 2750960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_{ATTESTATION,DEVICE_ENUM,RTC,SCMI,SECSTOR_TA_MGT,VERAISON_ATTESTATION}_PTA=y CFG_WITH_STATS=y CFG_TA_STATS=y 2760960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SEL1_SPMC=y CFG_NS_VIRTUALIZATION=y 2770960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CRYPTO_WITH_CE=y CFG_CRYPTOLIB_NAME=mbedtls CFG_CRYPTOLIB_DIR=lib/libmbedtls 2780960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SANITIZE_UNDEFINED=y CFG_TA_SANITIZE_UNDEFINED=y CFG_TEE_RAM_VA_SIZE=0x00400000 2790960b676SJerome Forissier dd if=/dev/urandom of=BL32_AP_MM.fd bs=2621440 count=1 && _make PLATFORM=vexpress-qemu_armv8a CFG_STMM_PATH=BL32_AP_MM.fd CFG_RPMB_FS=y CFG_CORE_HEAP_SIZE=524288 CFG_TEE_RAM_VA_SIZE=0x00400000 2800960b676SJerome Forissier - name: arm vexpress-qemu_sbsa 2810960b676SJerome Forissier make_commands: | 2820960b676SJerome Forissier _make PLATFORM=vexpress-qemu_sbsa CFG_CORE_SEL1_SPMC=y CFG_TZDRAM_START=0x20002000 CFG_TZDRAM_SIZE=0x1fbcf000 2830960b676SJerome Forissier - name: arm vexpress-qemu_virt 1 2840960b676SJerome Forissier make_commands: | 2850960b676SJerome Forissier _make 2860960b676SJerome Forissier _make COMPILER=clang 2870960b676SJerome Forissier _make CFG_TEE_CORE_LOG_LEVEL=4 CFG_TEE_CORE_DEBUG=y CFG_TEE_TA_LOG_LEVEL=4 CFG_CC_OPT_LEVEL=0 CFG_DEBUG_INFO=y 2880960b676SJerome Forissier _make CFG_TEE_CORE_LOG_LEVEL=0 CFG_TEE_CORE_DEBUG=n CFG_TEE_TA_LOG_LEVEL=0 CFG_DEBUG_INFO=n CFG_ENABLE_EMBEDDED_TESTS=n 2890960b676SJerome Forissier _make CFG_TEE_CORE_MALLOC_DEBUG=y CFG_CORE_DEBUG_CHECK_STACKS=y 2900960b676SJerome Forissier _make CFG_CORE_SANITIZE_KADDRESS=y CFG_CORE_ASLR=n 2910960b676SJerome Forissier _make CFG_LOCKDEP=y 2920960b676SJerome Forissier _make CFG_CRYPTO=n 2930960b676SJerome Forissier _make CFG_CRYPTO_{AES,DES}=n 2940960b676SJerome Forissier _make CFG_CRYPTO_{DSA,RSA,DH}=n 2950960b676SJerome Forissier - name: arm vexpress-qemu_virt 2 2960960b676SJerome Forissier make_commands: | 2970960b676SJerome Forissier _make CFG_CRYPTO_{DSA,RSA,DH,ECC}=n 2980960b676SJerome Forissier _make CFG_CRYPTO_{H,C,CBC_}MAC=n 2990960b676SJerome Forissier _make CFG_CRYPTO_{G,C}CM=n 3000960b676SJerome Forissier _make CFG_CRYPTO_{MD5,SHA{1,224,256,384,512,512_256}}=n 3010960b676SJerome Forissier _make CFG_WITH_PAGER=y out/core/tee{,-pager,-pageable}.bin 3020960b676SJerome Forissier _make CFG_WITH_PAGER=y CFG_CRYPTOLIB_NAME=mbedtls CFG_CRYPTOLIB_DIR=lib/libmbedtls 3030960b676SJerome Forissier _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y 3040960b676SJerome Forissier _make CFG_WITH_LPAE=y 3050960b676SJerome Forissier _make CFG_CORE_PREALLOC_EL0_TBLS=y 3060960b676SJerome Forissier _make CFG_RPMB_FS=y 3070960b676SJerome Forissier - name: arm vexpress-qemu_virt 3 3080960b676SJerome Forissier make_commands: | 3090960b676SJerome Forissier _make CFG_RPMB_FS=y CFG_RPMB_TESTKEY=y 3100960b676SJerome Forissier _make CFG_RPMB_FS=y CFG_RPMB_WRITE_KEY=y 3110960b676SJerome Forissier _make CFG_REE_FS=n CFG_RPMB_FS=y 3120960b676SJerome Forissier _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y CFG_RPMB_FS=y CFG_DT=y CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_CORE_DEBUG=y CFG_CC_OPT_LEVEL=0 CFG_DEBUG_INFO=y 3130960b676SJerome Forissier _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y CFG_RPMB_FS=y CFG_DT=y CFG_TEE_CORE_LOG_LEVEL=0 CFG_TEE_CORE_DEBUG=n DEBUG=0 3140960b676SJerome Forissier _make CFG_BUILT_IN_ARGS=y CFG_PAGEABLE_ADDR=0 CFG_NS_ENTRY_ADDR=0 CFG_DT_ADDR=0 CFG_DT=y 3150960b676SJerome Forissier _make CFG_FTRACE_SUPPORT=y CFG_ULIBS_MCOUNT=y CFG_ULIBS_SHARED=y 3160960b676SJerome Forissier _make CFG_TA_GPROF_SUPPORT=y CFG_FTRACE_SUPPORT=y CFG_SYSCALL_FTRACE=y CFG_ULIBS_MCOUNT=y 3170960b676SJerome Forissier _make CFG_SECURE_DATA_PATH=y 3180960b676SJerome Forissier _make CFG_REE_FS_TA_BUFFERED=y 3190960b676SJerome Forissier _make CFG_WITH_USER_TA=n 3200960b676SJerome Forissier _make CFG_{ATTESTATION,DEVICE_ENUM,RTC,SCMI,SECSTOR_TA_MGT,VERAISON_ATTESTATION}_PTA=y CFG_WITH_STATS=y CFG_TA_STATS=y 3210960b676SJerome Forissier - name: arm zynqmp 3220960b676SJerome Forissier make_commands: | 3230960b676SJerome Forissier _make PLATFORM=zynqmp-zcu102 3240960b676SJerome Forissier _make PLATFORM=zynqmp-zcu102 CFG_ARM64_core=y 3250960b676SJerome Forissier _make PLATFORM=zynqmp-zcu102 CFG_ARM64_core=y CFG_WITH_SOFTWARE_PRNG=n CFG_XIPHERA_TRNG=y CFG_ZYNQMP_HUK=y 3260960b676SJerome Forissier - name: riscv 3270960b676SJerome Forissier make_commands: | 32827acbe2bSJerome Forissier export ARCH=riscv 32927acbe2bSJerome Forissier unset CROSS_COMPILE32 33027acbe2bSJerome Forissier export CROSS_COMPILE64="ccache riscv64-linux-gnu-" 33127acbe2bSJerome Forissier _make PLATFORM=virt 3321717e0d8SHuang Borong _make PLATFORM=virt CFG_RISCV_PLIC=n CFG_RISCV_APLIC=y 3331717e0d8SHuang Borong _make PLATFORM=virt CFG_RISCV_PLIC=n CFG_RISCV_APLIC_MSI=y CFG_RISCV_IMSIC=y 3349a37c47cSYu-Chien Peter Lin _make PLATFORM=sifive 335021a43d3SJerome Forissier steps: 336021a43d3SJerome Forissier - name: Checkout 337021a43d3SJerome Forissier uses: actions/checkout@v4 338835688acSJerome Forissier - name: Update Git config 339835688acSJerome Forissier run: git config --global --add safe.directory ${GITHUB_WORKSPACE} 3400960b676SJerome Forissier - name: Generate cache key 341021a43d3SJerome Forissier run: | 3420960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 3430960b676SJerome Forissier echo "CACHE_KEY=builds-cache-${HASH}-${GITHUB_SHA}" >> ${GITHUB_ENV} 3440960b676SJerome Forissier echo "CACHE_RESTORE_KEY=builds-cache-${HASH}" >> ${GITHUB_ENV} 3450960b676SJerome Forissier - name: Restore build cache 3460960b676SJerome Forissier uses: actions/cache@v4 3470960b676SJerome Forissier with: 3480960b676SJerome Forissier path: /github/home/.cache/ccache 3490960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 3500960b676SJerome Forissier restore-keys: | 3510960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 3520960b676SJerome Forissier - name: Build 3530960b676SJerome Forissier shell: bash 3540960b676SJerome Forissier env: 3550960b676SJerome Forissier MAKE_COMMANDS: ${{ matrix.make_commands }} 3560960b676SJerome Forissier run: | 357021a43d3SJerome Forissier set -e -v 358021a43d3SJerome Forissier 3590960b676SJerome Forissier export LC_ALL=C 3600960b676SJerome Forissier export PATH=/usr/local/bin:$PATH # clang 3610960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 # Prevent Buildroot error when building as root 3620960b676SJerome Forissier export CFG_DEBUG_INFO=n 3630960b676SJerome Forissier export CFG_WERROR=y 3640960b676SJerome Forissier export CROSS_COMPILE32="ccache arm-linux-gnueabihf-" 3650960b676SJerome Forissier export CROSS_COMPILE64="ccache aarch64-linux-gnu-" 3660960b676SJerome Forissier 3670960b676SJerome Forissier function _make() { make -j$(nproc) -s O=out $*; } 3680960b676SJerome Forissier 3690960b676SJerome Forissier ccache -s -v 3700960b676SJerome Forissier eval "$MAKE_COMMANDS" 3710960b676SJerome Forissier ccache -s -v 3720960b676SJerome Forissier QEMUv7_checks: 3730960b676SJerome Forissier name: Run (QEMUv7) (${{ matrix.name }}) 3740960b676SJerome Forissier runs-on: ubuntu-latest 3750960b676SJerome Forissier strategy: 3760960b676SJerome Forissier fail-fast: false 3770960b676SJerome Forissier matrix: 3780960b676SJerome Forissier include: 3790960b676SJerome Forissier - name: 1 3800960b676SJerome Forissier make_commands: | 381cb034002SJerome Forissier make -j$(nproc) check CFG_LOCKDEP=y CFG_LOCKDEP_RECORD_STACK=n CFG_IN_TREE_EARLY_TAS=pkcs11/fd02c9da-306c-48c7-a49c-bbd827ae86ee CFG_PKCS11_TA=y CFG_CORE_UNSAFE_MODEXP=y XTEST_ARGS="-x pkcs11_1007" 3820960b676SJerome Forissier - name: 2 3830960b676SJerome Forissier make_commands: | 384c3d17445SJens Wiklander make -j$(nproc) check CFG_CORE_SANITIZE_KADDRESS=y CFG_CORE_ASLR=n CFG_ATTESTATION_PTA=n XTEST_ARGS="n_1001 n_1003 n_1004" 385*c20ea3e2SJerome Forissier - name: 3 386*c20ea3e2SJerome Forissier make_commands: | 387613f1196SAleksandr Iashchenko make -j$(nproc) check CFG_CORE_SANITIZE_KADDRESS=y CFG_CORE_ASLR=n CFG_ATTESTATION_PTA=n CFG_DYN_CONFIG=n XTEST_ARGS="n_1001 n_1003 n_1004" 388b10b4515SJerome Forissier steps: 389b10b4515SJerome Forissier - name: Checkout 390c847c2c9SJerome Forissier uses: actions/checkout@v4 391835688acSJerome Forissier - name: Update Git config 3920960b676SJerome Forissier run: git config --global --add safe.directory /home/runner/work/optee_os/optee_os 3930960b676SJerome Forissier - name: Generate cache key 394b10b4515SJerome Forissier run: | 3950960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 3960960b676SJerome Forissier echo "CACHE_KEY=qemuv7_check-cache-${HASH}-${GITHUB_SHA}" >> $GITHUB_ENV 3970960b676SJerome Forissier echo "CACHE_RESTORE_KEY=qemuv7_check-cache-${HASH}" >> ${GITHUB_ENV} 3980960b676SJerome Forissier - name: Restore build cache 3990960b676SJerome Forissier uses: actions/cache@v4 4000960b676SJerome Forissier with: 4010960b676SJerome Forissier path: /home/runner/work/ccache 4020960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 4030960b676SJerome Forissier restore-keys: | 4040960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 4050960b676SJerome Forissier - name: Host setup 4060960b676SJerome Forissier run: bash /home/runner/work/optee_os/optee_os/scripts/ci-host-cleanup.sh 4070960b676SJerome Forissier - name: Run 'make check' tasks in container 4080960b676SJerome Forissier env: 4090960b676SJerome Forissier MAKE_COMMANDS: "${{ matrix.make_commands }}" 4100960b676SJerome Forissier run: | 4110960b676SJerome Forissier docker run --rm \ 4120960b676SJerome Forissier -v /home/runner/work/optee_os/optee_os:/runner/optee_os \ 4130960b676SJerome Forissier -v /home/runner/work/ccache:/root/.cache/ccache \ 4140960b676SJerome Forissier -w /root \ 4150960b676SJerome Forissier -e MAKE_COMMANDS="$MAKE_COMMANDS" \ 4160960b676SJerome Forissier jforissier/optee_os_ci:qemu_check \ 4170960b676SJerome Forissier bash -c ' 418baa05d63SJerome Forissier set -e -v 419b10b4515SJerome Forissier 4200960b676SJerome Forissier export BR2_CCACHE_DIR=/root/.cache/ccache 4210960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 4220960b676SJerome Forissier export CFG_TEE_CORE_LOG_LEVEL=2 4230960b676SJerome Forissier 4240960b676SJerome Forissier # Prepare OP-TEE repo layout 4250960b676SJerome Forissier cd /root 4260960b676SJerome Forissier TOP=/root/optee_repo_qemu 4270960b676SJerome Forissier /root/get_optee.sh default "$TOP" 4280960b676SJerome Forissier mv "$TOP/optee_os" "$TOP/optee_os_old" || true 4290960b676SJerome Forissier ln -s /runner/optee_os "$TOP/optee_os" 4300960b676SJerome Forissier cd "$TOP/build" 4310960b676SJerome Forissier 4320960b676SJerome Forissier ccache -s -v 4330960b676SJerome Forissier eval "$MAKE_COMMANDS" 4340960b676SJerome Forissier ccache -s -v 4350960b676SJerome Forissier ' 4360960b676SJerome Forissier QEMUv8_checks: 4370960b676SJerome Forissier name: Run (QEMUv8) (${{ matrix.name }}) 4380960b676SJerome Forissier runs-on: ubuntu-latest 4390960b676SJerome Forissier strategy: 4400960b676SJerome Forissier fail-fast: false 4410960b676SJerome Forissier matrix: 4420960b676SJerome Forissier include: 4430960b676SJerome Forissier - name: BTI+MTE+PAC 4440960b676SJerome Forissier make_commands: | 44529711e3bSJerome Forissier # The BTI-enabled toolchain is aarch64-unknown-linux-uclibc-gcc in /usr/local/bin 44629711e3bSJerome Forissier export PATH=/usr/local/bin:$PATH 44729711e3bSJerome Forissier export AARCH64_CROSS_COMPILE=aarch64-unknown-linux-uclibc- 44829711e3bSJerome Forissier 44929711e3bSJerome Forissier # xtest 1031 is excluded because 1031.4 (C++ exception from shared library) fails with this cross-compiler 450ce44b9dfSJerome Forissier # Rust is disabled because of a link error in the examples with this toolchain 451854b7c3bSJens Wiklander make -j$(nproc) CFG_CORE_BTI=y CFG_TA_BTI=y SEL0_SPS=y MEMTAG=y PAUTH=y RUST_ENABLE=n XTEST_ARGS="-x n_1031" check 452*c20ea3e2SJerome Forissier - name: CE82 453*c20ea3e2SJerome Forissier make_commands: | 454*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_CRYPTO_WITH_CE82=y 4550960b676SJerome Forissier - name: Clang 4560960b676SJerome Forissier make_commands: | 4570960b676SJerome Forissier export COMPILER=clang 4580960b676SJerome Forissier make -j$(nproc) check 459*c20ea3e2SJerome Forissier - name: Clang ULIBS_SHARED=y 460*c20ea3e2SJerome Forissier make_commands: | 461*c20ea3e2SJerome Forissier export COMPILER=clang 4620960b676SJerome Forissier make -j$(nproc) check CFG_ULIBS_SHARED=y 463*c20ea3e2SJerome Forissier - name: default 464*c20ea3e2SJerome Forissier make_commands: | 465*c20ea3e2SJerome Forissier make -j$(nproc) check 466*c20ea3e2SJerome Forissier - name: DYN_CONFIG=n 467*c20ea3e2SJerome Forissier make_commands: | 468*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_DYN_CONFIG=n 469*c20ea3e2SJerome Forissier - name: ftrace 470*c20ea3e2SJerome Forissier make_commands: | 471*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_FTRACE_SUPPORT=y CFG_SYSCALL_FTRACE=y XTEST_ARGS=regression_1001 RUST_ENABLE=n MEASURED_BOOT_FTPM=n 4720960b676SJerome Forissier - name: FW handoff 4730960b676SJerome Forissier make_commands: | 4740960b676SJerome Forissier make -j$(nproc) check ARM_FIRMWARE_HANDOFF=y 475*c20ea3e2SJerome Forissier - name: KASAN 476*c20ea3e2SJerome Forissier make_commands: | 477*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_CORE_SANITIZE_KADDRESS=y CFG_CORE_ASLR=n CFG_ATTESTATION_PTA=n RUST_ENABLE=n MEASURED_BOOT_FTPM=n XTEST_ARGS="n_1001 n_1003 n_1004" 478*c20ea3e2SJerome Forissier - name: pager 479*c20ea3e2SJerome Forissier make_commands: | 480*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_WITH_PAGER=y MEASURED_BOOT_FTPM=n 481*c20ea3e2SJerome Forissier - name: PAN=y 482*c20ea3e2SJerome Forissier make_commands: | 483*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_PAN=y 4840960b676SJerome Forissier - name: SPMC_AT_EL=1 4850960b676SJerome Forissier make_commands: | 4860960b676SJerome Forissier make -j$(nproc) check SPMC_AT_EL=1 CFG_SECURE_PARTITION=y CFG_SPMC_TESTS=y 4870960b676SJerome Forissier - name: SPMC_AT_EL=2 4880960b676SJerome Forissier make_commands: | 4890960b676SJerome Forissier make -j$(nproc) check SPMC_AT_EL=2 4900960b676SJerome Forissier - name: SPMC_AT_EL=3 4910960b676SJerome Forissier make_commands: | 4920960b676SJerome Forissier make -j$(nproc) check SPMC_AT_EL=3 493*c20ea3e2SJerome Forissier - name: ULIBS_SHARED=y 494*c20ea3e2SJerome Forissier make_commands: | 495*c20ea3e2SJerome Forissier make -j$(nproc) check CFG_ULIBS_SHARED=y 4960960b676SJerome Forissier - name: Xen 4970960b676SJerome Forissier make_commands: | 4980960b676SJerome Forissier make -j$(nproc) check XEN_BOOT=y 4990960b676SJerome Forissier - name: Xen + SPMC_AT_EL=1 5000960b676SJerome Forissier make_commands: | 5010960b676SJerome Forissier make -j$(nproc) check XEN_BOOT=y SPMC_AT_EL=1 502bb7ce54eSJerome Forissier steps: 503bb7ce54eSJerome Forissier - name: Checkout 504bb7ce54eSJerome Forissier uses: actions/checkout@v4 505bb7ce54eSJerome Forissier - name: Update Git config 5060960b676SJerome Forissier run: git config --global --add safe.directory /home/runner/work/optee_os/optee_os 5070960b676SJerome Forissier - name: Generate cache key 508bb7ce54eSJerome Forissier run: | 5090960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 5100960b676SJerome Forissier echo "CACHE_KEY=qemuv8_check-cache-${HASH}-${GITHUB_SHA}" >> $GITHUB_ENV 5110960b676SJerome Forissier echo "CACHE_RESTORE_KEY=qemuv8_check-cache-${HASH}" >> ${GITHUB_ENV} 5120960b676SJerome Forissier - name: Restore build cache 5130960b676SJerome Forissier uses: actions/cache@v4 5140960b676SJerome Forissier with: 5150960b676SJerome Forissier path: /home/runner/work/ccache 5160960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 5170960b676SJerome Forissier restore-keys: | 5180960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 5190960b676SJerome Forissier - name: Host setup 5200960b676SJerome Forissier run: bash /home/runner/work/optee_os/optee_os/scripts/ci-host-cleanup.sh 5210960b676SJerome Forissier - name: Run 'make check' tasks in container 5220960b676SJerome Forissier env: 5230960b676SJerome Forissier MAKE_COMMANDS: "${{ matrix.make_commands }}" 5240960b676SJerome Forissier run: | 5250960b676SJerome Forissier docker run --rm \ 5260960b676SJerome Forissier -v /home/runner/work/optee_os/optee_os:/runner/optee_os \ 5270960b676SJerome Forissier -v /home/runner/work/ccache:/root/.cache/ccache \ 5280960b676SJerome Forissier -w /root \ 5290960b676SJerome Forissier -e MAKE_COMMANDS="$MAKE_COMMANDS" \ 5300960b676SJerome Forissier jforissier/optee_os_ci:qemu_check \ 5310960b676SJerome Forissier bash -c ' 532bb7ce54eSJerome Forissier set -e -v 5330960b676SJerome Forissier 5340960b676SJerome Forissier export BR2_CCACHE_DIR=/root/.cache/ccache 5350960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 5365484d3b3SJens Wiklander export CFG_TEE_CORE_LOG_LEVEL=2 537bb7ce54eSJerome Forissier export CFG_ATTESTATION_PTA=y 538bb7ce54eSJerome Forissier export CFG_ATTESTATION_PTA_KEY_SIZE=1024 539bb7ce54eSJerome Forissier 5400960b676SJerome Forissier # Prepare OP-TEE repo layout 5410960b676SJerome Forissier cd /root 5420960b676SJerome Forissier TOP=/root/optee_repo_qemu_v8 5430960b676SJerome Forissier /root/get_optee.sh qemu_v8 "$TOP" 5440960b676SJerome Forissier mv "$TOP/optee_os" "$TOP/optee_os_old" || true 5450960b676SJerome Forissier ln -s /runner/optee_os "$TOP/optee_os" 5460960b676SJerome Forissier cd "$TOP/build" 5470960b676SJerome Forissier 5480960b676SJerome Forissier ccache -s -v 5490960b676SJerome Forissier 5500960b676SJerome Forissier # Run job-specific commands from matrix 5510960b676SJerome Forissier eval "$MAKE_COMMANDS" 5520960b676SJerome Forissier 5530960b676SJerome Forissier ccache -s -v 5540960b676SJerome Forissier ' 5550960b676SJerome Forissier QEMUv8_checks_arm64: 5560960b676SJerome Forissier name: Run (QEMUv8 on arm64) (${{ matrix.name }}) 5570960b676SJerome Forissier runs-on: ubuntu-24.04-arm 5580960b676SJerome Forissier strategy: 5590960b676SJerome Forissier fail-fast: false 5600960b676SJerome Forissier matrix: 5610960b676SJerome Forissier include: 562*c20ea3e2SJerome Forissier - name: CFG_CORE_UNSAFE_MODEXP=y 5630960b676SJerome Forissier make_commands: | 564bb7ce54eSJerome Forissier # CFG_CORE_UNSAFE_MODEXP=y to speed up regression_4011 565bb7ce54eSJerome Forissier make -j$(nproc) check CFG_CORE_UNSAFE_MODEXP=y 5660960b676SJerome Forissier steps: 5670960b676SJerome Forissier - name: Checkout 5680960b676SJerome Forissier uses: actions/checkout@v4 5690960b676SJerome Forissier - name: Update Git config 5700960b676SJerome Forissier run: git config --global --add safe.directory /home/runner/work/optee_os/optee_os 5710960b676SJerome Forissier - name: Generate cache key 5720960b676SJerome Forissier run: | 5730960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 5740960b676SJerome Forissier echo "CACHE_KEY=qemuv8_arm64_check-cache-${HASH}-${GITHUB_SHA}" >> ${GITHUB_ENV} 5750960b676SJerome Forissier echo "CACHE_RESTORE_KEY=qemuv8_arm64_check-cache-${HASH}" >> ${GITHUB_ENV} 5760960b676SJerome Forissier - name: Restore build cache 5770960b676SJerome Forissier uses: actions/cache@v4 5780960b676SJerome Forissier with: 5790960b676SJerome Forissier path: /home/runner/work/ccache 5800960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 5810960b676SJerome Forissier restore-keys: | 5820960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 5830960b676SJerome Forissier - name: Host setup 5840960b676SJerome Forissier run: bash /home/runner/work/optee_os/optee_os/scripts/ci-host-cleanup.sh 5850960b676SJerome Forissier - name: Run 'make check' tasks in container 5860960b676SJerome Forissier env: 5870960b676SJerome Forissier MAKE_COMMANDS: "${{ matrix.make_commands }}" 5880960b676SJerome Forissier run: | 5890960b676SJerome Forissier docker run --rm \ 5900960b676SJerome Forissier -v /home/runner/work/optee_os/optee_os:/runner/optee_os \ 5910960b676SJerome Forissier -v /home/runner/work/ccache:/root/.cache/ccache \ 5920960b676SJerome Forissier -w /root \ 5930960b676SJerome Forissier -e MAKE_COMMANDS="$MAKE_COMMANDS" \ 5940960b676SJerome Forissier jforissier/optee_os_ci:qemu_check_arm64 \ 5950960b676SJerome Forissier bash -c ' 5960960b676SJerome Forissier set -e -v 5970960b676SJerome Forissier 5980960b676SJerome Forissier export BR2_CCACHE_DIR=/root/.cache/ccache 5990960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 6000960b676SJerome Forissier export CFG_TEE_CORE_LOG_LEVEL=2 6010960b676SJerome Forissier export CFG_ATTESTATION_PTA=y 6020960b676SJerome Forissier export CFG_ATTESTATION_PTA_KEY_SIZE=1024 6030960b676SJerome Forissier 6040960b676SJerome Forissier # Prepare OP-TEE repo layout 6050960b676SJerome Forissier cd /root 6060960b676SJerome Forissier TOP=/root/optee_repo_qemu_v8 6070960b676SJerome Forissier /root/get_optee.sh qemu_v8 "$TOP" 6080960b676SJerome Forissier mv "$TOP/optee_os" "$TOP/optee_os_old" || true 6090960b676SJerome Forissier ln -s /runner/optee_os "$TOP/optee_os" 6100960b676SJerome Forissier cd "$TOP/build" 6110960b676SJerome Forissier 6120960b676SJerome Forissier ccache -s -v 6130960b676SJerome Forissier 6140960b676SJerome Forissier # Run job-specific commands from matrix 6150960b676SJerome Forissier eval "$MAKE_COMMANDS" 6160960b676SJerome Forissier 6170960b676SJerome Forissier ccache -s -v 6180960b676SJerome Forissier ' 619