meson: auto-enable etnaviv on arm, arc, mips and loongarch architectures

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>
main
Sui Jingfeng 2022-01-17 17:36:50 +08:00 committed by Eric Engestrom
parent d4bb19e2c4
commit 33f0009de5
3 changed files with 10 additions and 6 deletions

View File

@ -213,7 +213,7 @@ x86_64-freebsd-container_prep:
# the workspace to see details about the failed tests. # the workspace to see details about the failed tests.
- | - |
set +e set +e
/app/vmctl exec "pkg info; cd $CI_PROJECT_NAME ; meson build --auto-features=enabled -D nouveau=disabled -D valgrind=disabled && ninja -C build" /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 set -ex
scp -r vm:$CI_PROJECT_NAME/build/meson-logs . scp -r vm:$CI_PROJECT_NAME/build/meson-logs .
/app/vmctl exec "ninja -C $CI_PROJECT_NAME/build install" /app/vmctl exec "ninja -C $CI_PROJECT_NAME/build install"

View File

@ -165,11 +165,16 @@ summary('Tegra', with_tegra)
with_etnaviv = false with_etnaviv = false
_etnaviv = get_option('etnaviv') _etnaviv = get_option('etnaviv')
if _etnaviv.enabled() if not _etnaviv.disabled()
if not with_atomics if _etnaviv.enabled() and not with_atomics
error('libdrm_etnaviv requires atomics.') error('libdrm_etnaviv requires atomics.')
endif endif
with_etnaviv = true with_etnaviv = _etnaviv.enabled() or (
with_atomics and [
'loongarch64', 'mips', 'mips64',
'arm', 'aarch64', 'arc',
].contains(host_machine.cpu_family())
)
endif endif
summary('Etnaviv', with_etnaviv) summary('Etnaviv', with_etnaviv)

View File

@ -74,8 +74,7 @@ option(
option( option(
'etnaviv', 'etnaviv',
type : 'feature', type : 'feature',
value : 'disabled', description : '''Enable support for etnaviv's KMS API.''',
description : '''Enable support for etnaviv's experimental KMS API.''',
) )
option( option(
'cairo-tests', 'cairo-tests',