1b10b4515SJerome Forissiername: CI 2b10b4515SJerome Forissieron: [push, pull_request] 39c16bc95SAlexpermissions: 4*0960b676SJerome Forissier contents: read 5*0960b676SJerome Forissierconcurrency: 6*0960b676SJerome Forissier group: ci-${{ github.ref }} # unique per branch 7*0960b676SJerome 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: 60*0960b676SJerome Forissier name: Build (${{ matrix.name }}) 61b10b4515SJerome Forissier runs-on: ubuntu-latest 62b10b4515SJerome Forissier container: jforissier/optee_os_ci 63*0960b676SJerome Forissier strategy: 64*0960b676SJerome Forissier fail-fast: false 65*0960b676SJerome Forissier matrix: 66*0960b676SJerome Forissier include: 67*0960b676SJerome Forissier - name: arm hikey 68*0960b676SJerome Forissier make_commands: | 69b10b4515SJerome Forissier _make PLATFORM=hikey 70b10b4515SJerome Forissier _make PLATFORM=hikey CFG_ARM64_core=y 71*0960b676SJerome Forissier - name: arm hikey-hikey960 72*0960b676SJerome Forissier make_commands: | 73*0960b676SJerome Forissier _make PLATFORM=hikey-hikey960 74*0960b676SJerome Forissier _make PLATFORM=hikey-hikey960 COMPILER=clang 75*0960b676SJerome Forissier _make PLATFORM=hikey-hikey960 CFG_ARM64_core=y 76*0960b676SJerome Forissier _make PLATFORM=hikey-hikey960 CFG_ARM64_core=y COMPILER=clang 77*0960b676SJerome Forissier _make PLATFORM=hikey-hikey960 CFG_SECURE_DATA_PATH=n 78*0960b676SJerome Forissier - name: arm imx-imx6* 1 79*0960b676SJerome 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 93*0960b676SJerome Forissier - name: arm imx-imx6* 2 94*0960b676SJerome 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 106*0960b676SJerome Forissier - name: arm imx-mx7* 107*0960b676SJerome 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 111*0960b676SJerome Forissier - name: arm imx-mx8* 112*0960b676SJerome 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 124*0960b676SJerome Forissier - name: arm imx-mx9* 125*0960b676SJerome Forissier make_commands: | 126*0960b676SJerome Forissier _make PLATFORM=imx-mx91evk 127cb34c33eSClement Faure _make PLATFORM=imx-mx93evk 1285fe5dd14SSahil Malhotra _make PLATFORM=imx-mx95evk 129*0960b676SJerome Forissier - name: arm k3 130*0960b676SJerome 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 143*0960b676SJerome Forissier - name: arm ls 144*0960b676SJerome 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 153*0960b676SJerome Forissier - name: arm marvell 154*0960b676SJerome 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 165*0960b676SJerome Forissier - name: arm mediatek 166*0960b676SJerome Forissier make_commands: | 167*0960b676SJerome Forissier _make PLATFORM=mediatek-mt8173 168*0960b676SJerome Forissier _make PLATFORM=mediatek-mt8175 169*0960b676SJerome Forissier _make PLATFORM=mediatek-mt8183 170*0960b676SJerome Forissier _make PLATFORM=mediatek-mt8516 171*0960b676SJerome Forissier - name: arm misc 1 172*0960b676SJerome Forissier make_commands: | 173*0960b676SJerome Forissier _make PLATFORM=d02 174*0960b676SJerome Forissier _make PLATFORM=d02 CFG_ARM64_core=y 175*0960b676SJerome Forissier _make PLATFORM=poplar 176*0960b676SJerome Forissier _make PLATFORM=poplar CFG_ARM64_core=y 177*0960b676SJerome Forissier _make PLATFORM=rcar 178*0960b676SJerome Forissier _make PLATFORM=rzg 179*0960b676SJerome Forissier _make PLATFORM=rzg CFG_ARM64_core=y 180*0960b676SJerome Forissier _make PLATFORM=rpi3 181*0960b676SJerome Forissier _make PLATFORM=rpi3 CFG_ARM64_core=y 182*0960b676SJerome 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 187*0960b676SJerome Forissier - name: arm misc 2 188*0960b676SJerome 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 201*0960b676SJerome Forissier _make PLATFORM=sprd-sc9860 202*0960b676SJerome Forissier _make PLATFORM=sprd-sc9860 CFG_ARM64_core=y 203*0960b676SJerome Forissier - name: arm Plug and Trust 204*0960b676SJerome Forissier make_commands: | 205*0960b676SJerome 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); } 206*0960b676SJerome Forissier download_plug_and_trust 207b10b4515SJerome Forissier 208*0960b676SJerome 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 209*0960b676SJerome 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 210*0960b676SJerome Forissier - name: arm rockchip 211*0960b676SJerome Forissier make_commands: | 212*0960b676SJerome Forissier _make PLATFORM=rockchip-rk322x 213*0960b676SJerome Forissier _make PLATFORM=rockchip-rk3399 214*0960b676SJerome Forissier _make PLATFORM=rockchip-rk3588 215*0960b676SJerome Forissier - name: arm sam 216*0960b676SJerome Forissier make_commands: | 217*0960b676SJerome Forissier _make PLATFORM=sam 218*0960b676SJerome Forissier _make PLATFORM=sam-sama5d2_xplained 219*0960b676SJerome Forissier _make PLATFORM=sam-sama5d27_som1_ek 220*0960b676SJerome Forissier _make PLATFORM=sam-sama5d27_wlsom1_ek 221*0960b676SJerome Forissier - name: arm SCP firmware 222*0960b676SJerome Forissier make_commands: | 223*0960b676SJerome 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); } 224*0960b676SJerome Forissier download_scp_firmware 225*0960b676SJerome Forissier 226*0960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=vexpress-qemu_armv8a CFG_SCMI_SCPFW=y CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 227*0960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp2 CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 228*0960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp2-235F_DK CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 229*0960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp2-215F_DK CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 230*0960b676SJerome Forissier if [ -d $HOME/scp-firmware ]; then _make PLATFORM=vexpress-fvp CFG_SCMI_SCPFW=y CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 231*0960b676SJerome Forissier # if [ -d $HOME/scp-firmware ]; then _make PLATFORM=stm32mp1-157C_DK2 CFG_SCMI_SCPFW=y CFG_SCP_FIRMWARE=$HOME/scp-firmware; fi 232*0960b676SJerome Forissier - name: arm stm 233*0960b676SJerome Forissier make_commands: | 234*0960b676SJerome Forissier _make PLATFORM=stm-b2260 235*0960b676SJerome Forissier _make PLATFORM=stm-cannes 236*0960b676SJerome Forissier - name: arm stm32mp1 237*0960b676SJerome Forissier make_commands: | 238*0960b676SJerome Forissier _make PLATFORM=stm32mp1 239*0960b676SJerome Forissier _make PLATFORM=stm32mp1-135F_DK CFG_DRIVERS_CLK_PRINT_TREE=y CFG_DRIVERS_REGULATOR_PRINT_TREE=y 240*0960b676SJerome Forissier _make PLATFORM=stm32mp1-135F_DK COMPILER=clang 241*0960b676SJerome Forissier _make PLATFORM=stm32mp1 CFG_STM32MP1_OPTEE_IN_SYSRAM=y CFG_STM32MP_REMOTEPROC=y 242*0960b676SJerome Forissier - name: arm ti 243*0960b676SJerome Forissier make_commands: | 244*0960b676SJerome Forissier _make PLATFORM=ti-dra7xx out/core/tee{,-pager,-pageable}.bin 245*0960b676SJerome Forissier _make PLATFORM=ti-am57xx 246*0960b676SJerome Forissier _make PLATFORM=ti-am43xx 247*0960b676SJerome Forissier - name: arm vexpress-fvp 248*0960b676SJerome Forissier make_commands: | 249*0960b676SJerome Forissier _make PLATFORM=vexpress-fvp 250*0960b676SJerome Forissier _make PLATFORM=vexpress-fvp CFG_ARM64_core=y 251*0960b676SJerome Forissier _make PLATFORM=vexpress-fvp CFG_ARM64_core=y CFG_CORE_SEL1_SPMC=y CFG_SECURE_PARTITION=y 252*0960b676SJerome Forissier - name: arm vexpress-juno 253*0960b676SJerome Forissier make_commands: | 254*0960b676SJerome Forissier _make PLATFORM=vexpress-juno 255*0960b676SJerome Forissier _make PLATFORM=vexpress-juno CFG_ARM64_core=y 256*0960b676SJerome Forissier - name: arm vexpress-qemu_armv8a 1 257*0960b676SJerome Forissier make_commands: | 258*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a 259*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a COMPILER=clang 260*0960b676SJerome 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 261*0960b676SJerome 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 262*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_WITH_PAGER=y 263*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_FTRACE_SUPPORT=y CFG_ULIBS_MCOUNT=y CFG_ULIBS_SHARED=y 264*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_TA_GPROF_SUPPORT=y CFG_FTRACE_SUPPORT=y CFG_SYSCALL_FTRACE=y CFG_ULIBS_MCOUNT=y 265*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_NS_VIRTUALIZATION=y 266*0960b676SJerome Forissier - name: arm vexpress-qemu_armv8a 2 267*0960b676SJerome Forissier make_commands: | 268*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_PREALLOC_EL0_TBLS=y 269*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_TRANSFER_LIST=y CFG_MAP_EXT_DT_SECURE=y 270*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SEL1_SPMC=y 271*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SEL2_SPMC=y CFG_CORE_PHYS_RELOCATABLE=y CFG_TZDRAM_START=0x0d304000 CFG_TZDRAM_SIZE=0x00cfc000 272*0960b676SJerome 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 273*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SEL1_SPMC=y CFG_NS_VIRTUALIZATION=y 274*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CRYPTO_WITH_CE=y CFG_CRYPTOLIB_NAME=mbedtls CFG_CRYPTOLIB_DIR=lib/libmbedtls 275*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_armv8a CFG_CORE_SANITIZE_UNDEFINED=y CFG_TA_SANITIZE_UNDEFINED=y CFG_TEE_RAM_VA_SIZE=0x00400000 276*0960b676SJerome 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 277*0960b676SJerome Forissier - name: arm vexpress-qemu_sbsa 278*0960b676SJerome Forissier make_commands: | 279*0960b676SJerome Forissier _make PLATFORM=vexpress-qemu_sbsa CFG_CORE_SEL1_SPMC=y CFG_TZDRAM_START=0x20002000 CFG_TZDRAM_SIZE=0x1fbcf000 280*0960b676SJerome Forissier - name: arm vexpress-qemu_virt 1 281*0960b676SJerome Forissier make_commands: | 282*0960b676SJerome Forissier _make 283*0960b676SJerome Forissier _make COMPILER=clang 284*0960b676SJerome 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 285*0960b676SJerome 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 286*0960b676SJerome Forissier _make CFG_TEE_CORE_MALLOC_DEBUG=y CFG_CORE_DEBUG_CHECK_STACKS=y 287*0960b676SJerome Forissier _make CFG_CORE_SANITIZE_KADDRESS=y CFG_CORE_ASLR=n 288*0960b676SJerome Forissier _make CFG_LOCKDEP=y 289*0960b676SJerome Forissier _make CFG_CRYPTO=n 290*0960b676SJerome Forissier _make CFG_CRYPTO_{AES,DES}=n 291*0960b676SJerome Forissier _make CFG_CRYPTO_{DSA,RSA,DH}=n 292*0960b676SJerome Forissier - name: arm vexpress-qemu_virt 2 293*0960b676SJerome Forissier make_commands: | 294*0960b676SJerome Forissier _make CFG_CRYPTO_{DSA,RSA,DH,ECC}=n 295*0960b676SJerome Forissier _make CFG_CRYPTO_{H,C,CBC_}MAC=n 296*0960b676SJerome Forissier _make CFG_CRYPTO_{G,C}CM=n 297*0960b676SJerome Forissier _make CFG_CRYPTO_{MD5,SHA{1,224,256,384,512,512_256}}=n 298*0960b676SJerome Forissier _make CFG_WITH_PAGER=y out/core/tee{,-pager,-pageable}.bin 299*0960b676SJerome Forissier _make CFG_WITH_PAGER=y CFG_CRYPTOLIB_NAME=mbedtls CFG_CRYPTOLIB_DIR=lib/libmbedtls 300*0960b676SJerome Forissier _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y 301*0960b676SJerome Forissier _make CFG_WITH_LPAE=y 302*0960b676SJerome Forissier _make CFG_CORE_PREALLOC_EL0_TBLS=y 303*0960b676SJerome Forissier _make CFG_RPMB_FS=y 304*0960b676SJerome Forissier - name: arm vexpress-qemu_virt 3 305*0960b676SJerome Forissier make_commands: | 306*0960b676SJerome Forissier _make CFG_RPMB_FS=y CFG_RPMB_TESTKEY=y 307*0960b676SJerome Forissier _make CFG_RPMB_FS=y CFG_RPMB_WRITE_KEY=y 308*0960b676SJerome Forissier _make CFG_REE_FS=n CFG_RPMB_FS=y 309*0960b676SJerome 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 310*0960b676SJerome 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 311*0960b676SJerome Forissier _make CFG_BUILT_IN_ARGS=y CFG_PAGEABLE_ADDR=0 CFG_NS_ENTRY_ADDR=0 CFG_DT_ADDR=0 CFG_DT=y 312*0960b676SJerome Forissier _make CFG_FTRACE_SUPPORT=y CFG_ULIBS_MCOUNT=y CFG_ULIBS_SHARED=y 313*0960b676SJerome Forissier _make CFG_TA_GPROF_SUPPORT=y CFG_FTRACE_SUPPORT=y CFG_SYSCALL_FTRACE=y CFG_ULIBS_MCOUNT=y 314*0960b676SJerome Forissier _make CFG_SECURE_DATA_PATH=y 315*0960b676SJerome Forissier _make CFG_REE_FS_TA_BUFFERED=y 316*0960b676SJerome Forissier _make CFG_WITH_USER_TA=n 317*0960b676SJerome Forissier _make CFG_{ATTESTATION,DEVICE_ENUM,RTC,SCMI,SECSTOR_TA_MGT,VERAISON_ATTESTATION}_PTA=y CFG_WITH_STATS=y CFG_TA_STATS=y 318*0960b676SJerome Forissier - name: arm zynqmp 319*0960b676SJerome Forissier make_commands: | 320*0960b676SJerome Forissier _make PLATFORM=zynqmp-zcu102 321*0960b676SJerome Forissier _make PLATFORM=zynqmp-zcu102 CFG_ARM64_core=y 322*0960b676SJerome Forissier _make PLATFORM=zynqmp-zcu102 CFG_ARM64_core=y CFG_WITH_SOFTWARE_PRNG=n CFG_XIPHERA_TRNG=y CFG_ZYNQMP_HUK=y 323*0960b676SJerome Forissier - name: riscv 324*0960b676SJerome Forissier make_commands: | 32527acbe2bSJerome Forissier export ARCH=riscv 32627acbe2bSJerome Forissier unset CROSS_COMPILE32 32727acbe2bSJerome Forissier export CROSS_COMPILE64="ccache riscv64-linux-gnu-" 32827acbe2bSJerome Forissier _make PLATFORM=virt 3291717e0d8SHuang Borong _make PLATFORM=virt CFG_RISCV_PLIC=n CFG_RISCV_APLIC=y 3301717e0d8SHuang Borong _make PLATFORM=virt CFG_RISCV_PLIC=n CFG_RISCV_APLIC_MSI=y CFG_RISCV_IMSIC=y 3319a37c47cSYu-Chien Peter Lin _make PLATFORM=sifive 332021a43d3SJerome Forissier steps: 333021a43d3SJerome Forissier - name: Checkout 334021a43d3SJerome Forissier uses: actions/checkout@v4 335835688acSJerome Forissier - name: Update Git config 336835688acSJerome Forissier run: git config --global --add safe.directory ${GITHUB_WORKSPACE} 337*0960b676SJerome Forissier - name: Generate cache key 338021a43d3SJerome Forissier run: | 339*0960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 340*0960b676SJerome Forissier echo "CACHE_KEY=builds-cache-${HASH}-${GITHUB_SHA}" >> ${GITHUB_ENV} 341*0960b676SJerome Forissier echo "CACHE_RESTORE_KEY=builds-cache-${HASH}" >> ${GITHUB_ENV} 342*0960b676SJerome Forissier - name: Restore build cache 343*0960b676SJerome Forissier uses: actions/cache@v4 344*0960b676SJerome Forissier with: 345*0960b676SJerome Forissier path: /github/home/.cache/ccache 346*0960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 347*0960b676SJerome Forissier restore-keys: | 348*0960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 349*0960b676SJerome Forissier - name: Build 350*0960b676SJerome Forissier shell: bash 351*0960b676SJerome Forissier env: 352*0960b676SJerome Forissier MAKE_COMMANDS: ${{ matrix.make_commands }} 353*0960b676SJerome Forissier run: | 354021a43d3SJerome Forissier set -e -v 355021a43d3SJerome Forissier 356*0960b676SJerome Forissier export LC_ALL=C 357*0960b676SJerome Forissier export PATH=/usr/local/bin:$PATH # clang 358*0960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 # Prevent Buildroot error when building as root 359*0960b676SJerome Forissier export CFG_DEBUG_INFO=n 360*0960b676SJerome Forissier export CFG_WERROR=y 361*0960b676SJerome Forissier export CROSS_COMPILE32="ccache arm-linux-gnueabihf-" 362*0960b676SJerome Forissier export CROSS_COMPILE64="ccache aarch64-linux-gnu-" 363*0960b676SJerome Forissier 364*0960b676SJerome Forissier function _make() { make -j$(nproc) -s O=out $*; } 365*0960b676SJerome Forissier 366*0960b676SJerome Forissier ccache -s -v 367*0960b676SJerome Forissier eval "$MAKE_COMMANDS" 368*0960b676SJerome Forissier ccache -s -v 369*0960b676SJerome Forissier QEMUv7_checks: 370*0960b676SJerome Forissier name: Run (QEMUv7) (${{ matrix.name }}) 371*0960b676SJerome Forissier runs-on: ubuntu-latest 372*0960b676SJerome Forissier strategy: 373*0960b676SJerome Forissier fail-fast: false 374*0960b676SJerome Forissier matrix: 375*0960b676SJerome Forissier include: 376*0960b676SJerome Forissier - name: 1 377*0960b676SJerome Forissier make_commands: | 378cb034002SJerome 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" 379*0960b676SJerome Forissier - name: 2 380*0960b676SJerome Forissier make_commands: | 381c3d17445SJens 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" 382613f1196SAleksandr 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" 383b10b4515SJerome Forissier steps: 384b10b4515SJerome Forissier - name: Checkout 385c847c2c9SJerome Forissier uses: actions/checkout@v4 386835688acSJerome Forissier - name: Update Git config 387*0960b676SJerome Forissier run: git config --global --add safe.directory /home/runner/work/optee_os/optee_os 388*0960b676SJerome Forissier - name: Generate cache key 389b10b4515SJerome Forissier run: | 390*0960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 391*0960b676SJerome Forissier echo "CACHE_KEY=qemuv7_check-cache-${HASH}-${GITHUB_SHA}" >> $GITHUB_ENV 392*0960b676SJerome Forissier echo "CACHE_RESTORE_KEY=qemuv7_check-cache-${HASH}" >> ${GITHUB_ENV} 393*0960b676SJerome Forissier - name: Restore build cache 394*0960b676SJerome Forissier uses: actions/cache@v4 395*0960b676SJerome Forissier with: 396*0960b676SJerome Forissier path: /home/runner/work/ccache 397*0960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 398*0960b676SJerome Forissier restore-keys: | 399*0960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 400*0960b676SJerome Forissier - name: Host setup 401*0960b676SJerome Forissier run: bash /home/runner/work/optee_os/optee_os/scripts/ci-host-cleanup.sh 402*0960b676SJerome Forissier - name: Run 'make check' tasks in container 403*0960b676SJerome Forissier env: 404*0960b676SJerome Forissier MAKE_COMMANDS: "${{ matrix.make_commands }}" 405*0960b676SJerome Forissier run: | 406*0960b676SJerome Forissier docker run --rm \ 407*0960b676SJerome Forissier -v /home/runner/work/optee_os/optee_os:/runner/optee_os \ 408*0960b676SJerome Forissier -v /home/runner/work/ccache:/root/.cache/ccache \ 409*0960b676SJerome Forissier -w /root \ 410*0960b676SJerome Forissier -e MAKE_COMMANDS="$MAKE_COMMANDS" \ 411*0960b676SJerome Forissier jforissier/optee_os_ci:qemu_check \ 412*0960b676SJerome Forissier bash -c ' 413baa05d63SJerome Forissier set -e -v 414b10b4515SJerome Forissier 415*0960b676SJerome Forissier export BR2_CCACHE_DIR=/root/.cache/ccache 416*0960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 417*0960b676SJerome Forissier export CFG_TEE_CORE_LOG_LEVEL=2 418*0960b676SJerome Forissier 419*0960b676SJerome Forissier # Prepare OP-TEE repo layout 420*0960b676SJerome Forissier cd /root 421*0960b676SJerome Forissier TOP=/root/optee_repo_qemu 422*0960b676SJerome Forissier /root/get_optee.sh default "$TOP" 423*0960b676SJerome Forissier mv "$TOP/optee_os" "$TOP/optee_os_old" || true 424*0960b676SJerome Forissier ln -s /runner/optee_os "$TOP/optee_os" 425*0960b676SJerome Forissier cd "$TOP/build" 426*0960b676SJerome Forissier 427*0960b676SJerome Forissier ccache -s -v 428*0960b676SJerome Forissier eval "$MAKE_COMMANDS" 429*0960b676SJerome Forissier ccache -s -v 430*0960b676SJerome Forissier ' 431*0960b676SJerome Forissier QEMUv8_checks: 432*0960b676SJerome Forissier name: Run (QEMUv8) (${{ matrix.name }}) 433*0960b676SJerome Forissier runs-on: ubuntu-latest 434*0960b676SJerome Forissier strategy: 435*0960b676SJerome Forissier fail-fast: false 436*0960b676SJerome Forissier matrix: 437*0960b676SJerome Forissier include: 438*0960b676SJerome Forissier - name: 1 439*0960b676SJerome Forissier make_commands: | 4405f1d31ffSJerome Forissier make -j$(nproc) check 4415f1d31ffSJerome Forissier make -j$(nproc) check CFG_CRYPTO_WITH_CE82=y 442*0960b676SJerome Forissier - name: 2 443*0960b676SJerome Forissier make_commands: | 444c3d17445SJens Wiklander 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" 4456dfa501fSJerome Forissier make -j$(nproc) check CFG_DYN_CONFIG=n 446*0960b676SJerome Forissier - name: 3 447*0960b676SJerome Forissier make_commands: | 448568af6f2SJens Wiklander make -j$(nproc) check CFG_FTRACE_SUPPORT=y CFG_SYSCALL_FTRACE=y XTEST_ARGS=regression_1001 RUST_ENABLE=n MEASURED_BOOT_FTPM=n 4495124aab5SJerome Forissier make -j$(nproc) check CFG_WITH_PAGER=y MEASURED_BOOT_FTPM=n 450*0960b676SJerome Forissier - name: 4 451*0960b676SJerome Forissier make_commands: | 452a1a90747SJens Wiklander make -j$(nproc) check CFG_PAN=y 453d5db6582SJerome Forissier make -j$(nproc) check CFG_ULIBS_SHARED=y 454*0960b676SJerome Forissier - name: BTI+MTE+PAC 455*0960b676SJerome Forissier make_commands: | 45629711e3bSJerome Forissier # The BTI-enabled toolchain is aarch64-unknown-linux-uclibc-gcc in /usr/local/bin 45729711e3bSJerome Forissier export PATH=/usr/local/bin:$PATH 45829711e3bSJerome Forissier export AARCH64_CROSS_COMPILE=aarch64-unknown-linux-uclibc- 45929711e3bSJerome Forissier 46029711e3bSJerome Forissier # xtest 1031 is excluded because 1031.4 (C++ exception from shared library) fails with this cross-compiler 461ce44b9dfSJerome Forissier # Rust is disabled because of a link error in the examples with this toolchain 462854b7c3bSJens 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 463*0960b676SJerome Forissier - name: Clang 464*0960b676SJerome Forissier make_commands: | 465*0960b676SJerome Forissier export COMPILER=clang 466*0960b676SJerome Forissier make -j$(nproc) check 467*0960b676SJerome Forissier make -j$(nproc) check CFG_ULIBS_SHARED=y 468*0960b676SJerome Forissier - name: FW handoff 469*0960b676SJerome Forissier make_commands: | 470*0960b676SJerome Forissier make -j$(nproc) check ARM_FIRMWARE_HANDOFF=y 471*0960b676SJerome Forissier - name: SPMC_AT_EL=1 472*0960b676SJerome Forissier make_commands: | 473*0960b676SJerome Forissier make -j$(nproc) check SPMC_AT_EL=1 CFG_SECURE_PARTITION=y CFG_SPMC_TESTS=y 474*0960b676SJerome Forissier - name: SPMC_AT_EL=2 475*0960b676SJerome Forissier make_commands: | 476*0960b676SJerome Forissier make -j$(nproc) check SPMC_AT_EL=2 477*0960b676SJerome Forissier - name: SPMC_AT_EL=3 478*0960b676SJerome Forissier make_commands: | 479*0960b676SJerome Forissier make -j$(nproc) check SPMC_AT_EL=3 480*0960b676SJerome Forissier - name: Xen 481*0960b676SJerome Forissier make_commands: | 482*0960b676SJerome Forissier make -j$(nproc) check XEN_BOOT=y 483*0960b676SJerome Forissier - name: Xen + SPMC_AT_EL=1 484*0960b676SJerome Forissier make_commands: | 485*0960b676SJerome Forissier make -j$(nproc) check XEN_BOOT=y SPMC_AT_EL=1 486bb7ce54eSJerome Forissier steps: 487bb7ce54eSJerome Forissier - name: Checkout 488bb7ce54eSJerome Forissier uses: actions/checkout@v4 489bb7ce54eSJerome Forissier - name: Update Git config 490*0960b676SJerome Forissier run: git config --global --add safe.directory /home/runner/work/optee_os/optee_os 491*0960b676SJerome Forissier - name: Generate cache key 492bb7ce54eSJerome Forissier run: | 493*0960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 494*0960b676SJerome Forissier echo "CACHE_KEY=qemuv8_check-cache-${HASH}-${GITHUB_SHA}" >> $GITHUB_ENV 495*0960b676SJerome Forissier echo "CACHE_RESTORE_KEY=qemuv8_check-cache-${HASH}" >> ${GITHUB_ENV} 496*0960b676SJerome Forissier - name: Restore build cache 497*0960b676SJerome Forissier uses: actions/cache@v4 498*0960b676SJerome Forissier with: 499*0960b676SJerome Forissier path: /home/runner/work/ccache 500*0960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 501*0960b676SJerome Forissier restore-keys: | 502*0960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 503*0960b676SJerome Forissier - name: Host setup 504*0960b676SJerome Forissier run: bash /home/runner/work/optee_os/optee_os/scripts/ci-host-cleanup.sh 505*0960b676SJerome Forissier - name: Run 'make check' tasks in container 506*0960b676SJerome Forissier env: 507*0960b676SJerome Forissier MAKE_COMMANDS: "${{ matrix.make_commands }}" 508*0960b676SJerome Forissier run: | 509*0960b676SJerome Forissier docker run --rm \ 510*0960b676SJerome Forissier -v /home/runner/work/optee_os/optee_os:/runner/optee_os \ 511*0960b676SJerome Forissier -v /home/runner/work/ccache:/root/.cache/ccache \ 512*0960b676SJerome Forissier -w /root \ 513*0960b676SJerome Forissier -e MAKE_COMMANDS="$MAKE_COMMANDS" \ 514*0960b676SJerome Forissier jforissier/optee_os_ci:qemu_check \ 515*0960b676SJerome Forissier bash -c ' 516bb7ce54eSJerome Forissier set -e -v 517*0960b676SJerome Forissier 518*0960b676SJerome Forissier export BR2_CCACHE_DIR=/root/.cache/ccache 519*0960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 5205484d3b3SJens Wiklander export CFG_TEE_CORE_LOG_LEVEL=2 521bb7ce54eSJerome Forissier export CFG_ATTESTATION_PTA=y 522bb7ce54eSJerome Forissier export CFG_ATTESTATION_PTA_KEY_SIZE=1024 523bb7ce54eSJerome Forissier 524*0960b676SJerome Forissier # Prepare OP-TEE repo layout 525*0960b676SJerome Forissier cd /root 526*0960b676SJerome Forissier TOP=/root/optee_repo_qemu_v8 527*0960b676SJerome Forissier /root/get_optee.sh qemu_v8 "$TOP" 528*0960b676SJerome Forissier mv "$TOP/optee_os" "$TOP/optee_os_old" || true 529*0960b676SJerome Forissier ln -s /runner/optee_os "$TOP/optee_os" 530*0960b676SJerome Forissier cd "$TOP/build" 531*0960b676SJerome Forissier 532*0960b676SJerome Forissier ccache -s -v 533*0960b676SJerome Forissier 534*0960b676SJerome Forissier # Run job-specific commands from matrix 535*0960b676SJerome Forissier eval "$MAKE_COMMANDS" 536*0960b676SJerome Forissier 537*0960b676SJerome Forissier ccache -s -v 538*0960b676SJerome Forissier ' 539*0960b676SJerome Forissier QEMUv8_checks_arm64: 540*0960b676SJerome Forissier name: Run (QEMUv8 on arm64) (${{ matrix.name }}) 541*0960b676SJerome Forissier runs-on: ubuntu-24.04-arm 542*0960b676SJerome Forissier strategy: 543*0960b676SJerome Forissier fail-fast: false 544*0960b676SJerome Forissier matrix: 545*0960b676SJerome Forissier include: 546*0960b676SJerome Forissier - name: 1 547*0960b676SJerome Forissier make_commands: | 548bb7ce54eSJerome Forissier # CFG_CORE_UNSAFE_MODEXP=y to speed up regression_4011 549bb7ce54eSJerome Forissier make -j$(nproc) check CFG_CORE_UNSAFE_MODEXP=y 550*0960b676SJerome Forissier steps: 551*0960b676SJerome Forissier - name: Checkout 552*0960b676SJerome Forissier uses: actions/checkout@v4 553*0960b676SJerome Forissier - name: Update Git config 554*0960b676SJerome Forissier run: git config --global --add safe.directory /home/runner/work/optee_os/optee_os 555*0960b676SJerome Forissier - name: Generate cache key 556*0960b676SJerome Forissier run: | 557*0960b676SJerome Forissier HASH=$(echo -n "${{ matrix.name }}" | sha256sum | cut -c1-16) 558*0960b676SJerome Forissier echo "CACHE_KEY=qemuv8_arm64_check-cache-${HASH}-${GITHUB_SHA}" >> ${GITHUB_ENV} 559*0960b676SJerome Forissier echo "CACHE_RESTORE_KEY=qemuv8_arm64_check-cache-${HASH}" >> ${GITHUB_ENV} 560*0960b676SJerome Forissier - name: Restore build cache 561*0960b676SJerome Forissier uses: actions/cache@v4 562*0960b676SJerome Forissier with: 563*0960b676SJerome Forissier path: /home/runner/work/ccache 564*0960b676SJerome Forissier key: ${{ env.CACHE_KEY }} 565*0960b676SJerome Forissier restore-keys: | 566*0960b676SJerome Forissier ${{ env.CACHE_RESTORE_KEY }} 567*0960b676SJerome Forissier - name: Host setup 568*0960b676SJerome Forissier run: bash /home/runner/work/optee_os/optee_os/scripts/ci-host-cleanup.sh 569*0960b676SJerome Forissier - name: Run 'make check' tasks in container 570*0960b676SJerome Forissier env: 571*0960b676SJerome Forissier MAKE_COMMANDS: "${{ matrix.make_commands }}" 572*0960b676SJerome Forissier run: | 573*0960b676SJerome Forissier docker run --rm \ 574*0960b676SJerome Forissier -v /home/runner/work/optee_os/optee_os:/runner/optee_os \ 575*0960b676SJerome Forissier -v /home/runner/work/ccache:/root/.cache/ccache \ 576*0960b676SJerome Forissier -w /root \ 577*0960b676SJerome Forissier -e MAKE_COMMANDS="$MAKE_COMMANDS" \ 578*0960b676SJerome Forissier jforissier/optee_os_ci:qemu_check_arm64 \ 579*0960b676SJerome Forissier bash -c ' 580*0960b676SJerome Forissier set -e -v 581*0960b676SJerome Forissier 582*0960b676SJerome Forissier export BR2_CCACHE_DIR=/root/.cache/ccache 583*0960b676SJerome Forissier export FORCE_UNSAFE_CONFIGURE=1 584*0960b676SJerome Forissier export CFG_TEE_CORE_LOG_LEVEL=2 585*0960b676SJerome Forissier export CFG_ATTESTATION_PTA=y 586*0960b676SJerome Forissier export CFG_ATTESTATION_PTA_KEY_SIZE=1024 587*0960b676SJerome Forissier 588*0960b676SJerome Forissier # Prepare OP-TEE repo layout 589*0960b676SJerome Forissier cd /root 590*0960b676SJerome Forissier TOP=/root/optee_repo_qemu_v8 591*0960b676SJerome Forissier /root/get_optee.sh qemu_v8 "$TOP" 592*0960b676SJerome Forissier mv "$TOP/optee_os" "$TOP/optee_os_old" || true 593*0960b676SJerome Forissier ln -s /runner/optee_os "$TOP/optee_os" 594*0960b676SJerome Forissier cd "$TOP/build" 595*0960b676SJerome Forissier 596*0960b676SJerome Forissier ccache -s -v 597*0960b676SJerome Forissier 598*0960b676SJerome Forissier # Run job-specific commands from matrix 599*0960b676SJerome Forissier eval "$MAKE_COMMANDS" 600*0960b676SJerome Forissier 601*0960b676SJerome Forissier ccache -s -v 602*0960b676SJerome Forissier ' 603