Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/ci: Add jobs to validate devicetrees

Add jobs to run dt_binding_check and dtbs_check. If warnings are seen,
exit with a non-zero error code while configuring them as warning in
the GitLab CI pipeline.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Acked-by: Helen Koike <helen.fornazier@gmail.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250623085033.39680-2-vignesh.raman@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>

authored by

Vignesh Raman and committed by
Maxime Ripard
deac70ab a629feab

+106
+50
drivers/gpu/drm/ci/check-devicetrees.yml
··· 1 + .dt-check-base: 2 + stage: static-checks 3 + timeout: "30m" 4 + variables: 5 + GIT_DEPTH: 1 6 + FF_USE_NEW_BASH_EVAL_STRATEGY: 'true' 7 + SCHEMA: "display:gpu" 8 + VENV_PATH: "/tmp/dtcheck-venv" 9 + before_script: 10 + - apt-get update -qq 11 + # Minimum supported version of LLVM for building x86 kernels is 15.0.0. 12 + # In mesa-ci containers, LLVM_VERSION is defined as a container-level property and is currently set to 19. 13 + - apt-get install -y --no-install-recommends clang-${LLVM_VERSION} lld-${LLVM_VERSION} llvm-${LLVM_VERSION} python3-dev python3-venv python3-pip yamllint 14 + - python3 -m venv "${VENV_PATH}" 15 + - source "${VENV_PATH}/bin/activate" 16 + - pip3 install dtschema 17 + script: 18 + - drivers/gpu/drm/ci/${SCRIPT_NAME} 19 + artifacts: 20 + when: on_failure 21 + paths: 22 + - ${ARTIFACT_FILE} 23 + allow_failure: 24 + exit_codes: 25 + - 102 26 + 27 + dtbs-check:arm32: 28 + extends: 29 + - .build:arm32 30 + - .dt-check-base 31 + variables: 32 + SCRIPT_NAME: "dtbs-check.sh" 33 + ARTIFACT_FILE: "dtbs-check.log" 34 + 35 + dtbs-check:arm64: 36 + extends: 37 + - .build:arm64 38 + - .dt-check-base 39 + variables: 40 + SCRIPT_NAME: "dtbs-check.sh" 41 + ARTIFACT_FILE: "dtbs-check.log" 42 + 43 + dt-binding-check: 44 + extends: 45 + - .build 46 + - .use-debian/x86_64_build 47 + - .dt-check-base 48 + variables: 49 + SCRIPT_NAME: "dt-binding-check.sh" 50 + ARTIFACT_FILE: "dt-binding-check.log"
+19
drivers/gpu/drm/ci/dt-binding-check.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: MIT 3 + 4 + set -euxo pipefail 5 + 6 + VENV_PATH="${VENV_PATH:-/tmp/dtschema-venv}" 7 + source "${VENV_PATH}/bin/activate" 8 + 9 + if ! make -j"${FDO_CI_CONCURRENT:-4}" dt_binding_check \ 10 + DT_SCHEMA_FILES="${SCHEMA:-}" 2>dt-binding-check.log; then 11 + echo "ERROR: 'make dt_binding_check' failed. Please check dt-binding-check.log for details." 12 + exit 1 13 + fi 14 + 15 + if [[ -s dt-binding-check.log ]]; then 16 + echo "WARNING: dt_binding_check reported warnings. Please check dt-binding-check.log" \ 17 + "for details." 18 + exit 102 19 + fi
+22
drivers/gpu/drm/ci/dtbs-check.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: MIT 3 + 4 + set -euxo pipefail 5 + 6 + : "${KERNEL_ARCH:?ERROR: KERNEL_ARCH must be set}" 7 + : "${LLVM_VERSION:?ERROR: LLVM_VERSION must be set}" 8 + 9 + ./drivers/gpu/drm/ci/setup-llvm-links.sh 10 + 11 + make LLVM=1 ARCH="${KERNEL_ARCH}" defconfig 12 + 13 + if ! make -j"${FDO_CI_CONCURRENT:-4}" ARCH="${KERNEL_ARCH}" LLVM=1 dtbs_check \ 14 + DT_SCHEMA_FILES="${SCHEMA:-}" 2>dtbs-check.log; then 15 + echo "ERROR: 'make dtbs_check' failed. Please check dtbs-check.log for details." 16 + exit 1 17 + fi 18 + 19 + if [[ -s dtbs-check.log ]]; then 20 + echo "WARNING: dtbs_check reported warnings. Please check dtbs-check.log for details." 21 + exit 102 22 + fi
+2
drivers/gpu/drm/ci/gitlab-ci.yml
··· 110 110 - drivers/gpu/drm/ci/static-checks.yml 111 111 - drivers/gpu/drm/ci/build.yml 112 112 - drivers/gpu/drm/ci/test.yml 113 + - drivers/gpu/drm/ci/check-devicetrees.yml 113 114 - 'https://gitlab.freedesktop.org/gfx-ci/lab-status/-/raw/main/lab-status.yml' 114 115 115 116 ··· 120 119 - git-archive 121 120 - build-for-tests 122 121 - build-only 122 + - static-checks 123 123 - code-validation 124 124 - amdgpu 125 125 - i915
+13
drivers/gpu/drm/ci/setup-llvm-links.sh
··· 1 + #!/usr/bin/env bash 2 + # SPDX-License-Identifier: MIT 3 + set -euo pipefail 4 + 5 + ln -svf "$(which clang++-${LLVM_VERSION})" /usr/bin/clang++ 6 + ln -svf "$(which clang-${LLVM_VERSION})" /usr/bin/clang 7 + ln -svf "$(which ld.lld-${LLVM_VERSION})" /usr/bin/ld.lld 8 + ln -svf "$(which lld-${LLVM_VERSION})" /usr/bin/lld 9 + ln -svf "$(which llvm-ar-${LLVM_VERSION})" /usr/bin/llvm-ar 10 + ln -svf "$(which llvm-nm-${LLVM_VERSION})" /usr/bin/llvm-nm 11 + ln -svf "$(which llvm-objcopy-${LLVM_VERSION})" /usr/bin/llvm-objcopy 12 + ln -svf "$(which llvm-readelf-${LLVM_VERSION})" /usr/bin/llvm-readelf 13 + ln -svf "$(which llvm-strip-${LLVM_VERSION})" /usr/bin/llvm-strip