aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-core/recipes-kernel/linux
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-core/recipes-kernel/linux')
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc14
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx-dev.bb18
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc67
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch51
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.cfg4
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.scc3
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.cfg45
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.scc6
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.cfg1
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.scc2
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch47
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx/microblaze_generic.cfg51
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.1.bb9
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.2.bb9
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb11
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb11
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-yocto-dev.bbappend1
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-yocto-tiny_%.bbappend1
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-yocto-xilinx.inc17
-rw-r--r--meta-xilinx-core/recipes-kernel/linux/linux-yocto_%.bbappend1
20 files changed, 369 insertions, 0 deletions
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc b/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc
new file mode 100644
index 00000000..a2f15adb
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc
@@ -0,0 +1,14 @@
+SRC_URI += " \
+ file://microblaze_generic.cfg \
+ "
+
+KERNEL_FEATURES:append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' features/microblaze-systemd/microblaze-systemd.scc', '', d)}"
+
+# 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))
+}
+
+# Disable buildpaths QA check warnings for linux-xlnx-scr
+INSANE_SKIP:${PN}-src += "buildpaths"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx-dev.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx-dev.bb
new file mode 100644
index 00000000..197cb208
--- /dev/null
+++ b/meta-xilinx-core/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 ?= "5.15+"
+LINUX_VERSION_EXTENSION ?= "-xilinx-dev"
+
+include linux-xlnx.inc
+
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc
new file mode 100644
index 00000000..2355d090
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc
@@ -0,0 +1,67 @@
+# This version extension should match CONFIG_LOCALVERSION in defconfig
+LINUX_VERSION_EXTENSION ?= "-xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}"
+PV = "${LINUX_VERSION}${LINUX_VERSION_EXTENSION}+git${SRCPV}"
+
+# Sources, by default allow for the use of SRCREV pointing to orphaned tags/commits
+KBRANCH ?= "undefined"
+SRCBRANCHARG = "${@['nobranch=1', 'branch=${KBRANCH}'][d.getVar('KBRANCH', True) != '']}"
+
+FILESOVERRIDES:append := ":${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}"
+KERNELURI ?= "git://github.com/Xilinx/linux-xlnx.git;protocol=https;name=machine"
+YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=yocto-kmeta"
+SRC_URI = "${KERNELURI};${SRCBRANCHARG} ${YOCTO_META}"
+SRC_URI += "file://linux-xlnx-kmeta;type=kmeta;name=linux-xlnx-kmeta;destsuffix=linux-xlnx-kmeta"
+
+SRCREV_machine ?= "${SRCREV}"
+SRCREV_meta ?= "eeb5d0c9dd5e2928835c633644426ee357fbce12"
+SRCREV_FORMAT = "machine"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+LINUX_MB_INC = ""
+LINUX_MB_INC:microblaze = "linux-microblaze.inc"
+require ${LINUX_MB_INC}
+
+DESCRIPTION = "Xilinx Kernel"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+EXTKERNELSRC = "${@'1' if d.getVar('EXTERNALSRC') else ''}"
+
+# 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
+}
+
+do_configure:prepend () {
+ if [ -n "${KBUILD_DEFCONFIG}" ] && [ -n "${EXTKERNELSRC}" ]; then
+ cp ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig
+ fi
+}
+
+inherit kernel-simpleimage
+
+# Default to be only compatible with specific machines or soc families
+COMPATIBLE_MACHINE ?= "^$"
+COMPATIBLE_MACHINE:zynq = ".*"
+COMPATIBLE_MACHINE:zynqmp = ".*"
+COMPATIBLE_MACHINE:microblaze = ".*"
+COMPATIBLE_MACHINE:versal = ".*"
+
+# Use DEFCONFIGs for configuring linux-xlnx kernels
+KCONFIG_MODE ?= "alldefconfig"
+KBUILD_DEFCONFIG:zynqmp ?= "xilinx_defconfig"
+KBUILD_DEFCONFIG:zynq ?= "xilinx_zynq_defconfig"
+KBUILD_DEFCONFIG:microblaze ?= "mmu_defconfig"
+KBUILD_DEFCONFIG:versal ?= "xilinx_defconfig"
+
+KERNEL_FEATURES:append:zynqmp = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)}"
+
+KERNEL_FEATURES:append:zynqmp = "${@' features/xilinx/overlay_of/overlay_of.scc' if d.getVar('FPGA_MNGR_RECONFIG_ENABLE') == '1' else ''}"
+
+KERNEL_FEATURES:append:versal = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)} features/xilinx/hdmi-module/hdmi-module.scc"
+
+KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', ' features/ocicontainer/ocicontainer.scc', '', d)}"
+
+# Enable DRM_LIMA support if DISTRO_FEATURES != 'libmali' and MACHINE_FEATURES mali400 is enabled
+MALI_FEATURE = "${@bb.utils.contains('DISTRO_FEATURES', 'libmali', '', 'features/drm-lima/drm-lima.scc', d)}"
+KERNEL_FEATURES:append = "${@bb.utils.contains('MACHINE_FEATURES', 'mali400', ' ${MALI_FEATURE}', '', d)}"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch
new file mode 100644
index 00000000..d5b96c2d
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch
@@ -0,0 +1,51 @@
+From e33a814e772cdc36436c8c188d8c42d019fda639 Mon Sep 17 00:00:00 2001
+From: Dirk Mueller <dmueller@suse.com>
+Date: Tue, 14 Jan 2020 18:53:41 +0100
+Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration
+
+gcc 10 will default to -fno-common, which causes this error at link
+time:
+
+ (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here
+
+This is because both dtc-lexer as well as dtc-parser define the same
+global symbol yyloc. Before with -fcommon those were merged into one
+defintion. The proper solution would be to to mark this as "extern",
+however that leads to:
+
+ dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls]
+ 26 | extern YYLTYPE yylloc;
+ | ^~~~~~
+In file included from dtc-lexer.l:24:
+dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here
+ 127 | extern YYLTYPE yylloc;
+ | ^~~~~~
+cc1: all warnings being treated as errors
+
+which means the declaration is completely redundant and can just be
+dropped.
+
+Signed-off-by: Dirk Mueller <dmueller@suse.com>
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+[robh: cherry-pick from upstream]
+Cc: stable@vger.kernel.org
+Signed-off-by: Rob Herring <robh@kernel.org>
+---
+ scripts/dtc/dtc-lexer.l | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
+index 5c6c3fd557d7..b3b7270300de 100644
+--- a/scripts/dtc/dtc-lexer.l
++++ b/scripts/dtc/dtc-lexer.l
+@@ -23,7 +23,6 @@ LINECOMMENT "//".*\n
+ #include "srcpos.h"
+ #include "dtc-parser.tab.h"
+
+-YYLTYPE yylloc;
+ extern bool treesource_error;
+
+ /* CAUTION: this will stop working if we ever use yyless() or yyunput() */
+--
+2.29.2
+
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.cfg b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.cfg
new file mode 100644
index 00000000..79c268b3
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.cfg
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: MIT
+CONFIG_DRM=y
+CONFIG_DRM_LIMA=m
+CONFIG_DRM_XLNX=y
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.scc b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.scc
new file mode 100644
index 00000000..425cc233
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/drm-lima/drm-lima.scc
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: MIT
+kconf hardware drm-lima.cfg
+
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.cfg b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.cfg
new file mode 100644
index 00000000..0aebbf91
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.cfg
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: MIT
+
+#........................................................................
+#WARNING
+#
+# This file is a kernel configuration fragment, and not a full kernel
+# configuration file. The final kernel configuration is made up of
+# an assembly of processed fragments, each of which is designed to
+# capture a specific part of the final configuration (e.g. platform
+# configuration, feature configuration, and board specific hardware
+# configuration). For more information on kernel configuration, please
+# refer the product documentation.
+#
+#........................................................................
+
+# Based on the systemd README file kernel requirements
+# Many of these are not enabled on microblaze by default to conserve
+# memory.
+
+# Kernel Config Options
+CONFIG_DEVTMPFS=y
+CONFIG_CGROUPS=y
+CONFIG_INOTIFY_USER=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EPOLL=y
+CONFIG_UNIX=y
+CONFIG_SYSFS=y
+CONFIG_PROC_FS=y
+CONFIG_FHANDLE=y
+
+# Kernel crypto/hash API
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_SHA256=y
+
+# udev will fail to work with the legacy sysfs layout:
+# CONFIG_SYSFS_DEPRECATED is not set
+
+# Legacy hotplug slows down the system and confuses udev:
+CONFIG_UEVENT_HELPER_PATH=""
+
+#Userspace firmware loading is not supported and should be disabled in
+#the kernel:
+# CONFIG_FW_LOADER_USER_HELPER is not set
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.scc b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.scc
new file mode 100644
index 00000000..2a38f446
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/microblaze-systemd/microblaze-systemd.scc
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: MIT
+define KFEATURE_DESCRIPTION "Enable systemd on microblaze systems"
+define KFEATURE_COMPATIBILITY all
+
+kconf non-hardware microblaze-systemd.cfg
+
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.cfg b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.cfg
new file mode 100644
index 00000000..a5b23e3f
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.cfg
@@ -0,0 +1 @@
+CONFIG_VERSAL_SYSMON_I2C=y
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.scc b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.scc
new file mode 100644
index 00000000..c1830956
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/linux-xlnx-kmeta/features/versal-sysmon/versal-sysmon.scc
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: MIT
+kconf hardware versal-sysmon.cfg
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch
new file mode 100644
index 00000000..5a4d203d
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch
@@ -0,0 +1,47 @@
+Disable tree-loop-distribute-patterns CFLAG
+
+Issue: CR-1086247
+
+GCC 10.2.0 added -ftree-loop-distribute-patterns by default with -O2. This
+is causing a condition where the kernel will no longer boot.
+
+This is a temporary workaround until we can identify the true cause of
+the boot failure.
+
+Symtoms:
+
+earlycon: uartlite_a0 at MMIO 0x40600000 (options '115200n8')
+printk: bootconsole [uartlite_a0] enabled
+cma: Reserved 16 MiB at 0xaec00000
+Linux version 5.10.0-xilinx-v2020.2 (oe-user@oe-host) (microblazeel-xilinx-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.0.20200730) #1 Mon Mar 1 12:58:36 UTC 2021
+setup_memory: max_mapnr: 0x40000
+setup_memory: min_low_pfn: 0x80000
+setup_memory: max_low_pfn: 0xb0000
+setup_memory: max_pfn: 0xc0000
+Zone ranges:
+ DMA [mem 0x0000000080000000-0x00000000afffffff]
+ Normal empty
+ HighMem [mem 0x00000000b0000000-0x00000000bfffffff]
+Movable zone start for each node
+Early memory node ranges
+ node 0: [mem 0x0000000080000000-0x00000000bfffffff]
+Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
+<hang>
+
+Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
+
+diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
+index bb980891816d..e368c35ad21c 100644
+--- a/arch/microblaze/Makefile
++++ b/arch/microblaze/Makefile
+@@ -48,6 +48,10 @@ CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
+ # r31 holds current when in kernel mode
+ KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(CPUFLAGS-1) $(CPUFLAGS-2)
+
++# GCC 10.x now has -ftree-loop-distribute-patterns by default in -O2
++# This causes a boot failure, so disable it
++KBUILD_CFLAGS += -fno-tree-loop-distribute-patterns
++
+ head-y := arch/microblaze/kernel/head.o
+ libs-y += arch/microblaze/lib/
+ core-y += arch/microblaze/kernel/
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/microblaze_generic.cfg b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/microblaze_generic.cfg
new file mode 100644
index 00000000..adbb7bc0
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx/microblaze_generic.cfg
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: MIT
+
+#........................................................................
+# WARNING
+#
+# This file is a kernel configuration fragment, and not a full kernel
+# configuration file. The final kernel configuration is made up of
+# an assembly of processed fragments, each of which is designed to
+# capture a specific part of the final configuration (e.g. platform
+# configuration, feature configuration, and board specific hardware
+# configuration). For more information on kernel configuration, please
+# refer the product documentation.
+#
+#........................................................................
+
+#
+# Definitions for MICROBLAZE
+#
+CONFIG_XILINX_MICROBLAZE0_FAMILY="kintexu"
+CONFIG_XILINX_MICROBLAZE0_USE_FPU=1
+CONFIG_XILINX_MICROBLAZE0_HW_VER="11.0"
+CONFIG_KERNEL_BASE_ADDR=0x80000000
+
+#
+# General Setup
+#
+CONFIG_BLK_DEV_INITRD=y
+
+#
+# Boot options
+#
+CONFIG_CMDLINE="console=ttyUL0,115200 earlycon root=/dev/ram0 rw"
+# CONFIG_CMDLINE_FORCE is not set
+
+#
+# MTD support and Partition parsers
+#
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_M25P80=y
+
+#
+# Networking drivers
+#
+CONFIG_NET_CORE=y
+
+#
+# Xilinx and TI DP83867 Gigabit PHY device drivers
+#
+CONFIG_XILINX_PHY=y
+CONFIG_DP83867_PHY=y \ No newline at end of file
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.1.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.1.bb
new file mode 100644
index 00000000..41c1ffe2
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.1.bb
@@ -0,0 +1,9 @@
+LINUX_VERSION = "5.15.19"
+KBRANCH="xlnx_rebase_v5.15_LTS_2022.1_update"
+SRCREV = "75872fda9ad270b611ee6ae2433492da1e22b688"
+
+KCONF_AUDIT_LEVEL="0"
+
+include linux-xlnx.inc
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.2.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.2.bb
new file mode 100644
index 00000000..260224b8
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2022.2.bb
@@ -0,0 +1,9 @@
+LINUX_VERSION = "5.15.36"
+KBRANCH="xlnx_rebase_v5.15_LTS"
+SRCREV = "19984dd147fa7fbb7cb14b17400263ad0925c189"
+
+KCONF_AUDIT_LEVEL="0"
+
+include linux-xlnx.inc
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb
new file mode 100644
index 00000000..d229f21c
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb
@@ -0,0 +1,11 @@
+LINUX_VERSION = "6.1.30"
+YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=yocto-kmeta"
+KBRANCH="xlnx_rebase_v6.1_LTS_2023.1_update"
+SRCREV = "9299ac26ca514a0ccd9f6ae01f50e816d7e79dfa"
+SRCREV_meta = "185bcfcbe480c742247d9117011794c69682914f"
+
+KCONF_AUDIT_LEVEL="0"
+
+include linux-xlnx.inc
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb
new file mode 100644
index 00000000..ec5827e6
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb
@@ -0,0 +1,11 @@
+LINUX_VERSION = "6.1.60"
+YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=yocto-kmeta"
+KBRANCH="xlnx_rebase_v6.1_LTS"
+SRCREV = "9c55be2d8a90a240912c9b85814ac962c86b382b"
+SRCREV_meta = "185bcfcbe480c742247d9117011794c69682914f"
+
+KCONF_AUDIT_LEVEL="0"
+
+include linux-xlnx.inc
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-yocto-dev.bbappend b/meta-xilinx-core/recipes-kernel/linux/linux-yocto-dev.bbappend
new file mode 100644
index 00000000..05c39951
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-yocto-dev.bbappend
@@ -0,0 +1 @@
+require linux-yocto-xilinx.inc
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-yocto-tiny_%.bbappend b/meta-xilinx-core/recipes-kernel/linux/linux-yocto-tiny_%.bbappend
new file mode 100644
index 00000000..05c39951
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-yocto-tiny_%.bbappend
@@ -0,0 +1 @@
+require linux-yocto-xilinx.inc
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-yocto-xilinx.inc b/meta-xilinx-core/recipes-kernel/linux/linux-yocto-xilinx.inc
new file mode 100644
index 00000000..5e33ffe5
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-yocto-xilinx.inc
@@ -0,0 +1,17 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/linux-xlnx:"
+
+LINUX_MB_INC = ""
+LINUX_MB_INC:microblaze = "linux-microblaze.inc"
+require ${LINUX_MB_INC}
+
+# Zynq default generic KMACHINE
+COMPATIBLE_MACHINE:zynq = "zynq"
+KMACHINE:zynq = "zynq"
+
+# ZynqMP default generic KMACHINE
+COMPATIBLE_MACHINE:zynqmp = "zynqmp"
+KMACHINE:zynqmp = "zynqmp"
+
+# MicroBlaze default generic KMACHINE
+KMACHINE:microblaze = "microblaze"
+COMPATIBLE_MACHINE:microblaze = "microblaze"
diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-xilinx-core/recipes-kernel/linux/linux-yocto_%.bbappend
new file mode 100644
index 00000000..05c39951
--- /dev/null
+++ b/meta-xilinx-core/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -0,0 +1 @@
+require linux-yocto-xilinx.inc