Add meta-xilinx subtree
Import git://git.yoctoproject.org/meta-xilinx from 5fccc46503 as
meta-xilinx subtree.
Change-Id: I3d59bcf3a57cee588aab7f5cdd0287af66450c8a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-microblaze.inc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-microblaze.inc
new file mode 100644
index 0000000..e23a50e
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-microblaze.inc
@@ -0,0 +1,5 @@
+# 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/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx-dev.bb b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx-dev.bb
new file mode 100644
index 0000000..acb9938
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx-dev.bb
@@ -0,0 +1,18 @@
+# This recipe tracks the 'bleeding edge' linux-xlnx repository.
+# Since this tree is frequently updated, AUTOREV is used to track its contents.
+#
+# To enable this recipe, set PREFERRED_PROVIDER_virtual/kernel = "linux-xlnx-dev"
+
+KBRANCH ?= "master"
+
+# Use the SRCREV for the last tagged revision of linux-xlnx.
+SRCREV ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-xlnx-dev", "${AUTOREV}", "84fb0cc65aae5970471cbc54b0c89009b9b904af", d)}'
+
+# skip version sanity, because the version moves with AUTOREV
+KERNEL_VERSION_SANITY_SKIP = "1"
+
+LINUX_VERSION ?= "4.9+"
+LINUX_VERSION_EXTENSION ?= "-xilinx-dev"
+
+include linux-xlnx.inc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc
new file mode 100644
index 0000000..7b4f9ac
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc
@@ -0,0 +1,45 @@
+# This version extension should match CONFIG_LOCALVERSION in defconfig
+XILINX_RELEASE_VERSION ?= ""
+LINUX_VERSION_EXTENSION ?= "-xilinx-${XILINX_RELEASE_VERSION}"
+PV = "${LINUX_VERSION}${LINUX_VERSION_EXTENSION}+git${SRCPV}"
+
+# Sources, by default allow for the use of SRCREV pointing to orphaned tags/commits
+KBRANCH ?= ""
+SRCBRANCHARG = "${@['nobranch=1', 'branch=${KBRANCH}'][d.getVar('KBRANCH', True) != '']}"
+
+FILESOVERRIDES_append = ":${XILINX_RELEASE_VERSION}"
+KERNELURI ?= "git://github.com/Xilinx/linux-xlnx.git;protocol=https"
+SRC_URI = "${KERNELURI};${SRCBRANCHARG}"
+
+SRCREV_machine ?= "${SRCREV}"
+
+require recipes-kernel/linux/linux-yocto.inc
+require linux-microblaze.inc
+
+DESCRIPTION = "Xilinx Kernel"
+
+# Force the use of the KBUILD_DEFCONFIG even if some other defconfig was generated in the ${WORKDIR}
+do_kernel_metadata_prepend () {
+ [ -n "${KBUILD_DEFCONFIG}" ] && [ -e ${WORKDIR}/defconfig ] && rm ${WORKDIR}/defconfig
+}
+
+# Default to be only compatible with specific machines or soc families
+COMPATIBLE_MACHINE ?= "^$"
+COMPATIBLE_MACHINE_zynq = ".*"
+COMPATIBLE_MACHINE_zynqmp = ".*"
+COMPATIBLE_MACHINE_microblaze = ".*"
+
+# 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"
+
+KERNEL_FEATURES_zynqmp += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' bsp/xilinx/xen.scc', '', d)}"
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb
new file mode 100644
index 0000000..c3a8f76
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2018.1.bb
@@ -0,0 +1,7 @@
+LINUX_VERSION = "4.14"
+XILINX_RELEASE_VERSION = "v2018.1"
+KBRANCH ?= "xlnx_rebase_v4.14"
+SRCREV ?= "4ac76ffacb54712b0361e51d0b7156e53d062e3c"
+
+include linux-xlnx.inc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-dev.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-dev.bbappend
new file mode 100644
index 0000000..05c3995
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-dev.bbappend
@@ -0,0 +1 @@
+require linux-yocto-xilinx.inc
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-tiny_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-tiny_%.bbappend
new file mode 100644
index 0000000..05c3995
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-tiny_%.bbappend
@@ -0,0 +1 @@
+require linux-yocto-xilinx.inc
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-xilinx.inc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-xilinx.inc
new file mode 100644
index 0000000..9209300
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-xilinx.inc
@@ -0,0 +1,25 @@
+require linux-microblaze.inc
+
+# Add meta-xilinx kmeta
+FILESEXTRAPATHS_prepend := "${THISDIR}:"
+SRC_URI_append = " file://xilinx-kmeta;type=kmeta;name=xilinx-kmeta;destsuffix=xilinx-kmeta"
+
+# Zynq default generic KMACHINE
+COMPATIBLE_MACHINE_zynq = "zynq"
+KMACHINE_zynq = "zynq"
+
+# ZynqMP default generic KMACHINE
+COMPATIBLE_MACHINE_zynqmp = "zynqmp"
+KMACHINE_zynqmp = "zynqmp"
+
+# MicroBlaze KMACHINEs
+KMACHINE_ml605-qemu-microblazeel = "qemumicroblazeel"
+KMACHINE_s3adsp1800-qemu-microblazeeb = "qemumicroblazeeb"
+
+# MicroBlaze default generic KMACHINE
+KMACHINE_microblaze = "microblaze"
+COMPATIBLE_MACHINE_microblaze = "microblaze"
+
+# Default kernel config fragements for specific machines
+KERNEL_FEATURES_append_kc705-microblazeel = " bsp/kc705-microblazeel/kc705-microblazeel.scc"
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto_%.bbappend
new file mode 100644
index 0000000..05c3995
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -0,0 +1 @@
+require linux-yocto-xilinx.inc
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg
new file mode 100644
index 0000000..bf7f316
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.cfg
@@ -0,0 +1,17 @@
+CONFIG_XILINX_MICROBLAZE0_FAMILY="kintex7"
+
+# CPU ISA Config
+CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1
+CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1
+CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1
+CONFIG_XILINX_MICROBLAZE0_USE_DIV=1
+CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2
+CONFIG_XILINX_MICROBLAZE0_USE_FPU=0
+CONFIG_XILINX_MICROBLAZE0_HW_VER="10.0"
+
+# Memory Base Address
+CONFIG_KERNEL_BASE_ADDR=0x80000000
+
+CONFIG_XILINX_AXI_EMAC=y
+CONFIG_XILINX_PHY=y
+CONFIG_BLK_DEV_INITRD=y
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.scc
new file mode 100644
index 0000000..aaf7c2a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/kc705-microblazeel/kc705-microblazeel.scc
@@ -0,0 +1,4 @@
+define KFEATURE_DESCRIPTION "Kernel Config for kc705-microblazeel specific setup"
+define KFEATURE_COMPATIBILITY board
+
+kconf hardware kc705-microblazeel.cfg
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/microblaze-standard.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/microblaze-standard.scc
new file mode 100644
index 0000000..170489d
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/microblaze-standard.scc
@@ -0,0 +1,14 @@
+define KMACHINE microblaze
+define KTYPE standard
+define KARCH microblaze
+
+include ktypes/standard/standard.scc
+
+include bsp/xilinx/soc/microblaze.scc
+
+# Common board drivers
+include bsp/xilinx/board-common.scc
+
+# default policy for standard kernels
+include features/latencytop/latencytop.scc
+include features/profiling/profiling.scc
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/microblaze-tiny.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/microblaze-tiny.scc
new file mode 100644
index 0000000..979fb86
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/microblaze-tiny.scc
@@ -0,0 +1,11 @@
+define KMACHINE microblaze
+define KTYPE tiny
+define KARCH microblaze
+
+include ktypes/tiny/tiny.scc
+
+include bsp/xilinx/soc/microblaze.scc
+
+# Common board drivers
+include bsp/xilinx/board-common.scc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-drm.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-drm.cfg
new file mode 100644
index 0000000..0f66c8b
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-drm.cfg
@@ -0,0 +1,14 @@
+# CMA
+CONFIG_CMA=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=128
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+CONFIG_CMA_ALIGNMENT=8
+
+# DRM
+CONFIG_DRM=y
+CONFIG_DRM_XILINX=y
+
+# frame buffer console
+CONFIG_FRAMEBUFFER_CONSOLE=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-drm.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-drm.scc
new file mode 100644
index 0000000..56c80c3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-drm.scc
@@ -0,0 +1,4 @@
+define KFEATURE_DESCRIPTION "Enable Xilinx DRM support"
+define KFEATURE_COMPATIBILITY board
+
+kconfig hardware drivers-drm.cfg
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-softip-pcie.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-softip-pcie.cfg
new file mode 100644
index 0000000..df88fce
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-softip-pcie.cfg
@@ -0,0 +1,7 @@
+
+# PCIe
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIE_XILINX=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-softip-pcie.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-softip-pcie.scc
new file mode 100644
index 0000000..e60047a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-softip-pcie.scc
@@ -0,0 +1,5 @@
+define KFEATURE_DESCRIPTION "Xilinx AXI PCIe Host Bridge"
+define KFEATURE_COMPATIBILITY board
+
+kconfig hardware drivers-softip-pcie.cfg
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-softip.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-softip.cfg
new file mode 100644
index 0000000..5c2529a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-softip.cfg
@@ -0,0 +1,19 @@
+# Xilinx DMA engines
+CONFIG_XILINX_DMA_ENGINES=y
+
+# Xilinx Traffic Generator
+CONFIG_XILINX_TRAFGEN=y
+
+# Xilinx Perfmon UIO driver
+CONFIG_UIO_XILINX_APM=y
+
+# Interrupt controller
+CONFIG_XILINX_INTC=y
+
+# Xilinx PHY
+CONFIG_XILINX_PHY=y
+
+# JESD204B PHY
+CONFIG_XILINX_JESD204B=y
+CONFIG_XILINX_JESD204B_PHY=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-zynq.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-zynq.cfg
new file mode 100644
index 0000000..9b70ac4
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-zynq.cfg
@@ -0,0 +1,16 @@
+# Devcfg
+CONFIG_XILINX_DEVCFG=y
+
+# Ethernet
+CONFIG_XILINX_PS_EMAC=y
+
+# SPI
+CONFIG_SPI_ZYNQ_QSPI=y
+
+# NAND
+CONFIG_MTD_NAND_PL353=y
+CONFIG_MTD_NAND_PL35X=y
+
+# FPGA
+CONFIG_XILINX_PR_DECOUPLER=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-zynqmp.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-zynqmp.cfg
new file mode 100644
index 0000000..4cbb205
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-xlnx-zynqmp.cfg
@@ -0,0 +1,67 @@
+CONFIG_SOC_XILINX_ZYNQMP=y
+
+# PMU Firmware API
+CONFIG_ZYNQMP_PM_API_DEBUGFS=y
+
+# DMA
+CONFIG_DMADEVICES=y
+CONFIG_XILINX_DMA_ENGINES=y
+CONFIG_XILINX_DPDMA=y
+
+# NAND
+CONFIG_MTD=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ARASAN=y
+
+# PCIe
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCIE_XILINX_NWL=y
+
+# CONFIG_ARM_MALI is not set
+
+CONFIG_PHY_XILINX_ZYNQMP=y
+
+# EDAC
+CONFIG_EDAC=y
+CONFIG_EDAC_MM_EDAC=y
+CONFIG_EDAC_CORTEX_ARM64=y
+CONFIG_EDAC_SYNOPSYS=y
+CONFIG_EDAC_ZYNQMP_OCM=y
+
+# Sound
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_XILINX_DP=y
+
+# Ethernet
+CONFIG_MACB_EXT_BD=y
+
+# FPGA
+CONFIG_FPGA=y
+CONFIG_FPGA_MGR_ZYNQMP_FPGA=y
+CONFIG_FPGA_REGION=y
+CONFIG_FPGA_BRIDGE=y
+CONFIG_XILINX_PR_DECOUPLER=y
+
+# AMS
+CONFIG_XILINX_AMS=y
+
+# NVMEM
+CONFIG_NVMEM=y
+CONFIG_NVMEM_ZYNQMP=y
+
+# Fabric Clock
+CONFIG_STAGING=y
+CONFIG_XILINX_FCLK=y
+
+# Clock controllers
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_ZYNQMP=y
+
+# Reset controller
+CONFIG_RESET_CONTROLLER=y
+CONFIG_ZYNQMP_RESET_CONTROLLER=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-zynqmp.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-zynqmp.cfg
new file mode 100644
index 0000000..dc69a65
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/drivers-zynqmp.cfg
@@ -0,0 +1,68 @@
+
+# Bus
+CONFIG_ARM_CCI400_PMU=y
+
+# IOMMU
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_ARM_SMMU=y
+
+# Serial
+CONFIG_TTY=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_XILINX_PS_UART=y
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
+
+# Watchdog
+CONFIG_WATCHDOG=y
+CONFIG_CADENCE_WATCHDOG=y
+
+# RTC
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ZYNQMP=y
+
+# Ethernet
+CONFIG_NET_CADENCE=y
+CONFIG_MACB=y
+
+# GPIO
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_ZYNQ=y
+
+# I2C
+CONFIG_I2C=y
+CONFIG_I2C_CADENCE=y
+
+# SPI
+CONFIG_SPI=y
+CONFIG_SPI_CADENCE=y
+CONFIG_SPI_ZYNQMP_GQSPI=y
+
+# CAN
+CONFIG_CAN=y
+CONFIG_CAN_DEV=y
+CONFIG_CAN_XILINXCAN=y
+
+# SATA
+CONFIG_ATA=y
+CONFIG_ATA_SFF=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_CEVA=y
+
+# MMC/SD
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_ARASAN=y
+
+# USB
+CONFIG_USB=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_GADGET=y
+
+# DMA
+CONFIG_DMA_ENGINE=y
+CONFIG_XILINX_ZYNQMP_DMA=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/zynqmp.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/zynqmp.cfg
new file mode 100644
index 0000000..072a3fe
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/zynqmp.cfg
@@ -0,0 +1,26 @@
+
+# Arch Feature Selections
+CONFIG_ARM64=y
+CONFIG_64BIT=y
+CONFIG_ARCH_ZYNQMP=y
+
+# SMP
+CONFIG_SMP=y
+
+# ARM 32-Bit compatiblity
+CONFIG_COMPAT=y
+# CONFIG_COMPAT_BRK is not set
+
+# CPU Frequency
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/zynqmp.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/zynqmp.scc
new file mode 100644
index 0000000..8fcb8e6
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/soc/zynqmp.scc
@@ -0,0 +1,10 @@
+define KFEATURE_DESCRIPTION "Xilinx Zynq UltraScale+ MPSoC"
+define KFEATURE_COMPATIBILITY board
+
+include features/net/net.scc
+include cfg/timer/no_hz.scc
+
+kconf hardware zynqmp.cfg
+kconf hardware drivers-zynqmp.cfg
+include bsp/xilinx/soc/drivers-softip.scc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/xen.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/xen.cfg
new file mode 100644
index 0000000..50d5e46
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/xen.cfg
@@ -0,0 +1,45 @@
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_MMU_NOTIFIER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_PCI_XEN=y
+CONFIG_XEN_PCIDEV_FRONTEND=y
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_XEN_NETDEV_FRONTEND=y
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_XEN_WDT=m
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=y
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=y
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PRIVCMD=y
+CONFIG_XEN_ACPI_PROCESSOR=m
+CONFIG_XEN_MCE_LOG=y
+CONFIG_XEN_HAVE_PVMMU=y
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/xen.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/xen.scc
new file mode 100644
index 0000000..b588e5d
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/xen.scc
@@ -0,0 +1,4 @@
+define KFEATURE_DESCRIPTION "Xen Kernel Support"
+define KFEATURE_COMPATIBILITY arch
+
+kconf non-hardware xen.cfg
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/zynqmp-standard.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/zynqmp-standard.scc
new file mode 100644
index 0000000..1c9a4f3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/zynqmp-standard.scc
@@ -0,0 +1,15 @@
+define KMACHINE zynqmp
+define KTYPE standard
+define KARCH arm64
+
+include ktypes/standard/standard.scc
+
+include bsp/xilinx/soc/zynqmp.scc
+include bsp/xilinx/board-common.scc
+
+include features/input/input.scc
+include cfg/usb-mass-storage.scc
+
+# default policy for standard kernels
+#include features/latencytop/latencytop.scc
+#include features/profiling/profiling.scc
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/zynqmp-tiny.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/zynqmp-tiny.scc
new file mode 100644
index 0000000..6cdfc72
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/xilinx/zynqmp-tiny.scc
@@ -0,0 +1,9 @@
+define KMACHINE zynqmp
+define KTYPE tiny
+define KARCH arm64
+
+include ktypes/tiny/tiny.scc
+
+include bsp/xilinx/soc/zynqmp.scc
+include bsp/xilinx/board-common.scc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.cfg
new file mode 100644
index 0000000..37eaa4c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.cfg
@@ -0,0 +1,19 @@
+# Keyboard GPIO support
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_GPIO_POLLED=y
+
+# Sound support for Zybo linux_bd project
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_ADI=y
+CONFIG_SND_SOC_ADI_AXI_I2S=y
+CONFIG_SND_SIMPLE_CARD=y
+CONFIG_SND_SOC_SSM2602_I2C=y
+
+# Drivers for Digilent DRM encoder
+# DRM encoder
+CONFIG_DRM_DIGILENT_ENCODER=y
+# Common Clock Framework
+CONFIG_COMMON_CLK_DGLNT_DYNCLK=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.scc
new file mode 100644
index 0000000..f3e6e8b
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/bsp/zybo-linux-bd-zynq7/zybo-linux-bd-zynq7.scc
@@ -0,0 +1,7 @@
+define KFEATURE_DESCRIPTION "Kernel Config for ZYBO Linux-BD Design"
+define KFEATURE_COMPATIBILITY board
+
+kconf hardware zybo-linux-bd-zynq7.cfg
+
+include bsp/xilinx/soc/drivers-drm.scc
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/uio/uio.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/uio/uio.cfg
new file mode 100644
index 0000000..048ffe4
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/uio/uio.cfg
@@ -0,0 +1,4 @@
+CONFIG_UIO=y
+CONFIG_UIO_PDRV_GENIRQ=y
+CONFIG_UIO_DMEM_GENIRQ=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/uio/uio.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/uio/uio.scc
new file mode 100644
index 0000000..9697949
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/uio/uio.scc
@@ -0,0 +1,5 @@
+define KFEATURE_DESCRIPTION "Enable UIO Support"
+define KFEATURE_COMPATIBILITY board
+
+kconfig hardware uio.cfg
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/v4l2/v4l2-xilinx.cfg b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/v4l2/v4l2-xilinx.cfg
new file mode 100644
index 0000000..49a5d6f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/v4l2/v4l2-xilinx.cfg
@@ -0,0 +1,23 @@
+# Media support
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+
+# V4L
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+
+# Xilinx Video drivers
+CONFIG_VIDEO_XILINX=y
+CONFIG_VIDEO_XILINX_CFA=y
+CONFIG_VIDEO_XILINX_CRESAMPLE=y
+CONFIG_VIDEO_XILINX_HLS=y
+CONFIG_VIDEO_XILINX_REMAPPER=y
+CONFIG_VIDEO_XILINX_RGB2YUV=y
+CONFIG_VIDEO_XILINX_SCALER=y
+CONFIG_VIDEO_XILINX_SWITCH=y
+CONFIG_VIDEO_XILINX_TPG=y
+CONFIG_VIDEO_XILINX_VTC=y
+
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/v4l2/v4l2-xilinx.scc b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/v4l2/v4l2-xilinx.scc
new file mode 100644
index 0000000..6d6ba6a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/xilinx-kmeta/features/v4l2/v4l2-xilinx.scc
@@ -0,0 +1,4 @@
+define KFEATURE_DESCRIPTION "Enable Xilinx V4L2 support"
+define KFEATURE_COMPATIBILITY board
+
+kconfig hardware v4l2-xilinx.cfg
\ No newline at end of file