Skip to content

Commit deac70a

Browse files
vigneshramanmripard
authored andcommitted
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>
1 parent a629fea commit deac70a

5 files changed

Lines changed: 106 additions & 0 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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

drivers/gpu/drm/ci/dtbs-check.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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

drivers/gpu/drm/ci/gitlab-ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ include:
110110
- drivers/gpu/drm/ci/static-checks.yml
111111
- drivers/gpu/drm/ci/build.yml
112112
- drivers/gpu/drm/ci/test.yml
113+
- drivers/gpu/drm/ci/check-devicetrees.yml
113114
- 'https://gitlab.freedesktop.org/gfx-ci/lab-status/-/raw/main/lab-status.yml'
114115

115116

@@ -119,6 +120,7 @@ stages:
119120
- git-archive
120121
- build-for-tests
121122
- build-only
123+
- static-checks
122124
- code-validation
123125
- amdgpu
124126
- i915
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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

0 commit comments

Comments
 (0)