This change reworks how the linux-xlnx kernel is configured, instead of
using kmeta fragments as the base config the kernel is instead
configured with defconfigs from the vendor tree. This has been the
default for zcu102-zynqmp and now extends to Zynq and MicroBlaze
targets.

Since linux-yocto.inc is still included by the linux-xlnx.inc, it is
possible to still use kmeta like .scc/.cfg fragments separately as well
as from a kmeta source. This is used by default to get the KC705 and
ZYBO Linux-BD kernel configuration fragments. Though fragments are
limited to the current in layer provided fragments by default.

Signed-off-by: Nathan Rossi <nat...@nathanrossi.com>
---
 recipes-kernel/linux/linux-xilinx-configs.inc  | 11 -------
 recipes-kernel/linux/linux-xilinx-machines.inc | 17 ----------
 recipes-kernel/linux/linux-xlnx.inc            | 45 +++++++++++++++-----------
 3 files changed, 27 insertions(+), 46 deletions(-)
 delete mode 100644 recipes-kernel/linux/linux-xilinx-configs.inc
 delete mode 100644 recipes-kernel/linux/linux-xilinx-machines.inc

diff --git a/recipes-kernel/linux/linux-xilinx-configs.inc 
b/recipes-kernel/linux/linux-xilinx-configs.inc
deleted file mode 100644
index 5892c1c43d..0000000000
--- a/recipes-kernel/linux/linux-xilinx-configs.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-# This include file sets up the xilinx config fragments, these
-# fragments build on top of the base config infrastructure provided in
-# the linux-yocto/kernel-yocto recipes and classes in core layer of OE.
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/config:"
-
-SRC_URI_append = " \
-               
file://xilinx-common;type=kmeta;name=kmeta-xilinx-common;destsuffix=xilinx-common
 \
-               
file://xilinx-machine;type=kmeta;name=kmeta-xilinx-machine;destsuffix=xilinx-machine
 \
-               "
-
diff --git a/recipes-kernel/linux/linux-xilinx-machines.inc 
b/recipes-kernel/linux/linux-xilinx-machines.inc
deleted file mode 100644
index 77cab0af33..0000000000
--- a/recipes-kernel/linux/linux-xilinx-machines.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-# Setup for MicroBlaze and Zynq architectures
-COMPATIBLE_MACHINE ?= "^$"
-COMPATIBLE_MACHINE_zynq = "zynq"
-COMPATIBLE_MACHINE_zynqmp = "zynqmp"
-COMPATIBLE_MACHINE_microblaze = "microblaze"
-
-# Default kernel config fragements for specific machines
-KERNEL_FEATURES_append_ml605-qemu-microblazeel = " 
bsp/ml605-qemu-microblazeel.scc"
-KERNEL_FEATURES_append_s3adsp1800-qemu-microblazeeb = " 
bsp/s3adsp1800-qemu-microblazeeb.scc"
-KERNEL_FEATURES_append_kc705-microblazeel = " 
bsp/kc705-microblazeel/kc705-microblazeel.scc"
-
-# MicroBlaze is a uImage target, but its not called 'uImage' instead it is 
called 'linux.bin.ub'
-python () {
-    if d.getVar('KERNEL_IMAGETYPE', True).endswith('.ub'):
-        d.setVar('DEPENDS', "%s u-boot-mkimage-native" % d.getVar('DEPENDS', 
True))
-}
-
diff --git a/recipes-kernel/linux/linux-xlnx.inc 
b/recipes-kernel/linux/linux-xlnx.inc
index 844fdfd5c0..590287efb7 100644
--- a/recipes-kernel/linux/linux-xlnx.inc
+++ b/recipes-kernel/linux/linux-xlnx.inc
@@ -1,4 +1,3 @@
-
 # This version extension should match CONFIG_LOCALVERSION in defconfig
 XILINX_RELEASE_VERSION ?= ""
 LINUX_VERSION_EXTENSION ?= "-xilinx-${XILINX_RELEASE_VERSION}"
@@ -10,28 +9,38 @@ SRCBRANCHARG = "${@['nobranch=1', 
'branch=${KBRANCH}'][d.getVar('KBRANCH', True)
 
 FILESOVERRIDES_append = ":${LINUX_VERSION}"
 KERNELURI ?= "git://github.com/Xilinx/linux-xlnx.git;protocol=https"
-SRC_URI = " \
-               ${KERNELURI};${SRCBRANCHARG} \
-               
file://xilinx-base;type=kmeta;name=kmeta-xilinx-base;destsuffix=xilinx-base \
-               "
+SRC_URI = "${KERNELURI};${SRCBRANCHARG}"
 
 SRCREV_machine ?= "${SRCREV}"
 
 require recipes-kernel/linux/linux-yocto.inc
+require linux-microblaze.inc
 
 DESCRIPTION = "Xilinx Kernel"
 
-require linux-xilinx-configs.inc
-require linux-xilinx-machines.inc
-
-KBUILD_DEFCONFIG_zcu102-zynqmp = "xilinx_zynqmp_defconfig"
-KCONFIG_MODE_zcu102-zynqmp = "alldefconfig"
-
-KERNEL_FEATURES_append = " bsp/xilinx/soc/linux-xlnx/drivers/xilinx.scc"
-KERNEL_FEATURES_append_zynq = " bsp/xilinx/soc/linux-xlnx/drivers/zynq7.scc"
-KERNEL_FEATURES_append_zynqmp = " \
-               bsp/xilinx/soc/linux-xlnx/drivers/zynqmp.scc \
-               features/drm/drm-xilinx.scc \
-               features/v4l2/v4l2-xilinx.scc \
-               "
+# Force the use of the KBUILD_DEFCONFIG even if some other defconfig was 
generated in the ${WORKDIR}
+do_kernel_metadata_prepend () {
+       if [ -n "${KBUILD_DEFCONFIG}" ]; then
+               rm ${WORKDIR}/defconfig
+       fi
+}
+
+# Default to be only compatible with specific machines or soc families
+COMPATIBLE_MACHINE ?= "^$"
+COMPATIBLE_MACHINE_zynq = ".*"
+COMPATIBLE_MACHINE_zynqmp = ".*"
+COMPATIBLE_MACHINE_kc705-microblazeel = ".*"
+
+# Use DEFCONFIGs for configuring linux-xlnx kernels
+KCONFIG_MODE ?= "alldefconfig"
+KBUILD_DEFCONFIG_zynqmp = "xilinx_zynqmp_defconfig"
+KBUILD_DEFCONFIG_zynq = "xilinx_zynq_defconfig"
+KBUILD_DEFCONFIG_microblaze = "mmu_defconfig"
+
+# Add meta-xilinx kmeta, used for MicroBlaze BSP fragments
+FILESEXTRAPATHS_prepend := "${THISDIR}:"
+SRC_URI_append = " 
file://xilinx-kmeta;type=kmeta;name=xilinx-kmeta;destsuffix=xilinx-kmeta"
+
+# MicroBlaze BSP fragments
+KERNEL_FEATURES_append_kc705-microblazeel = " 
bsp/kc705-microblazeel/kc705-microblazeel.scc"
 
-- 
2.14.2


-- 
_______________________________________________
meta-xilinx mailing list
meta-xilinx@yoctoproject.org
https://lists.yoctoproject.org/listinfo/meta-xilinx

Reply via email to