ci/nouveau: Add nouveau support to the rootfs.
authorEmma Anholt <emma@anholt.net>
Fri, 3 Dec 2021 00:14:30 +0000 (16:14 -0800)
committerMarge Bot <emma+marge@anholt.net>
Wed, 9 Mar 2022 19:47:04 +0000 (19:47 +0000)
This required updating the kernel to 5.16.12 to get a more stable boot
process.  That kernel rebuild caused an update of the container with
piglit which that was missed in a previous MR, so we got new xfails in x86
swrast.  Also, including modules on arm64 exposed a bug in v3d's
poe-powered.sh rsyncing of modules.

Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15201>

13 files changed:
.gitlab-ci.yml
.gitlab-ci/bare-metal/cisco-2960-poe-off.sh [new file with mode: 0755]
.gitlab-ci/bare-metal/poe-powered.sh
.gitlab-ci/container/arm64.config
.gitlab-ci/container/baremetal_build.sh
.gitlab-ci/container/build-kernel.sh
.gitlab-ci/container/create-rootfs.sh
.gitlab-ci/container/debian/arm_test.sh
.gitlab-ci/container/lava_build.sh
.gitlab-ci/image-tags.yml
src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt
src/gallium/drivers/softpipe/ci/softpipe-fails.txt
src/gallium/drivers/zink/ci/zink-lvp-fails.txt

index b0a1c67..a5be307 100644 (file)
@@ -430,7 +430,7 @@ debian/x86_test-gl:
   extends: .use-debian/x86_test-base
   variables:
     FDO_DISTRIBUTION_EXEC: 'env KERNEL_URL=${KERNEL_URL} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
-    KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.16-for-mesa-ci-bd8b344492bfd/linux-v5.16-for-mesa-ci-bd8b344492bfd.tar.bz2"
+    KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.16-for-mesa-ci-991fec6622591/linux-v5.16-for-mesa-ci-991fec6622591.tar.bz2"
     MESA_IMAGE_TAG: &debian-x86_test-gl ${DEBIAN_X86_TEST_GL_TAG}
 
 # Debian 11 based x86 test image for VK
diff --git a/.gitlab-ci/bare-metal/cisco-2960-poe-off.sh b/.gitlab-ci/bare-metal/cisco-2960-poe-off.sh
new file mode 100755 (executable)
index 0000000..2234ee7
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -z "$BM_POE_INTERFACE" ]; then
+    echo "Must supply the PoE Interface to power down"
+    exit 1
+fi
+
+if [ -z "$BM_POE_ADDRESS" ]; then
+    echo "Must supply the PoE Switch host"
+    exit 1
+fi
+
+SNMP_KEY="1.3.6.1.4.1.9.9.402.1.2.1.1.1.$BM_POE_INTERFACE"
+SNMP_ON="i 1"
+SNMP_OFF="i 4"
+
+snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_OFF
index f213bce..4bd0057 100755 (executable)
@@ -95,11 +95,25 @@ fi
 
 # Install kernel modules (it could be either in /lib/modules or
 # /usr/lib/modules, but we want to install in the latter)
-[ -d $BM_BOOTFS/usr/lib/modules ] && rsync -a --delete $BM_BOOTFS/usr/lib/modules/ /nfs/usr/lib/modules/
-[ -d $BM_BOOTFS/lib/modules ] && rsync -a --delete $BM_BOOTFS/lib/modules/ /nfs/usr/lib/modules/
+[ -d $BM_BOOTFS/usr/lib/modules ] && rsync -a $BM_BOOTFS/usr/lib/modules/ /nfs/usr/lib/modules/
+[ -d $BM_BOOTFS/lib/modules ] && rsync -a $BM_BOOTFS/lib/modules/ /nfs/lib/modules/
 
 # Install kernel image + bootloader files
-rsync -a --delete $BM_BOOTFS/boot/ /tftp/
+rsync -aL --delete $BM_BOOTFS/boot/ /tftp/
+
+# Set up the pxelinux config for Jetson Nano
+mkdir -p /tftp/pxelinux.cfg
+cat <<EOF >/tftp/pxelinux.cfg/default-arm-tegra210-p3450-0000
+PROMPT 0
+TIMEOUT 30
+DEFAULT primary
+MENU TITLE jetson nano boot options
+LABEL primary
+      MENU LABEL CI kernel on TFTP
+      LINUX Image
+      FDT tegra210-p3450-0000.dtb
+      APPEND \${cbootargs} $BM_CMDLINE
+EOF
 
 # Create the rootfs in the NFS directory
 mkdir -p /nfs/results
index 5da8a90..5ce3715 100644 (file)
@@ -157,3 +157,16 @@ CONFIG_HW_RANDOM_MTK=y
 CONFIG_MTK_DEVAPC=y
 CONFIG_PWM_MTK_DISP=y
 CONFIG_MTK_CMDQ=y
+
+# For nouveau.  Note that DRM must be a module so that it's loaded after NFS is up to provide the firmware.
+CONFIG_ARCH_TEGRA=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_TEGRA=m
+CONFIG_R8169=y
+CONFIG_STAGING=y
+CONFIG_DRM_TEGRA_STAGING=y
+CONFIG_TEGRA_HOST1X=y
+CONFIG_ARM_TEGRA_DEVFREQ=y
+CONFIG_TEGRA_SOCTHERM=y
+CONFIG_DRM_TEGRA_DEBUG=y
+CONFIG_PWM_TEGRA=y
index 5752287..cd11d63 100644 (file)
@@ -25,7 +25,10 @@ if [[ $arch == "arm64" ]]; then
     wget ${ARTIFACTS_URL}/Image.gz
     wget ${ARTIFACTS_URL}/cheza-kernel
 
