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 - .fdo.container-ifnot-exists@debian@arm64v8
- .container - .container
variables: variables:
FDO_DISTRIBUTION_TAG: &arm_build "2020-03-13" FDO_DISTRIBUTION_TAG: &arm_build "2020-03-17-db820c"
.use-arm_build: .use-arm_build:
variables: variables:
@@ -713,7 +713,7 @@ arm64_a306_gles2:
- .use-arm_build - .use-arm_build
stage: freedreno stage: freedreno
variables: variables:
BM_KERNEL: /lava-files/Image BM_KERNEL: /lava-files/Image.gz
BM_DTB: /lava-files/apq8016-sbc.dtb BM_DTB: /lava-files/apq8016-sbc.dtb
BM_ROOTFS: /lava-files/rootfs-arm64 BM_ROOTFS: /lava-files/rootfs-arm64
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8" BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
@@ -736,6 +736,26 @@ arm64_a306_gles2:
variables: variables:
DEQP_VER: gles3 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 # RADV CI
.test-radv: .test-radv:
extends: .radv-rules extends: .radv-rules

View File

@@ -22,7 +22,7 @@ if [ -z "$BM_FASTBOOT_SERIAL" ]; then
fi fi
if [ -z "$BM_KERNEL" ]; then 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 exit 1
fi fi
@@ -67,14 +67,14 @@ pushd rootfs
find -H | cpio -H newc -o | xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz find -H | cpio -H newc -o | xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
popd popd
gzip -c $BM_KERNEL > Image.gz cat $BM_KERNEL $BM_DTB > Image.gz-dtb
cat Image.gz $BM_DTB > Image.gz-dtb
abootimg \ abootimg \
--create artifacts/fastboot.img \ --create artifacts/fastboot.img \
-k Image.gz-dtb \ -k Image.gz-dtb \
-r rootfs.cpio.gz \ -r rootfs.cpio.gz \
-c cmdline="$BM_CMDLINE" -c cmdline="$BM_CMDLINE"
rm Image.gz Image.gz-dtb rm Image.gz-dtb
# Start watching serial, and power up the device. # Start watching serial, and power up the device.
$BM/serial-buffer.py $BM_SERIAL | tee artifacts/serial-output.txt & $BM/serial-buffer.py $BM_SERIAL | tee artifacts/serial-output.txt &

View File

@@ -1,5 +1,7 @@
#!/bin/sh #!/bin/sh
set -ex
mount -t proc none /proc mount -t proc none /proc
mount -t sysfs none /sys mount -t sysfs none /sys
mount -t devtmpfs none /dev || echo possibly already mounted 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}/. cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
rm /lava-files/rootfs-${DEBIAN_ARCH}/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 # 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
find /lib/firmware -type f -print0 | xargs -0r -P4 -n4 xz -T1 -C crc32 # 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 # Copy timezone file and remove tzdata package
rm -rf /etc/localtime 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.*