mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-09 02:48:04 +02:00
There is a Vivante GC1000 gpu in LS2K1000 and LS7A1000. LS7A1000 is a bridge chip made by Loongson corporation which act as north and/or south bridge of loongson's desktop and server level processor. It is equivalent to RS780E or something like that. In fact, the company use RS780E as bridge of LS3A3000 at its early stage, but as RS780E is out of stock long long time ago, the company have to made one by themself. More details can be read from its user manual[1]. This bridge chip typically use with LS3A3000, LS3A4000 and LS3A5000. LS3A3000 is 4 core 1.45gHz mips64r2 compatible cpu. LS3A4000 is 4 core 1.8gHz mips64r5 compatible cpu. LS3A5000 is 4 core 2.5gHz loongarch cpu, the company acclaim that loongarch a new archtecture with its instruction set is released[2]. LS2K1000 is a double core 1.0Ghz mips64r2 compatible SoC[3]. we need to enable it to test and developing driver on above listed archtecture. [1] https://loongson.github.io/LoongArch-Documentation/Loongson-7A1000-usermanual-EN.html [2] https://loongson.github.io/LoongArch-Documentation/Loongson-3A5000-usermanual-EN.html [3] https://wiki.debian.org/InstallingDebianOn/Lemote/Loongson2K1000 Signed-off-by: Sui Jingfeng <15330273260@189.cn> [Eric: rebase over meson changes, add ARM & ARC architectures, and drop "experimental" from the description] Signed-off-by: Eric Engestrom <eric@engestrom.ch>
265 lines
6.8 KiB
YAML
265 lines
6.8 KiB
YAML
# This is the tag of the docker image used for the build jobs. If the
|
|
# image doesn't exist yet, the containers stage generates it.
|
|
#
|
|
# In order to generate a new image, one should generally change the tag.
|
|
# While removing the image from the registry would also work, that's not
|
|
# recommended except for ephemeral images during development: Replacing
|
|
# an image after a significant amount of time might pull in newer
|
|
# versions of gcc/clang or other packages, which might break the build
|
|
# with older commits using the same tag.
|
|
#
|
|
# After merging a change resulting in generating a new image to the
|
|
# main repository, it's recommended to remove the image from the source
|
|
# repository's container registry, so that the image from the main
|
|
# repository's registry will be used there as well.
|
|
.templates_sha: &template_sha 567700e483aabed992d0a4fea84994a0472deff6 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
|
|
|
include:
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: *template_sha
|
|
file:
|
|
- '/templates/debian.yml'
|
|
- '/templates/freebsd.yml'
|
|
- '/templates/ci-fairy.yml'
|
|
|
|
variables:
|
|
FDO_UPSTREAM_REPO: mesa/drm
|
|
FDO_REPO_SUFFIX: "$BUILD_OS/$BUILD_ARCH"
|
|
|
|
stages:
|
|
- "Base container"
|
|
- "Build"
|
|
|
|
.ci-rules:
|
|
rules:
|
|
- when: on_success
|
|
|
|
# CONTAINERS
|
|
|
|
.os-debian:
|
|
variables:
|
|
BUILD_OS: debian
|
|
FDO_DISTRIBUTION_VERSION: buster
|
|
FDO_DISTRIBUTION_PACKAGES: 'build-essential docbook-xsl libatomic-ops-dev libcairo2-dev libcunit1-dev libpciaccess-dev meson ninja-build pkg-config python3 python3-pip python3-wheel python3-setuptools python3-docutils valgrind'
|
|
FDO_DISTRIBUTION_EXEC: 'pip3 install meson==0.53.0'
|
|
# bump this tag every time you change something which requires rebuilding the
|
|
# base image
|
|
FDO_DISTRIBUTION_TAG: "2022-08-22.0"
|
|
|
|
.debian-x86_64:
|
|
extends:
|
|
- .os-debian
|
|
variables:
|
|
BUILD_ARCH: "x86-64"
|
|
|
|
.debian-aarch64:
|
|
extends:
|
|
- .os-debian
|
|
variables:
|
|
BUILD_ARCH: "aarch64"
|
|
|
|
.debian-armv7:
|
|
extends:
|
|
- .os-debian
|
|
variables:
|
|
BUILD_ARCH: "armv7"
|
|
|
|
.os-freebsd:
|
|
variables:
|
|
BUILD_OS: freebsd
|
|
FDO_DISTRIBUTION_VERSION: "13.0"
|
|
FDO_DISTRIBUTION_PACKAGES: 'meson ninja pkgconf libpciaccess libpthread-stubs py39-docutils cairo'
|
|
# bump this tag every time you change something which requires rebuilding the
|
|
# base image
|
|
FDO_DISTRIBUTION_TAG: "2022-08-22.0"
|
|
|
|
.freebsd-x86_64:
|
|
extends:
|
|
- .os-freebsd
|
|
variables:
|
|
BUILD_ARCH: "x86_64"
|
|
|
|
# Build our base container image, which contains the core distribution, the
|
|
# toolchain, and all our build dependencies. This will be reused in the build
|
|
# stage.
|
|
x86_64-debian-container_prep:
|
|
extends:
|
|
- .ci-rules
|
|
- .debian-x86_64
|
|
- .fdo.container-build@debian
|
|
stage: "Base container"
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
|
|
aarch64-debian-container_prep:
|
|
extends:
|
|
- .ci-rules
|
|
- .debian-aarch64
|
|
- .fdo.container-build@debian
|
|
tags:
|
|
- aarch64
|
|
stage: "Base container"
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
|
|
armv7-debian-container_prep:
|
|
extends:
|
|
- .ci-rules
|
|
- .debian-armv7
|
|
- .fdo.container-build@debian
|
|
tags:
|
|
- aarch64
|
|
stage: "Base container"
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
FDO_BASE_IMAGE: "arm32v7/debian:$FDO_DISTRIBUTION_VERSION"
|
|
|
|
x86_64-freebsd-container_prep:
|
|
extends:
|
|
- .ci-rules
|
|
- .freebsd-x86_64
|
|
- .fdo.qemu-build@freebsd@x86_64
|
|
stage: "Base container"
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
|
|
# Core build environment.
|
|
.build-env:
|
|
variables:
|
|
MESON_BUILD_TYPE: "-Dbuildtype=debug -Doptimization=0 -Db_sanitize=address,undefined"
|
|
|
|
# OS/architecture-specific variants
|
|
.build-env-debian-x86_64:
|
|
extends:
|
|
- .fdo.suffixed-image@debian
|
|
- .debian-x86_64
|
|
- .build-env
|
|
needs:
|
|
- job: x86_64-debian-container_prep
|
|
artifacts: false
|
|
|
|
.build-env-debian-aarch64:
|
|
extends:
|
|
- .fdo.suffixed-image@debian
|
|
- .debian-aarch64
|
|
- .build-env
|
|
variables:
|
|
# At least with the versions we have, the LSan runtime makes fork unusably
|
|
# slow on AArch64, which is bad news since the test suite decides to fork
|
|
# for every single subtest. For now, in order to get AArch64 builds and
|
|
# tests into CI, just assume that we're not going to leak any more on
|
|
# AArch64 than we would on ARMv7 or x86-64.
|
|
ASAN_OPTIONS: "detect_leaks=0"
|
|
tags:
|
|
- aarch64
|
|
needs:
|
|
- job: aarch64-debian-container_prep
|
|
artifacts: false
|
|
|
|
.build-env-debian-armv7:
|
|
extends:
|
|
- .fdo.suffixed-image@debian
|
|
- .debian-armv7
|
|
- .build-env
|
|
tags:
|
|
- aarch64
|
|
needs:
|
|
- job: armv7-debian-container_prep
|
|
artifacts: false
|
|
|
|
.build-env-freebsd-x86_64:
|
|
variables:
|
|
# Compiling with ASan+UBSan appears to trigger an infinite loop in the
|
|
# compiler shipped with FreeBSD 13.0, so we only use UBSan here.
|
|
# Additionally, sanitizers can't be used with b_lundef on FreeBSD.
|
|
MESON_BUILD_TYPE: "-Dbuildtype=debug -Db_sanitize=undefined -Db_lundef=false"
|
|
extends:
|
|
- .fdo.suffixed-image@freebsd
|
|
- .freebsd-x86_64
|
|
- .build-env
|
|
needs:
|
|
- job: x86_64-freebsd-container_prep
|
|
artifacts: false
|
|
|
|
# BUILD
|
|
|
|
.do-build:
|
|
extends:
|
|
- .ci-rules
|
|
stage: "Build"
|
|
variables:
|
|
GIT_DEPTH: 10
|
|
script:
|
|
- meson build
|
|
--auto-features=enabled
|
|
-D udev=true
|
|
- ninja -C build
|
|
- ninja -C build test
|
|
- DESTDIR=$PWD/install ninja -C build install
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- build/meson-logs/*
|
|
|
|
.do-build-qemu:
|
|
extends:
|
|
- .ci-rules
|
|
stage: "Build"
|
|
script:
|
|
# Start the VM and copy our workspace to the VM
|
|
- /app/vmctl start
|
|
- scp -r $PWD "vm:"
|
|
# The `set +e is needed to ensure that we always copy the meson logs back to
|
|
# the workspace to see details about the failed tests.
|
|
- |
|
|
set +e
|
|
/app/vmctl exec "pkg info; cd $CI_PROJECT_NAME ; meson build --auto-features=enabled -D etnaviv=disabled -D nouveau=disabled -D valgrind=disabled && ninja -C build"
|
|
set -ex
|
|
scp -r vm:$CI_PROJECT_NAME/build/meson-logs .
|
|
/app/vmctl exec "ninja -C $CI_PROJECT_NAME/build install"
|
|
mkdir -p $PREFIX && scp -r vm:$PREFIX/ $PREFIX/
|
|
# Finally, shut down the VM.
|
|
- /app/vmctl stop
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- build/meson-logs/*
|
|
|
|
# Full build and test.
|
|
x86_64-debian-build:
|
|
extends:
|
|
- .build-env-debian-x86_64
|
|
- .do-build
|
|
|
|
aarch64-debian-build:
|
|
extends:
|
|
- .build-env-debian-aarch64
|
|
- .do-build
|
|
|
|
armv7-debian-build:
|
|
extends:
|
|
- .build-env-debian-armv7
|
|
- .do-build
|
|
|
|
# Daily build
|
|
meson-arch-daily:
|
|
rules:
|
|
- if: '$SCHEDULE == "arch-daily"'
|
|
when: on_success
|
|
- when: never
|
|
image: archlinux/archlinux:base-devel
|
|
before_script:
|
|
- pacman -Syu --noconfirm --needed
|
|
cairo
|
|
cunit
|
|
libatomic_ops
|
|
libpciaccess
|
|
meson
|
|
valgrind
|
|
python-docutils
|
|
extends: .do-build
|
|
|
|
x86_64-freebsd-build:
|
|
extends:
|
|
- .build-env-freebsd-x86_64
|
|
- .do-build-qemu
|