nir: Propagate *2*16 conversions into vectors
[mesa.git] / .gitlab-ci / container / lava_arm.sh
1 #!/bin/bash
2
3 set -e
4 set -o xtrace
5
6 if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
7 GCC_ARCH="aarch64-linux-gnu"
8 KERNEL_ARCH="arm64"
9 DEFCONFIG="arch/arm64/configs/defconfig"
10 DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
11 KERNEL_IMAGE_NAME="Image"
12 else
13 GCC_ARCH="arm-linux-gnueabihf"
14 KERNEL_ARCH="arm"
15 DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
16 DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
17 KERNEL_IMAGE_NAME="zImage"
18 fi
19
20 # Determine if we're in a cross build.
21 if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then
22 EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt"
23 EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake"
24
25 export ARCH=${KERNEL_ARCH}
26 export CROSS_COMPILE="${GCC_ARCH}-"
27 fi
28
29 ############### Build dEQP runner
30 . .gitlab-ci/build-cts-runner.sh
31 mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
32 mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
33
34
35 ############### Build dEQP
36 STRIP_CMD="${GCC_ARCH}-strip"
37 if [ -n "$INCLUDE_VK_CTS" ]; then
38 DEQP_TARGET=surfaceless . .gitlab-ci/build-deqp-vk.sh
39 else
40 . .gitlab-ci/build-deqp-gl.sh
41 fi
42
43 mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
44
45
46 ############### Build apitrace
47 . .gitlab-ci/build-apitrace.sh
48 mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
49 mv /apitrace/build /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
50 rm -rf /apitrace
51
52 mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/waffle
53 mv /waffle/build /lava-files/rootfs-${DEBIAN_ARCH}/waffle
54 rm -rf /waffle
55
56
57 ############### Build renderdoc
58 EXTRA_CMAKE_ARGS+=" -DENABLE_XCB=false"
59 . .gitlab-ci/build-renderdoc.sh
60 mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
61 mv /renderdoc/build /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
62 rm -rf /renderdoc
63
64
65 ############### Cross-build kernel
66 mkdir -p kernel
67 wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
68 pushd kernel
69 ./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
70 make ${KERNEL_IMAGE_NAME} dtbs
71 for image in ${KERNEL_IMAGE_NAME}; do
72 cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
73 done
74 cp ${DEVICE_TREES} /lava-files/.
75
76
77 if [[ ${DEBIAN_ARCH} = "arm64" ]] && which mkimage > /dev/null; then
78 make Image.lzma
79 mkimage \
80 -f auto \
81 -A arm \
82 -O linux \
83 -d arch/arm64/boot/Image.lzma \
84 -C lzma\
85 -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
86 /lava-files/cheza-kernel
87 fi
88
89 popd
90 rm -rf kernel
91
92 ############### Create rootfs
93 set +e
94 debootstrap \
95 --variant=minbase \
96 --arch=${DEBIAN_ARCH} \
97 --components main,contrib,non-free \
98 buster \
99 /lava-files/rootfs-${DEBIAN_ARCH}/ \
100 http://deb.debian.org/debian
101
102 cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
103 set -e
104
105 cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
106 chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
107 rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
108
109 if [ ${DEBIAN_ARCH} = arm64 ]; then
110 # Pull down a specific build of qcomlt/release/qcomlt-5.4 8c79b3d12355
111 # ("Merge tag 'v5.4.23' into release/qcomlt-5.4"), where I used the
112 # .config from
113 # http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/457/config-5.4.0-qcomlt-arm64
114 # with the following merged in:
115 #
116 # CONFIG_DRM=y
117 # CONFIG_DRM_MSM=y
118 # CONFIG_ATL1C=y
119 #
120 # Reason: 5.5 has a big stack of oopses and warns on db820c. 4.14-5.4
121 # linaro kernel binaries (see above .config link) have these as modules
122 # and distributed the modules only in the debian system, not the initrd,
123 # so they're very hard to extract (involving simg2img and loopback
124 # mounting). 4.11 is missing d72fea538fe6 ("drm/msm: Fix the check for
125 # the command size") so it can't actually run fredreno. qcomlt-4.14 is
126 # unstable at boot (~10% instaboot rate). The 5.4 qcomlt kernel with msm
127 # built in seems like the easiest way to go.
128 wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/Image.gz -O Image.gz \
129 -O /lava-files/db820c-kernel
130 wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/apq8096-db820c.dtb \
131 -O /lava-files/db820c.dtb
132
133 # Make a gzipped copy of the Image for db410c.
134 gzip -k /lava-files/Image
135
136 # Add missing a630 firmware, added to debian packge in apr 2020
137 wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_gmu.bin \
138 -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_gmu.bin
139 wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_sqe.fw \
140 -O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_sqe.fw
141 fi