-    DEVICE_TREES="apq8016-sbc.dtb apq8096-db820c.dtb"
+    DEVICE_TREES=""
+    DEVICE_TREES="$DEVICE_TREES apq8016-sbc.dtb"
+    DEVICE_TREES="$DEVICE_TREES apq8096-db820c.dtb"
+    DEVICE_TREES="$DEVICE_TREES tegra210-p3450-0000.dtb"
 
     for DTB in $DEVICE_TREES; do
         wget ${ARTIFACTS_URL}/$DTB
index 7367924..426ecb7 100644 (file)
@@ -28,7 +28,7 @@ if [[ -n ${DEVICE_TREES} ]]; then
     cp ${DEVICE_TREES} /lava-files/.
 fi
 
-if [[ ${DEBIAN_ARCH} = "amd64" ]]; then
+if [[ ${DEBIAN_ARCH} = "amd64" || ${DEBIAN_ARCH} = "arm64" ]]; then
     make modules
     INSTALL_MOD_PATH=/lava-files/rootfs-${DEBIAN_ARCH}/ make modules_install
 fi
index 44f983a..67ede7b 100644 (file)
@@ -4,6 +4,7 @@ set -ex
 
 if [ $DEBIAN_ARCH = arm64 ]; then
     ARCH_PACKAGES="firmware-qcom-media
+                   firmware-linux-nonfree
                    libfontconfig1
                    libgl1
                    libglu1-mesa
index eedb88e..a420dbb 100644 (file)
@@ -31,3 +31,9 @@ arch=armhf . .gitlab-ci/container/baremetal_build.sh
 # This firmware file from Debian bullseye causes hangs
 wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a530_pfp.fw?id=d5f9eea5a251d43412b07f5295d03e97b89ac4a5 \
      -O /rootfs-arm64/lib/firmware/qcom/a530_pfp.fw
+
+mkdir -p /baremetal-files/jetson-nano/boot/
+ln -s \
+    /baremetal-files/Image \
+    /baremetal-files/tegra210-p3450-0000.dtb \
+    /baremetal-files/jetson-nano/boot/
index c9b5871..d3cfecb 100755 (executable)
@@ -34,6 +34,7 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
     DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb"
     DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb"
     DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dtb"
     DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots.dtb"
     KERNEL_IMAGE_NAME="Image"
 elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
index 30606a2..f272e4c 100644 (file)
@@ -8,11 +8,11 @@ variables:
    DEBIAN_X86_TEST_BASE_IMAGE: "debian/x86_test-base"
 
    DEBIAN_X86_TEST_IMAGE_PATH: "debian/x86_test-gl"
-   DEBIAN_X86_TEST_GL_TAG: "2022-02-21-libdrm"
+   DEBIAN_X86_TEST_GL_TAG: "2022-03-03-nouveau"
    DEBIAN_X86_TEST_VK_TAG: "2022-02-21-libdrm"
 
    FEDORA_X86_BUILD_TAG: "2022-02-21-libdrm"
-   KERNEL_ROOTFS_TAG: "2022-02-23-noxz"
+   KERNEL_ROOTFS_TAG: "2022-03-03-nouveau"
 
    WINDOWS_X64_BUILD_PATH: "windows/x64_build"
    WINDOWS_X64_BUILD_TAG: "2022-20-02-base_split"
index 7c9f039..a96983e 100644 (file)
@@ -255,3 +255,5 @@ spec@glsl-4.00@execution@conversion@vert-conversion-explicit-dvec2-vec2,Fail
 spec@glsl-4.00@execution@conversion@vert-conversion-explicit-dvec3-vec3,Fail
 spec@glsl-4.00@execution@conversion@vert-conversion-explicit-dvec4-vec4,Fail
 spec@glsl-4.50@execution@ssbo-atomiccompswap-int,Fail
+
+spec@khr_texture_compression_astc@basic-gles,Fail
index d2bd01f..a564340 100644 (file)
@@ -1309,6 +1309,7 @@ spec@khr_texture_compression_astc@array-gl@5x5 Block Dim,Fail
 spec@khr_texture_compression_astc@array-gles,Fail
 spec@khr_texture_compression_astc@array-gles@12x12 Block Dim,Fail
 spec@khr_texture_compression_astc@array-gles@5x5 Block Dim,Fail
+spec@khr_texture_compression_astc@basic-gles,Fail
 spec@khr_texture_compression_astc@miptree-gl ldr,Fail
 spec@khr_texture_compression_astc@miptree-gl ldr@LDR Profile,Fail
 spec@khr_texture_compression_astc@miptree-gl srgb,Fail
index b616876..b091f60 100644 (file)
@@ -351,6 +351,7 @@ spec@arb_shader_image_load_store@invalid@imageLoad/incompatible format test/imag
 spec@khr_texture_compression_astc@array-gles,Fail
 spec@khr_texture_compression_astc@array-gles@12x12 Block Dim,Fail
 spec@khr_texture_compression_astc@array-gles@5x5 Block Dim,Fail
+spec@khr_texture_compression_astc@basic-gles,Fail
 spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Fail
 spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail
 spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageStore,Fail