From 0817f31320ffecbe159c97e091d3a3ea9fecb03a Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Tue, 13 Dec 2022 11:45:15 -0800 Subject: machine: Refactor mali400 support Define a new MACHINE_FEATURE called mali400 that is used to determine if the hardware has a mali400. Define a new DISTRO_FEATURE called libmali, as well as one called lima to indicated which configuration to build. Both the MACHINE_FEATURE and DISTRO_FEATURE must be enabled to activate the new code. This means any recipe that gets libmali-xlnx is expected to be: PACKAGE_ARCH = "${MACHINE_ARCH}" Signed-off-by: Mark Hatle --- .../machine/include/machine-xilinx-default.inc | 23 ++++++++++++++++------ .../conf/machine/include/soc-zynqmp.inc | 11 +++++------ 2 files changed, 22 insertions(+), 12 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc b/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc index 38996384..dc6ab05c 100644 --- a/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc +++ b/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc @@ -25,12 +25,23 @@ UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" UBOOT_ELF ?= "u-boot" UBOOT_ELF:aarch64 ?= "u-boot.elf" -#Hardware accelaration -PREFERRED_PROVIDER_virtual/libgles1:mali400 = "libmali-xlnx" -PREFERRED_PROVIDER_virtual/libgles2:mali400 = "libmali-xlnx" -PREFERRED_PROVIDER_virtual/egl:mali400 = "libmali-xlnx" -PREFERRED_PROVIDER_virtual/libgl:mali400 = "mesa-gl" -PREFERRED_PROVIDER_virtual/mesa:mali400 = "mesa-gl" +# libmali is selected by DISTRO_FEATURE of libmali & MACHINE_FEATURES of mali400 +# lima is selected by DISTRO_FEATURE != libmali & MACHINE_FEATURES of mali400 +# default mesa because otherwise +def xlnx_is_libmali_enabled(d): + if bb.utils.contains('MACHINE_FEATURES', 'mali400', '1', '', d) == '1': + if bb.utils.contains('DISTRO_FEATURES', 'libmali', '1', '', d) == '1': + return True + return False + +# libmali requires certain preferred providers to be selected +PREFERRED_PROVIDER_virtual/egl ?= "${@'libmali-xlnx' if xlnx_is_libmali_enabled(d) else 'mesa'}" +PREFERRED_PROVIDER_virtual/libgl ?= "${@'mesa-gl' if xlnx_is_libmali_enabled(d) else 'mesa'}" +PREFERRED_PROVIDER_virtual/libgles1 ?= "${@'libmali-xlnx' if xlnx_is_libmali_enabled(d) else 'mesa'}" +PREFERRED_PROVIDER_virtual/libgles2 ?= "${@'libmali-xlnx' if xlnx_is_libmali_enabled(d) else 'mesa'}" +PREFERRED_PROVIDER_virtual/libgles3 ?= "${@'NOT_SUPPORTED' if xlnx_is_libmali_enabled(d) else 'mesa'}" +PREFERRED_PROVIDER_virtual/libgbm ?= "${@'libmali-xlnx' if xlnx_is_libmali_enabled(d) else 'mesa'}" +PREFERRED_PROVIDER_virtual/mesa ?= "${@'mesa-gl' if xlnx_is_libmali_enabled(d) else 'mesa'}" XSERVER ?= " \ xserver-xorg \ diff --git a/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc b/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc index 5331c17a..95ac54e2 100644 --- a/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc +++ b/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc @@ -14,12 +14,11 @@ VCU_MACHINE_FEATURE = "" VCU_MACHINE_FEATURE:zynqmp-ev = " vcu" MACHINE_FEATURES .= "${VCU_MACHINE_FEATURE}" -GRAPHICSOVERRIDES = "" - -# Mali400: override is only used with the ARM mali driver, not the lima driver -GRAPHICSOVERRIDES = "${@bb.utils.contains('MACHINE_FEATURES', 'mali400', 'mali400:', '', d)}" - -MACHINEOVERRIDES =. "${GRAPHICSOVERRIDES}" +# Add mali400 a.k.a Mali Utgard, "ev" and "eg" devices +MALI_MACHINE_FEATURE = "" +MALI_MACHINE_FEATURE:zynqmp-eg = " mali400" +MALI_MACHINE_FEATURE:zynqmp-ev = " mali400" +MACHINE_FEATURES .= "${MALI_MACHINE_FEATURE}" require xilinx-soc-family.inc -- cgit v1.2.3-54-g00ecf