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: dcd171f5e9 ("gitlab-ci: More stable URL for kernel and ramdisk artifacts, for LAVA")
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5839>
This commit is contained in:
Tomeu Vizoso
2020-07-09 22:38:51 +02:00
parent 2aa507f87a
commit cf55abe750
4 changed files with 72 additions and 15 deletions

View File

@@ -336,7 +336,7 @@ arm_test-base:
- .fdo.container-build@debian - .fdo.container-build@debian
- .container - .container
variables: 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: .use-arm_test-base:
extends: extends:
@@ -354,7 +354,7 @@ arm64_test:
extends: extends:
- .use-arm_test-base - .use-arm_test-base
variables: variables:
FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-25-kernelfix" FDO_DISTRIBUTION_TAG: &arm64_test "2020-07-09-cache"
.use-arm64_test: .use-arm64_test:
variables: variables:

View File

@@ -118,7 +118,6 @@ rm -rf /renderdoc
############### Cross-build kernel ############### 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 mkdir -p kernel
wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
pushd kernel pushd kernel
@@ -129,6 +128,18 @@ for image in ${KERNEL_IMAGE_NAME}; do
done done
cp ${DEVICE_TREES} /lava-files/. 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 popd
rm -rf kernel rm -rf kernel
@@ -151,19 +162,56 @@ rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
pushd /lava-files/rootfs-${DEBIAN_ARCH} pushd /lava-files/rootfs-${DEBIAN_ARCH}
find -H | cpio -H newc -o | gzip -c - > /lava-files/lava-rootfs.cpio.gz find -H | cpio -H newc -o | gzip -c - > /lava-files/lava-rootfs.cpio.gz
popd 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 . .gitlab-ci/container/container_post_build.sh
############### Upload the files! ############### Upload the files!
ci-fairy minio login $CI_JOB_JWT if [ -n "$UPLOAD_FOR_LAVA" ]; then
for f in $(ls /lava-files/); do ci-fairy minio login $CI_JOB_JWT
ci-fairy minio cp /lava-files/$f \ FILES_TO_UPLOAD="lava-rootfs.cpio.gz \
minio://${MINIO_PATH}/$f $KERNEL_IMAGE_NAME \
done $(basename -a $DEVICE_TREES)"
touch /lava-files/done for f in $FILES_TO_UPLOAD; do
ci-fairy minio cp /lava-files/done minio://${MINIO_PATH}/done 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

View File

@@ -13,6 +13,7 @@ apt-get -y install --no-install-recommends \
libdrm-nouveau2 \ libdrm-nouveau2 \
libx11-6 \ libx11-6 \
libx11-xcb1 \ libx11-xcb1 \
firmware-qcom-media \
netcat-openbsd \ netcat-openbsd \
python3 \ python3 \
libpython3.7 \ libpython3.7 \
@@ -37,13 +38,19 @@ exec sh
EOF EOF
chmod +x /init 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 # Strip the image to a small minimal system without removing the debian
# toolchain. # 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 | \ find /lib/firmware -type f -print0 | \
grep -vz a530 | \
xargs -0r -P4 -n4 xz -T1 -C crc32 xargs -0r -P4 -n4 xz -T1 -C crc32
ln -s /lib/firmware/qcom/a530* /lib/firmware/
# Copy timezone file and remove tzdata package # Copy timezone file and remove tzdata package
rm -rf /etc/localtime rm -rf /etc/localtime

View File

@@ -1,5 +1,5 @@
variables: variables:
DISTRIBUTION_TAG: "2020-07-06" DISTRIBUTION_TAG: "2020-07-10"
.kernel+rootfs: .kernel+rootfs:
stage: container-2 stage: container-2
@@ -7,8 +7,10 @@ variables:
- .ci-run-policy - .ci-run-policy
variables: variables:
GIT_STRATEGY: fetch 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: script:
- DEBIAN_ARCH=${DEBIAN_ARCH} .gitlab-ci/container/lava_arm.sh - .gitlab-ci/container/lava_arm.sh
kernel+rootfs_arm64: kernel+rootfs_arm64:
extends: extends: