-# Borrowed fragments logic from linaro kernel configuration
+FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:${THISDIR}/files:"
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-KERNEL_CONFIG_FRAGMENTS ?= ""
+require recipes-kernel/linux/linux-agl.inc
-kernel_conf_variable() {
- CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
- if test "$2" = "n"
- then
- echo "# CONFIG_$1 is not set" >> ${B}/.config
- else
- echo "CONFIG_$1=$2" >> ${B}/.config
- fi
-}
-
-do_configure_append() {
-
- CONF_SED_SCRIPT=""
-
- # kernel_conf_variable NAME y/n lines here
-
- if [ -f '${WORKDIR}/defconfig' ]; then
- sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config'
- else
- sed -e "${CONF_SED_SCRIPT}" < '${KERNEL_DEFCONFIG}' >> '${B}/.config'
- fi
-
- # Check for kernel config fragments. The assumption is that the config
- # fragment will be specified with the absolute path. For example:
- # * ${WORKDIR}/config1.cfg
- # * ${S}/config2.cfg
- # Iterate through the list of configs and make sure that you can find
- # each one. If not then error out.
- # NOTE: If you want to override a configuration that is kept in the kernel
- # with one from the OE meta data then you should make sure that the
- # OE meta data version (i.e. ${WORKDIR}/config1.cfg) is listed
- # after the in kernel configuration fragment.
- # Check if any config fragments are specified.
- if [ ! -z "${KERNEL_CONFIG_FRAGMENTS}" ]
- then
- for f in ${KERNEL_CONFIG_FRAGMENTS}
- do
- # Check if the config fragment was copied into the WORKDIR from
- # the OE meta data
- if [ ! -e "$f" ]
- then
- echo "Could not find kernel config fragment $f"
- exit 1
- fi
- done
-
-# # Now that all the fragments are located merge them.
-# ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 )
-#
-
- cat ${KERNEL_CONFIG_FRAGMENTS} >> ${B}/.config
- fi
-
- yes '' | oe_runmake -C ${S} O=${B} oldconfig
- oe_runmake -C ${S} O=${B} savedefconfig && cp ${B}/defconfig ${WORKDIR}/defconfig.saved
-}
+# These patches and the configuration fragment below will need to be
+# revisited if/when using IMX_DEFAULT_BSP = "mainline" with i.MX8
+# becomes more feasible with upstream meta-freescale.
+SRC_URI_append_etnaviv = " \
+ file://0001-enable-mhdp-with-etnaviv.patch \
+ file://0002-dts-enable-etnaviv.patch \
+"
# 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"
SRC_URI_append = " file://cgroup.cfg"
KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/cgroup.cfg"
-# Fragments common to AGL demo platform (make sure they are added)
-
-# Enable support for USB HID touch display
-SRC_URI_append = " file://touchscreen.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/touchscreen.cfg"
-
-# Enable support for TP-Link TL-W722N USB Wifi adapter
-SRC_URI_append = " file://ath9k_htc.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/ath9k_htc.cfg"
-
-# Enable support for RTLSDR
-SRC_URI_append = " file://rtl_sdr.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtl_sdr.cfg"
-
-# Enable support for Bluetooth HCI USB devices
-SRC_URI_append = " file://btusb.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/btusb.cfg"
+# Support for CFG80211 subsystem
+SRC_URI_append = " file://cfg80211.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/cfg80211.cfg"
-#-------------------------------------------------------------------------
-# smack patches for handling bluetooth
-
-SRC_URI_append_smack = "\
- file://0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch \
-"
-
-# Enable support for smack
-KERNEL_CONFIG_FRAGMENTS_append_smack = "\
- ${WORKDIR}/audit.cfg \
- ${WORKDIR}/smack.cfg \
- ${WORKDIR}/smack-default-lsm.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"
-# Enable support for usb video class for usb camera devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uvc.cfg"
+# Build in etnaviv if required
+SRC_URI_append_etnaviv = " file://etnaviv.cfg"
+KERNEL_CONFIG_FRAGMENTS_append_etnaviv = " ${WORKDIR}/etnaviv.cfg"
-# Enable support for joystick devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/joystick.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"