Add i.MX8MQ EVK support 82/24482/3
authorScott Murray <scott.murray@konsulko.com>
Thu, 7 May 2020 19:55:04 +0000 (15:55 -0400)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tue, 12 May 2020 23:34:44 +0000 (23:34 +0000)
Add imx8mqevk-viv machine template for i.MX8MQ EVK which uses the
default Vivante driver configuration in meta-freescale with the
new community linux-fslc-imx kernel.  The following additional changes
have been made to support this:
- A linux-fslc-imx bbappend has been added to pull in the AGL kernel
  configuration, and a imx8mq-evkb config fragment has been added to
  enable the required Wifi driver for the updated EVKB board.
- Stale qtbase and weston-init bbappends/patches have been removed
  from meta-agl-bsp/meta-freescale-layer.
- The meta-agl-profile-graphical Weston 8.0.0 bbappend has been
  renamed to 8.0.% so the wildcard will apply it to meta-freescale's
  weston_8.0.0.imx recipe.

Known issues:
- The required PipeWire configuration for the onboard audio needs
  further investigation.

Bug-AGL: SPEC-3258

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I4ea5437ef0ea8bedb9dd2157f2822ff25ee56cff

meta-agl-bsp/conf/include/agl_imx8mqevk-viv.inc [new file with mode: 0644]
meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-init.bbappend [deleted file]
meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/files/imx8mq-evkb.cfg [new file with mode: 0644]
meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx_%.bbappend [new file with mode: 0644]
meta-agl-bsp/meta-freescale-layer/recipes-qt/qt5/qtbase/0014-Add-IMX-GPU-support.patch [deleted file]
meta-agl-bsp/meta-freescale-layer/recipes-qt/qt5/qtbase_%.bbappend [deleted file]
meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend [moved from meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.0.bbappend with 100% similarity]
templates/machine/imx8mqevk-viv/40_bblayers.conf.inc [new file with mode: 0644]
templates/machine/imx8mqevk-viv/50_local.conf.inc [new file with mode: 0644]
templates/machine/imx8mqevk-viv/50_setup.sh [new file with mode: 0644]
templates/machine/imx8mqevk-viv/README_machine_imx8mqevk-viv.md [new file with mode: 0644]

