ci: Enable testing GLES2-3 on a530 (Dragonboard 820c).

Following on from the db410c conversion to baremetal testing, reuse the
same scripts in the same rack to run 7 db820c boards (#4/8 is failing in
the bootloader for unknown reasons).

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4177>
This commit is contained in:
Eric Anholt 2020-03-03 14:38:09 -08:00
parent 8997757c6a
commit 4bc15e78fa
7 changed files with 2636 additions and 8 deletions

View File

@ -161,7 +161,7 @@ arm_build:
- .fdo.container-ifnot-exists@debian@arm64v8
- .container
variables:
FDO_DISTRIBUTION_TAG: &arm_build "2020-03-13"
FDO_DISTRIBUTION_TAG: &arm_build "2020-03-17-db820c"
.use-arm_build:
variables:
@ -713,7 +713,7 @@ arm64_a306_gles2:
- .use-arm_build
stage: freedreno
variables:
BM_KERNEL: /lava-files/Image
BM_KERNEL: /lava-files/Image.gz
BM_DTB: /lava-files/apq8016-sbc.dtb
BM_ROOTFS: /lava-files/rootfs-arm64
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
@ -736,6 +736,26 @@ arm64_a306_gles2:
variables:
DEQP_VER: gles3
arm64_a530_gles2:
extends:
- arm64_a306_gles2
stage: freedreno
variables:
BM_KERNEL: /lava-files/db820c-kernel
BM_DTB: /lava-files/db820c.dtb
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
DEQP_EXPECTED_FAILS: deqp-freedreno-a530-fails.txt
DEQP_SKIPS: deqp-freedreno-a530-skips.txt
tags:
- google-freedreno-db820c
arm64_a530_gles3:
extends:
- arm64_a530_gles2
parallel: 6
variables:
DEQP_VER: gles3
# RADV CI
.test-radv:
extends: .radv-rules

View File

@ -22,7 +22,7 @@ if [ -z "$BM_FASTBOOT_SERIAL" ]; then
fi
if [ -z "$BM_KERNEL" ]; then
echo "Must set BM_KERNEL to your board's kernel Image in the job's variables:"
echo "Must set BM_KERNEL to your board's kernel vmlinuz or Image.gz in the job's variables:"
exit 1
fi
@ -67,14 +67,14 @@ pushd rootfs
find -H | cpio -H newc -o | xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
popd
gzip -c $BM_KERNEL > Image.gz
cat Image.gz $BM_DTB > Image.gz-dtb
cat $BM_KERNEL $BM_DTB > Image.gz-dtb
abootimg \
--create artifacts/fastboot.img \
-k Image.gz-dtb \
-r rootfs.cpio.gz \
-c cmdline="$BM_CMDLINE"
rm Image.gz Image.gz-dtb
rm Image.gz-dtb
# Start watching serial, and power up the device.
$BM/serial-buffer.py $BM_SERIAL | tee artifacts/serial-output.txt &

View File

@ -1,5 +1,7 @@
#!/bin/sh
set -ex
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev || echo possibly already mounted

View File

@ -68,3 +68,31 @@ set -e
cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
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
fi

View File

@ -31,8 +31,12 @@ wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
# Strip the image to a small minimal system without removing the debian
# toolchain.
# xz compress firmware so it doesn't waste RAM at runtime.
find /lib/firmware -type f -print0 | xargs -0r -P4 -n4 xz -T1 -C crc32
# 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
# Note: skips lists for CI are just a list of lines that, when
# non-zero-length and not starting with '#', will regex match to
# delete lines from the test list. Be careful.
# Skip the perf/stress tests to keep runtime manageable
dEQP-GLES[0-9]*.performance.*
dEQP-GLES[0-9]*.stress.*
# These are really slow on tiling architectures (including llvmpipe).
dEQP-GLES[0-9]*.functional.flush_finish.*
# unstable results (probably related to the iommu faults).
dEQP-GLES3.functional.texture.filtering.3d.*
dEQP-GLES3.functional.texture.vertex.3d.filtering.*