From cf55abe750f04c8287014b459a1b318582fab950 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 9 Jul 2020 22:38:51 +0200 Subject: [PATCH] gitlab-ci: Re-add kernels for bare-metal I mistakenly removed what I thought were remnants of when Freedreno used LAVA for their DUTs. lava_arm.sh is used for baremetal, so re-add that code. Fixes: dcd171f5e9bd ("gitlab-ci: More stable URL for kernel and ramdisk artifacts, for LAVA") Signed-off-by: Tomeu Vizoso Reviewed-by: Eric Anholt Part-of: --- .gitlab-ci.yml | 4 +- .gitlab-ci/container/lava_arm.sh | 70 +++++++++++++++++++++++++++----- .gitlab-ci/create-rootfs.sh | 9 +++- .gitlab-ci/lava-gitlab-ci.yml | 6 ++- 4 files changed, 73 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 594cadb559f..0b6d0c63b6d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -336,7 +336,7 @@ arm_test-base: - .fdo.container-build@debian - .container variables: - FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-22-tracie" + FDO_DISTRIBUTION_TAG: &arm_test-base "2020-07-09-cache" .use-arm_test-base: extends: @@ -354,7 +354,7 @@ arm64_test: extends: - .use-arm_test-base variables: - FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-25-kernelfix" + FDO_DISTRIBUTION_TAG: &arm64_test "2020-07-09-cache" .use-arm64_test: variables: diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh index 8751d2ecbdb..baee8d813f2 100755 --- a/.gitlab-ci/container/lava_arm.sh +++ b/.gitlab-ci/container/lava_arm.sh @@ -118,7 +118,6 @@ rm -rf /renderdoc ############### Cross-build kernel -KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-panfrost-fixes/linux-v5.5-panfrost-fixes.tar.gz" mkdir -p kernel wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel pushd kernel @@ -129,6 +128,18 @@ for image in ${KERNEL_IMAGE_NAME}; do done cp ${DEVICE_TREES} /lava-files/. +if [[ ${DEBIAN_ARCH} = "arm64" ]] && which mkimage > /dev/null; then + make Image.lzma + mkimage \ + -f auto \ + -A arm \ + -O linux \ + -d arch/arm64/boot/Image.lzma \ + -C lzma\ + -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \ + /lava-files/cheza-kernel +fi + popd rm -rf kernel @@ -151,19 +162,56 @@ rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh pushd /lava-files/rootfs-${DEBIAN_ARCH} find -H | cpio -H newc -o | gzip -c - > /lava-files/lava-rootfs.cpio.gz popd -rm -rf /lava-files/rootfs-${DEBIAN_ARCH} -ls -lh /lava-files/ +if [ ${DEBIAN_ARCH} = arm64 ]; then + # Pull down a specific build of qcomlt/release/qcomlt-5.4 8c79b3d12355 + # ("Merge tag 'v5.4.23' into release/qcomlt-5.4"), where I used the + # .config from + # http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/457/config-5.4.0-qcomlt-arm64 + # with the following merged in: + # + # CONFIG_DRM=y + # CONFIG_DRM_MSM=y + # CONFIG_ATL1C=y + # + # Reason: 5.5 has a big stack of oopses and warns on db820c. 4.14-5.4 + # linaro kernel binaries (see above .config link) have these as modules + # and distributed the modules only in the debian system, not the initrd, + # so they're very hard to extract (involving simg2img and loopback + # mounting). 4.11 is missing d72fea538fe6 ("drm/msm: Fix the check for + # the command size") so it can't actually run fredreno. qcomlt-4.14 is + # unstable at boot (~10% instaboot rate). The 5.4 qcomlt kernel with msm + # built in seems like the easiest way to go. + wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/Image.gz -O Image.gz \ + -O /lava-files/db820c-kernel + wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/apq8096-db820c.dtb \ + -O /lava-files/db820c.dtb + + # Make a gzipped copy of the Image for db410c. + gzip -k /lava-files/Image + + # Add missing a630 firmware, added to debian packge in apr 2020 + wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_gmu.bin \ + -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_gmu.bin + wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_sqe.fw \ + -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_sqe.fw +fi . .gitlab-ci/container/container_post_build.sh ############### Upload the files! -ci-fairy minio login $CI_JOB_JWT -for f in $(ls /lava-files/); do - ci-fairy minio cp /lava-files/$f \ - minio://${MINIO_PATH}/$f -done - -touch /lava-files/done -ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done +if [ -n "$UPLOAD_FOR_LAVA" ]; then + ci-fairy minio login $CI_JOB_JWT + FILES_TO_UPLOAD="lava-rootfs.cpio.gz \ + $KERNEL_IMAGE_NAME \ + $(basename -a $DEVICE_TREES)" + + for f in $FILES_TO_UPLOAD; do + ci-fairy minio cp /lava-files/$f \ + minio://${MINIO_PATH}/$f + done + + touch /lava-files/done + ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done +fi diff --git a/.gitlab-ci/create-rootfs.sh b/.gitlab-ci/create-rootfs.sh index f6e80e1c517..e9a2c787041 100644 --- a/.gitlab-ci/create-rootfs.sh +++ b/.gitlab-ci/create-rootfs.sh @@ -13,6 +13,7 @@ apt-get -y install --no-install-recommends \ libdrm-nouveau2 \ libx11-6 \ libx11-xcb1 \ + firmware-qcom-media \ netcat-openbsd \ python3 \ libpython3.7 \ @@ -37,13 +38,19 @@ exec sh EOF chmod +x /init +mkdir -p /lib/firmware/rtl_nic +wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_nic/rtl8153a-3.fw -O /lib/firmware/rtl_nic/rtl8153a-3.fw + ####################################################################### # Strip the image to a small minimal system without removing the debian # toolchain. -# xz compress firmware so it doesn't waste RAM at runtime. +# xz compress firmware so it doesn't waste RAM at runtime. Except db820c's +# GPU firmware, due to using a precompiled kernel without compression support. find /lib/firmware -type f -print0 | \ + grep -vz a530 | \ xargs -0r -P4 -n4 xz -T1 -C crc32 +ln -s /lib/firmware/qcom/a530* /lib/firmware/ # Copy timezone file and remove tzdata package rm -rf /etc/localtime diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index 07c7ac4e6b0..c1c2352fc1c 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -1,5 +1,5 @@ variables: - DISTRIBUTION_TAG: "2020-07-06" + DISTRIBUTION_TAG: "2020-07-10" .kernel+rootfs: stage: container-2 @@ -7,8 +7,10 @@ variables: - .ci-run-policy variables: GIT_STRATEGY: fetch + KERNEL_URL: "https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-panfrost-fixes/linux-v5.5-panfrost-fixes.tar.gz" + UPLOAD_FOR_LAVA: 1 script: - - DEBIAN_ARCH=${DEBIAN_ARCH} .gitlab-ci/container/lava_arm.sh + - .gitlab-ci/container/lava_arm.sh kernel+rootfs_arm64: extends: -- 2.30.2