Mesa (master): gitlab-ci: Re-add kernels for bare-metal

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jul 17 18:43:25 UTC 2020


Module: Mesa
Branch: master
Commit: cf55abe750f04c8287014b459a1b318582fab950
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf55abe750f04c8287014b459a1b318582fab950

Author: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Date:   Thu Jul  9 22:38:51 2020 +0200

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 <tomeu.vizoso at collabora.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5839>

---

 .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 at 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:



More information about the mesa-commit mailing list