diff --git a/meta-agl-bsp/conf/include/agl_imx8mqevk-viv.inc b/meta-agl-bsp/conf/include/agl_imx8mqevk-viv.inc
new file mode 100644 (file)
index 0000000..5056758
--- /dev/null
@@ -0,0 +1,19 @@
+DISTRO_FEATURES_append = " agl-medium-arm-compiler"
+
+# Force use of the community supported LTS kernel instead of the
+# default linux-imx
+IMX_DEFAULT_KERNEL_imx8mqevk = "linux-fslc-imx"
+
+# For EVKB wifi support
+MACHINE_FEATURES_append = " bcm4356"
+
+# Disable meta-freescale package architecure mangling, as it causes
+# issues with AGL's explicit setting of DEFAULTTUNE.
+INHERIT_remove = "fsl-dynamic-packagearch"
+MACHINE_SOCARCH = "${TUNE_PKGARCH}"
+
+# Disable the meta-freescale weston-init bbappend as it conflicts
+# with AGL's.
+BBMASK = "meta-freescale/recipes-graphics/wayland/weston-init"
+
+AGL_DEFAULT_INITRAMFS_FSTYPES := ""
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-init.bbappend
deleted file mode 100644 (file)
index 2e1c950..0000000
+++ /dev/null
@@ -1 +0,0 @@
-WESTONARGS_append_imxgpu3d = " --use-gl"
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/files/imx8mq-evkb.cfg b/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/files/imx8mq-evkb.cfg
new file mode 100644 (file)
index 0000000..9291592
--- /dev/null
@@ -0,0 +1 @@
+CONFIG_BRCMSMAC=m
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx_%.bbappend b/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx_%.bbappend
new file mode 100644 (file)
index 0000000..33e72bf
--- /dev/null
@@ -0,0 +1,24 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+require recipes-kernel/linux/linux-agl.inc
+
+# Make sure these are enabled so that AGL configurations work
+SRC_URI_append = " file://tmpfs.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/tmpfs.cfg"
+SRC_URI_append = " file://namespace.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/namespace.cfg"
+SRC_URI_append = " file://cgroup.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/cgroup.cfg"
+
+# Support for CFG80211 subsystem
+SRC_URI_append = " file://cfg80211.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/cfg80211.cfg"
+
+# Support for i.MX8MQ EVKB (e.g. Broadcom wifi)
+SRC_URI_append_imx8mqevk = " file://imx8mq-evkb.cfg"
+KERNEL_CONFIG_FRAGMENTS_append_imx8mqevk = " ${WORKDIR}/imx8mq-evkb.cfg"
+
+# Turn off a couple of things enabled by default by Freescale
+# (lock debugging and userspace firmware loader fallback)
+SRC_URI_append = " file://fixups.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/fixups.cfg"
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-qt/qt5/qtbase/0014-Add-IMX-GPU-support.patch b/meta-agl-bsp/meta-freescale-layer/recipes-qt/qt5/qtbase/0014-Add-IMX-GPU-support.patch
deleted file mode 100644 (file)
index 8489b6f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: git/mkspecs/linux-oe-g++/qmake.conf
-===================================================================
---- git.orig/mkspecs/linux-oe-g++/qmake.conf   2016-12-14 16:51:48.468955533 -0600
-+++ git/mkspecs/linux-oe-g++/qmake.conf        2016-12-14 17:03:17.000000000 -0600
-@@ -39,5 +39,12 @@ isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG
- include(../oe-device-extra.pri)
-+QMAKE_CFLAGS          += -DLINUX=1 -DEGL_API_FB=1
-+QMAKE_CXXFLAGS        += -DLINUX=1 -DEGL_API_FB=1
-+
-+QMAKE_LIBS_EGL        += -lEGL
-+QMAKE_LIBS_OPENGL_ES2 += -lEGL -lGLESv2
-+QMAKE_LIBS_OPENVG     += -lEGL -lOpenVG
-+
- load(device_config)
- load(qt_config)
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-bsp/meta-freescale-layer/recipes-qt/qt5/qtbase_%.bbappend
deleted file mode 100644 (file)
index c4afc30..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-# Fixing Qt5.8 build breaks by overriding original patches with ours
-# This will be fixed in the latest meta-freescale upstream
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
diff --git a/templates/machine/imx8mqevk-viv/40_bblayers.conf.inc b/templates/machine/imx8mqevk-viv/40_bblayers.conf.inc
new file mode 100644 (file)
index 0000000..edcb6a3
--- /dev/null
@@ -0,0 +1,5 @@
+# This must be parsed after qt5, etc. layers so that they are correctly
+# recognized by meta-freescale/dynamic-layers
+BBLAYERS =+ "\
+  ${METADIR}/bsp/meta-freescale \
+  "
diff --git a/templates/machine/imx8mqevk-viv/50_local.conf.inc b/templates/machine/imx8mqevk-viv/50_local.conf.inc
new file mode 100644 (file)
index 0000000..e9668c3
--- /dev/null
@@ -0,0 +1,3 @@
+MACHINE = "imx8mqevk"
+#see meta-agl/meta-agl-bsp/conf/include/agl_imx8mqevk-viv.inc
+require conf/include/agl_imx8mqevk-viv.inc
diff --git a/templates/machine/imx8mqevk-viv/50_setup.sh b/templates/machine/imx8mqevk-viv/50_setup.sh
new file mode 100644 (file)
index 0000000..eefd1eb
--- /dev/null
@@ -0,0 +1,2 @@
+find_and_ack_eula $METADIR/bsp/meta-freescale EULA
+export EULA_FLAG_NAME="ACCEPT_FSL_EULA"
diff --git a/templates/machine/imx8mqevk-viv/README_machine_imx8mqevk-viv.md b/templates/machine/imx8mqevk-viv/README_machine_imx8mqevk-viv.md
new file mode 100644 (file)
index 0000000..a85140e
--- /dev/null
@@ -0,0 +1,9 @@
+---
+description: i.MX8 EVK with Vivante GPU driver
+authors: Scott Murray <scott.murray@konsulko.com>
+---
+
+### Machine imx8mqevk-viv
+
+i.MX8 EVK and EVKB boards with Vivante GPU driver support.
+