aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel')
-rw-r--r--recipes-kernel/cryptodev/cryptodev-module/0001-zc-Force-4.10-get_user_pages_remote-API.patch26
-rw-r--r--recipes-kernel/cryptodev/cryptodev-module_%.bbappend9
-rw-r--r--recipes-kernel/intel-ethernet/ixgbe.bb45
-rw-r--r--recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch31
-rw-r--r--recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-src-Makefile-change-make-install-to-make.patch40
-rw-r--r--recipes-kernel/intel-ethernet/ixgbevf.bb46
-rw-r--r--recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch31
-rw-r--r--recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-src-Makefile-change-make-install-to-make.patch32
-rw-r--r--recipes-kernel/intel-ethernet/ixgbevf/0002-ixgbevf_common.patch23
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch36
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch87
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf12
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi_git.bb56
-rw-r--r--recipes-kernel/linux/linux-intel-rt_4.9.bb17
-rw-r--r--recipes-kernel/linux/linux-intel.inc40
-rw-r--r--recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg14
-rw-r--r--recipes-kernel/linux/linux-intel_4.9.bb13
-rw-r--r--recipes-kernel/linux/linux-yocto-dev.bbappend26
-rw-r--r--recipes-kernel/linux/linux-yocto-rt_4.10.bbappend13
-rw-r--r--recipes-kernel/linux/linux-yocto-rt_4.12.bbappend13
-rw-r--r--recipes-kernel/linux/linux-yocto-rt_4.4.bbappend33
-rw-r--r--recipes-kernel/linux/linux-yocto-rt_4.9.bbappend13
-rw-r--r--recipes-kernel/linux/linux-yocto-tiny_4.10.bbappend19
-rw-r--r--recipes-kernel/linux/linux-yocto-tiny_4.12.bbappend19
-rw-r--r--recipes-kernel/linux/linux-yocto-tiny_4.4.bbappend33
-rw-r--r--recipes-kernel/linux/linux-yocto-tiny_4.9.bbappend31
-rw-r--r--recipes-kernel/linux/linux-yocto_%.bbappend4
-rw-r--r--recipes-kernel/linux/linux-yocto_4.10.bbappend21
-rw-r--r--recipes-kernel/linux/linux-yocto_4.12.bbappend21
-rw-r--r--recipes-kernel/linux/linux-yocto_4.4.bbappend43
-rw-r--r--recipes-kernel/linux/linux-yocto_4.9.bbappend21
-rw-r--r--recipes-kernel/lttng/lttng-modules/0002-lttng-modules-PKT-4.9-yocto-build-failed.patch38
-rw-r--r--recipes-kernel/lttng/lttng-modules_%.bbappend7
33 files changed, 913 insertions, 0 deletions
diff --git a/recipes-kernel/cryptodev/cryptodev-module/0001-zc-Force-4.10-get_user_pages_remote-API.patch b/recipes-kernel/cryptodev/cryptodev-module/0001-zc-Force-4.10-get_user_pages_remote-API.patch
new file mode 100644
index 00000000..353126fe
--- /dev/null
+++ b/recipes-kernel/cryptodev/cryptodev-module/0001-zc-Force-4.10-get_user_pages_remote-API.patch
@@ -0,0 +1,26 @@
+From 3fcc81ad127c267018aed96a359bbf01db1bd8ee Mon Sep 17 00:00:00 2001
+From: Saul Wold <sgw@linux.intel.com>
+Date: Sat, 1 Apr 2017 11:43:31 -0700
+Subject: [PATCH] zc: Force 4.10 get_user_pages_remote API
+
+This change forces the newer API, as the linux-intel 4.9-LTS kernel
+backported the 4.10 API change in the page handling code.
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+---
+ zc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/zc.c b/zc.c
+index ae464ff..b2759ce 100644
+--- a/zc.c
++++ b/zc.c
+@@ -65,7 +65,7 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
+ #elif (LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0))
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write, 0, pg, NULL);
+-#elif (LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0))
++#elif (LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0) & 0)
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ pg, NULL);
diff --git a/recipes-kernel/cryptodev/cryptodev-module_%.bbappend b/recipes-kernel/cryptodev/cryptodev-module_%.bbappend
new file mode 100644
index 00000000..c59ddb2f
--- /dev/null
+++ b/recipes-kernel/cryptodev/cryptodev-module_%.bbappend
@@ -0,0 +1,9 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+python() {
+ # When we add more kernels for linux-intel, we may have to add a Version check
+ if (d.getVar("PREFERRED_PROVIDER_virtual/kernel") == "linux-intel"):
+ src_uri = d.getVar("SRC_URI")
+ d.setVar("SRC_URI", src_uri +
+ " file://0001-zc-Force-4.10-get_user_pages_remote-API.patch")
+}
diff --git a/recipes-kernel/intel-ethernet/ixgbe.bb b/recipes-kernel/intel-ethernet/ixgbe.bb
new file mode 100644
index 00000000..181158d4
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbe.bb
@@ -0,0 +1,45 @@
+SUMMARY="ixgbe kernel driver for Intel Magnolia Park 10GbE"
+DESCRIPTION="Intel 10-Gbps Ethernet driver for Magnolia Park"
+AUTHOR = "Ong Boon Leong"
+HOMEPAGE = "http://www.intel.com/network/connectivity/products/server_adapters.htm"
+SECTION = "kernel/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${PN}-${PV}/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PV = "5.1.3"
+PR = "r0"
+
+SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/${PV}/ixgbe-${PV}.tar.gz \
+ file://0001-ixgbe-src-Makefile-change-make-install-to-make.patch \
+ file://0001-ixgbe-skip-host-depmod.patch \
+ "
+
+SRC_URI[md5sum] = "ae35ed547aa6a5087672c3f70ce1e676"
+SRC_URI[sha256sum] = "9f537d79bddf0a087a17af632d57812d26d26bcfebbd4bdcf10df656ff055bb4"
+
+S = "${WORKDIR}/${PN}-${PV}/src"
+SCRIPT_DIR = "${WORKDIR}/${PN}-${PV}/scripts"
+
+EXTRA_OEMAKE='KSRC="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" \
+ BUILD_ARCH="${TARGET_ARCH}" PREFIX="${D}" \
+ SYSTEM_MAP_FILE="${STAGING_KERNEL_BUILDDIR}/System.map-${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"'
+
+KERNEL_MODULE_AUTOLOAD_append_intel-core2-32 = " ixgbe"
+KERNEL_MODULE_AUTOLOAD_append_intel-corei7-64 = " ixgbe"
+
+inherit module
+
+do_install_append () {
+ # Install scripts/set_irq_affinity
+ install -d ${D}/etc/network
+ install -m 0755 ${SCRIPT_DIR}/set_irq_affinity ${D}/etc/network
+}
+
+#SSTATE_DUPWHITELIST += "${STAGING_DIR_HOST}/lib/modules/${KERNEL_VERSION}/"
+
+PACKAGES += "${PN}-script"
+
+FILES_${PN}-script += "/etc/network/set_irq_affinity"
+
+#Ignore "ERROR: QA Issue: ixgbe: Files/directories were installed but not shipped"
+INSANE_SKIP_${PN} = "installed-vs-shipped"
diff --git a/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch b/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch
new file mode 100644
index 00000000..e53f86e5
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch
@@ -0,0 +1,31 @@
+From e32eab62e3f79ddd40946ca698d9e650bd7d9b2d Mon Sep 17 00:00:00 2001
+From: sweeaun <swee.aun.khor@intel.com>
+Date: Sat, 7 Oct 2017 20:49:36 -0700
+Subject: [PATCH] ixgbe: skip host depmod
+
+Upstream-Status: Inappropriate [Cross-Compile]
+
+Depmod during do_install is irrelevant when cross-compiling.
+Remove the depmod steps during do_install.
+
+Signed-off-by: sweeaun <swee.aun.khor@intel.com>
+---
+ Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index fa92f81..b39283a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -141,8 +141,6 @@ modules_install: default manfile
+ @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
+ @echo "Installing modules..."
+ @+$(call devkernelbuild,modules_install)
+- @echo "Running depmod..."
+- @$(call cmd_depmod)
+
+ uninstall:
+ rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko;
+--
+2.7.4
+
diff --git a/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-src-Makefile-change-make-install-to-make.patch b/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-src-Makefile-change-make-install-to-make.patch
new file mode 100644
index 00000000..88f5335a
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-src-Makefile-change-make-install-to-make.patch
@@ -0,0 +1,40 @@
+From 09c7a5afa76530a3720d97726f2b372f72b0af08 Mon Sep 17 00:00:00 2001
+From: "Goh, Wen Sen" <wen.sen.goh@intel.com>
+Date: Wed, 22 Jun 2016 11:18:37 +0800
+Subject: [PATCH] ixgbe: src/Makefile: change make install to make
+ modules_install
+
+Per guideline from Linux Documentation at
+Documentation/kbuild/modules.txt
+the correct target is "modules_install" not "install".
+
+Upstream-Status: Inappropriate [It is tarball released by Intel Network
+driver group]
+
+---
+ src/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 852becb..480ecee 100644
+--- a/Makefile
++++ b/Makefile
+@@ -136,7 +136,7 @@ clean:
+ @-rm -rf *.${MANSECTION}.gz *.ko
+
+ # Install the modules and manpage
+-install: default manfile
++modules_install: default manfile
+ @echo "Copying manpages..."
+ @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
+ @echo "Installing modules..."
+@@ -191,6 +191,6 @@ help:
+ @echo ' Other variables may be available for tuning make process, see'
+ @echo ' Kernel Kbuild documentation for more information'
+
+-.PHONY: default noisy clean manfile silent sparse ccc install uninstall help
++.PHONY: default noisy clean manfile silent sparse ccc modules_install uninstall help
+
+ endif # ifneq($(KERNELRELEASE),)
+--
+2.8.3
diff --git a/recipes-kernel/intel-ethernet/ixgbevf.bb b/recipes-kernel/intel-ethernet/ixgbevf.bb
new file mode 100644
index 00000000..6a9636e6
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbevf.bb
@@ -0,0 +1,46 @@
+SUMMARY="ixgbevf kernel driver for Intel Magnolia Park 10GbE"
+DESCRIPTION="Intel 10-Gbps Ethernet driver for Magnolia Park"
+AUTHOR = "Ong Boon Leong"
+HOMEPAGE = "http://www.intel.com/network/connectivity/products/server_adapters.htm"
+SECTION = "kernel/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${PN}-${PV}/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PV = "4.1.2"
+PR = "r0"
+
+SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/${PV}/ixgbevf-${PV}.tar.gz \
+ file://0001-ixgbevf-src-Makefile-change-make-install-to-make.patch \
+ file://0002-ixgbevf_common.patch \
+ file://0001-ixgbevf-skip-host-depmod.patch \
+ "
+
+SRC_URI[md5sum] = "f02ec46369d1ca949a1e9d2e0eb74d5f"
+SRC_URI[sha256sum] = "ab2824541f8a2d8f7b7d26ccbb46359ef551c5d4625fb333014e2b8023ac3ab6"
+
+S = "${WORKDIR}/${PN}-${PV}/src"
+SCRIPT_DIR = "${WORKDIR}/${PN}-${PV}/scripts"
+
+EXTRA_OEMAKE='KSRC="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" \
+ BUILD_ARCH="${TARGET_ARCH}" PREFIX="${D}" \
+ SYSTEM_MAP_FILE="${STAGING_KERNEL_BUILDDIR}/System.map-${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"'
+
+KERNEL_MODULE_AUTOLOAD_append_intel-core2-32 = " ixgbevf"
+KERNEL_MODULE_AUTOLOAD_append_intel-corei7-64 = " ixgbevf"
+
+inherit module
+
+do_install_append () {
+ # Install scripts/set_irq_affinity
+ install -d ${D}/etc/network
+ install -m 0755 ${SCRIPT_DIR}/set_irq_affinity ${D}/etc/network
+}
+
+#SSTATE_DUPWHITELIST += "${STAGING_DIR_HOST}/lib/modules/${KERNEL_VERSION}/"
+
+PACKAGES += "${PN}-script"
+
+FILES_${PN}-script += "/etc/network/set_irq_affinity"
+
+#Ignore "ERROR: QA Issue: ixgbe: Files/directories were installed but not shipped"
+INSANE_SKIP_${PN} = "installed-vs-shipped"
diff --git a/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch b/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch
new file mode 100644
index 00000000..656a897d
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch
@@ -0,0 +1,31 @@
+From 9677d09f5c3984997ac8e7d90b5d4b11fb9ce277 Mon Sep 17 00:00:00 2001
+From: sweeaun <swee.aun.khor@intel.com>
+Date: Sat, 7 Oct 2017 20:56:35 -0700
+Subject: [PATCH] ixgbevf: skip host depmod
+
+Upstream-Status: Inappropriate [Cross-Compile]
+
+Depmod during do_install is irrelevant when cross-compiling.
+Remove the depmod steps during do_install.
+
+Signed-off-by: sweeaun <swee.aun.khor@intel.com>
+---
+ Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 91df705..1dcf350 100644
+--- a/Makefile
++++ b/Makefile
+@@ -104,8 +104,6 @@ modules_install: default manfile
+ @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
+ @echo "Installing modules..."
+ @+$(call kernelbuild,modules_install)
+- @echo "Running depmod..."
+- @$(call cmd_depmod)
+
+ uninstall:
+ rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko;
+--
+2.7.4
+
diff --git a/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-src-Makefile-change-make-install-to-make.patch b/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-src-Makefile-change-make-install-to-make.patch
new file mode 100644
index 00000000..8234f589
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-src-Makefile-change-make-install-to-make.patch
@@ -0,0 +1,32 @@
+From 511ee0d8d40a3e76b3e9875a96228ff370dbdfc6 Mon Sep 17 00:00:00 2001
+From: "Goh, Wen Sen" <wen.sen.goh@intel.com>
+Date: Wed, 22 Jun 2016 11:25:41 +0800
+Subject: [PATCH] ixgbevf_patch
+
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8df134a..8d5660e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -100,7 +100,7 @@ clean:
+ @-rm -rf *.${MANSECTION}.gz *.ko
+
+ # Install the modules and manpage
+-install: default manfile
++modules_install: default manfile
+ @echo "Copying manpages..."
+ @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
+ @echo "Installing modules..."
+@@ -145,6 +145,6 @@ help:
+ @echo ' Other variables may be available for tuning make process, see'
+ @echo ' Kernel Kbuild documentation for more information'
+
+-.PHONY: default noisy clean manfile silent sparse ccc install uninstall help
++.PHONY: default noisy clean manfile silent sparse ccc modules_install uninstall help
+
+ endif # ifneq($(KERNELRELEASE),)
+--
+2.8.3
diff --git a/recipes-kernel/intel-ethernet/ixgbevf/0002-ixgbevf_common.patch b/recipes-kernel/intel-ethernet/ixgbevf/0002-ixgbevf_common.patch
new file mode 100644
index 00000000..d442e24d
--- /dev/null
+++ b/recipes-kernel/intel-ethernet/ixgbevf/0002-ixgbevf_common.patch
@@ -0,0 +1,23 @@
+From f74fbcd821a394dec58263fd2c2ea62eae298b2f Mon Sep 17 00:00:00 2001
+From: "Goh, Wen Sen" <wen.sen.goh@intel.com>
+Date: Sun, 26 Jun 2016 12:01:36 +0800
+Subject: [PATCH] ixgbevf patch
+
+---
+ common.mk | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/common.mk b/common.mk
+index b9b01c7..228a926 100644
+--- a/common.mk
++++ b/common.mk
+@@ -289,6 +289,7 @@ export INSTALL_MOD_DIR ?= updates/drivers/net/ethernet/intel/${DRIVER}
+ kernelbuild = ${MAKE} $(if ${GCC_I_SYS},CC="${GCC_I_SYS}") \
+ ${CCFLAGS_VAR}="${EXTRA_CFLAGS}" \
+ -C "${KSRC}" \
++ CONFIG_IXGBE=m \
+ CONFIG_${DRIVER_UPPERCASE}=m \
+ M="${CURDIR}" \
+ ${2} ${1};
+--
+2.8.3
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch
new file mode 100644
index 00000000..1d4137ba
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch
@@ -0,0 +1,36 @@
+From f69ff2fd27903ee052309179271f708d720a2f94 Mon Sep 17 00:00:00 2001
+From: Mikko Ylinen <mikko.ylinen@linux.intel.com>
+Date: Thu, 10 Aug 2017 21:12:51 +0300
+Subject: [PATCH] Makefile.real: skip host install scripts
+
+The scripts run in install target are relevant (and working)
+only if the driver installation is run on the build host.
+
+Skip the scripts when cross-compiling.
+
+Upstream-Status: Inappropriate [Cross-Compile]
+
+Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
+---
+ Makefile.real | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/Makefile.real b/Makefile.real
+index ba09f99..f5075de 100644
+--- a/Makefile.real
++++ b/Makefile.real
+@@ -104,11 +104,6 @@ install: modules
+ @$(MAKE) -C $(KLIB_BUILD) M=$(BACKPORT_DIR) \
+ INSTALL_MOD_DIR=$(KMODDIR) $(KMODPATH_ARG) \
+ modules_install
+- @./scripts/blacklist.sh $(KLIB)/ $(KLIB)/$(KMODDIR)
+- @./scripts/compress_modules.sh $(KLIB)/$(KMODDIR)
+- @./scripts/check_depmod.sh
+- @/sbin/depmod -a
+- @./scripts/update-initramfs.sh $(KLIB)
+ @echo
+ @echo Your backported driver modules should be installed now.
+ @echo Reboot.
+--
+2.1.4
+
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch
new file mode 100644
index 00000000..4fdc36f7
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch
@@ -0,0 +1,87 @@
+From ecb29b78ce946c802058be0c46a0d20432f412e5 Mon Sep 17 00:00:00 2001
+From: Saul Wold <sgw@linux.intel.com>
+Date: Thu, 28 Sep 2017 10:51:15 -0700
+Subject: [PATCH] hrtimer: fix version numbers because production kernel has
+ update
+
+Decrease the version check because the OTC production kernel which is
+4.9 includes the HRTimer code that this is using.
+
+Upstream-Status: [Backport] It's been backported into the older kernel
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+---
+ backport-include/linux/hrtimer.h | 2 +-
+ drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 +-
+ drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 +-
+ drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c | 2 +-
+ net/mac80211/tx.c | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/backport-include/linux/hrtimer.h b/backport-include/linux/hrtimer.h
+index bdcf106e1..ae128852d 100644
+--- a/backport-include/linux/hrtimer.h
++++ b/backport-include/linux/hrtimer.h
+@@ -4,7 +4,7 @@
+ #include_next <linux/hrtimer.h>
+ #include <linux/interrupt.h>
+
+-#if LINUX_VERSION_IS_LESS(4,10,0)
++#if LINUX_VERSION_IS_LESS(4,9,0)
+ static inline void backport_hrtimer_start(struct hrtimer *timer, s64 time,
+ const enum hrtimer_mode mode)
+ {
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+index cf1f95a01..e6f1ff294 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+@@ -1310,7 +1310,7 @@ static void iwl_mvm_tx_lat_add_ts_ack(struct sk_buff *skb)
+ s64 ts_1 = ktime_to_ns(skb->tstamp) >> 32;
+ s64 diff = temp - ts_1;
+
+-#if LINUX_VERSION_IS_LESS(4,10,0)
++#if LINUX_VERSION_IS_LESS(4,9,0)
+ skb->tstamp.tv64 += diff;
+ #else
+ skb->tstamp += diff;
+diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+index df81bce25..ad664bacd 100644
+--- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
++++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+@@ -1955,7 +1955,7 @@ static void iwl_trans_pci_tx_lat_add_ts_write(struct sk_buff *skb)
+ s64 ts_1 = ktime_to_ns(skb->tstamp) >> 32;
+ s64 diff = temp - ts_1;
+
+-#if LINUX_VERSION_IS_LESS(4,10,0)
++#if LINUX_VERSION_IS_LESS(4,9,0)
+ skb->tstamp.tv64 += diff << 16;
+ #else
+ skb->tstamp += diff << 16;
+diff --git a/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c b/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c
+index e4d45bcf7..cdd0ba9a2 100644
+--- a/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c
++++ b/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c
+@@ -796,7 +796,7 @@ void iwl_slv_tx_lat_add_ts_write(struct iwl_trans_slv *trans_slv,
+
+ ts_1 = ktime_to_ns(data_entry->skb->tstamp) >> 32;
+ diff = temp - ts_1;
+-#if LINUX_VERSION_IS_LESS(4,10,0)
++#if LINUX_VERSION_IS_LESS(4,9,0)
+ data_entry->skb->tstamp.tv64 += diff << 16;
+ #else
+ data_entry->skb->tstamp += diff << 16;
+diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
+index 94a348688..0f226c413 100644
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -2278,7 +2278,7 @@ static void ieee80211_tx_latency_start_msrmnt(struct ieee80211_local *local,
+ if (!tx_latency && !tx_consec && !tx_thrshld)
+ return;
+ temp = ktime_to_ms(ktime_get());
+-#if LINUX_VERSION_IS_LESS(4,10,0)
++#if LINUX_VERSION_IS_LESS(4,9,0)
+ skb->tstamp.tv64 += temp << 32;
+ #else
+ skb->tstamp += temp << 32;
+--
+2.13.5
+
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf b/recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf
new file mode 100644
index 00000000..a0e5f6ff
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf
@@ -0,0 +1,12 @@
+# /etc/modprobe.d/iwlwifi.conf
+# iwlwifi will dynamically load either iwldvm or iwlmvm depending on the
+# microcode file installed on the system. When removing iwlwifi, first
+# remove the iwl?vm module and then iwlwifi.
+remove iwlwifi (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm16 -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) && /sbin/modprobe -r mac80211
+
+#options iwlwifi lar_disable=1
+#options iwlwifi nvm_file="nvm-sfp-b2-open.bin"
+options iwlmvm power_scheme=1
+
+# PCI BUS
+
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
new file mode 100644
index 00000000..d391045f
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Intel Wireless LinuxCore kernel driver"
+DESCRIPTION = "Intel Wireless LinuxCore kernel driver"
+SECTION = "kernel"
+LICENSE = "GPLv2"
+
+REQUIRED_DISTRO_FEATURES = "wifi"
+
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+inherit module
+
+# For some iwfwifi LinuxCore supported wireless chips, the best/latest
+# firmware blobs are found in the iwlwifi's linux-firmware.git fork.
+#
+# See: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi/core_release
+#
+# When updating this recipe, ensure that the proper firmware is included from
+# either the linux-firmware or iwlwifi-firmware repos.
+
+PV = "30"
+SRCREV = "b31221a99488021300e7f89d2ecf9bdd2bc52dd2"
+
+# Add a patch for Intel's Production Kernel as it's got a backport of HRTimers
+PK_PATCH = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/kernel','linux-intel','file://0001-hrtimer-fix-version-numbers-because-production-kerne.patch','',d)}"
+
+SRC_URI = " \
+ git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi;branch=release/LinuxCore${PV} \
+ file://0001-Makefile.real-skip-host-install-scripts.patch \
+ ${PK_PATCH} \
+ file://iwlwifi.conf \
+ "
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "INSTALL_MOD_PATH=${D} KLIB_BUILD=${KBUILD_OUTPUT}"
+
+do_configure() {
+ CC=gcc CFLAGS= LDFLAGS= make defconfig-iwlwifi-public KLIB_BUILD=${KBUILD_OUTPUT}
+}
+
+MODULES_INSTALL_TARGET="install"
+
+do_install_append() {
+ ## install configs and service scripts
+ install -d ${D}${sysconfdir}/modprobe.d
+ install -m 0644 ${WORKDIR}/iwlwifi.conf ${D}${sysconfdir}/modprobe.d
+}
+
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+RDEPENDS_${PN} = "linux-firmware-iwlwifi"
+
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
+
+KERNEL_MODULE_PACKAGE_PREFIX = "backport-iwlwifi"
diff --git a/recipes-kernel/linux/linux-intel-rt_4.9.bb b/recipes-kernel/linux/linux-intel-rt_4.9.bb
new file mode 100644
index 00000000..02192735
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel-rt_4.9.bb
@@ -0,0 +1,17 @@
+
+require linux-intel.inc
+
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt":
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it")
+}
+
+KBRANCH = "base-rt"
+SRCREV_machine ?= "44f76edc2079f1551be33b8ab473349d00f814a7"
+SRCREV_meta ?= "3d5b27b2d138b71052a1d17a5cca73aa0ec75328"
+
+LINUX_KERNEL_TYPE = "preempt-rt"
diff --git a/recipes-kernel/linux/linux-intel.inc b/recipes-kernel/linux/linux-intel.inc
new file mode 100644
index 00000000..1f26d451
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel.inc
@@ -0,0 +1,40 @@
+require recipes-kernel/linux/linux-yocto.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:"
+
+KERNEL_CONFIG_URI ?= " \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.9;destsuffix=${KMETA} \
+ "
+SRC_URI = " \
+ git://github.com/01org/linux-intel-4.9.git;protocol=https;name=machine;branch=${KBRANCH}; \
+ ${KERNEL_CONFIG_URI} \
+ "
+
+SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg"
+
+
+LINUX_VERSION ?= "4.9.56"
+LINUX_VERSION_EXTENSION ?= "-intel-pk-${LINUX_KERNEL_TYPE}"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = "features/qat/qat.scc"
+
+# Functionality flags
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
diff --git a/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg b/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg
new file mode 100644
index 00000000..f7d7322e
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg
@@ -0,0 +1,14 @@
+# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
+# CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set
+# CONFIG_SND_SOC_INTEL_BXT_FLORIDA_MACH is not set
+# CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set
+# CONFIG_SND_SOC_INTEL_BXT_TDF8532_MACH is not set
+# CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH is not set
+# CONFIG_SND_SOC_INTEL_SKL_RT286_MACH is not set
+# CONFIG_SND_SOC_INTEL_CNL_WM8281_MACH is not set
+# CONFIG_SND_SOC_INTEL_CNL_RT274_MACH is not set
+# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH is not set
+# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH is not set
+# CONFIG_SND_SOC_INTEL_CNL_CS42L42_MACH is not set
+# CONFIG_SND_SOC_INTEL_CNL_RT700_MACH is not set
+# CONFIG_SND_SOC_INTEL_CNL_SVFPGA_MACH is not set
diff --git a/recipes-kernel/linux/linux-intel_4.9.bb b/recipes-kernel/linux/linux-intel_4.9.bb
new file mode 100644
index 00000000..ec239242
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel_4.9.bb
@@ -0,0 +1,13 @@
+
+require linux-intel.inc
+
+KBRANCH = "base"
+SRCREV_machine ?= "e8405acd549563650e2e4774a49e069d161e8fe1"
+SRCREV_meta ?= "3d5b27b2d138b71052a1d17a5cca73aa0ec75328"
+
+# For Crystalforest and Romley
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
new file mode 100644
index 00000000..ee33ecc3
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
@@ -0,0 +1,26 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+# Quark / X1000 BSP Info
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
+
+# NOTE: We do not set SRCREVs here as -dev is intended to be built with AUTOREV
+# and setting them here breaks the default mechanism to use AUTOREV if the
+# default SRCREV is set and linux-yocto-dev is the preferred provider.
+
+# For Crystalforest and Romley
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
+
+# For FRI2, NUC
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
diff --git a/recipes-kernel/linux/linux-yocto-rt_4.10.bbappend b/recipes-kernel/linux/linux-yocto-rt_4.10.bbappend
new file mode 100644
index 00000000..17569a1c
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-rt_4.10.bbappend
@@ -0,0 +1,13 @@
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
diff --git a/recipes-kernel/linux/linux-yocto-rt_4.12.bbappend b/recipes-kernel/linux/linux-yocto-rt_4.12.bbappend
new file mode 100644
index 00000000..17569a1c
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-rt_4.12.bbappend
@@ -0,0 +1,13 @@
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
diff --git a/recipes-kernel/linux/linux-yocto-rt_4.4.bbappend b/recipes-kernel/linux/linux-yocto-rt_4.4.bbappend
new file mode 100644
index 00000000..c18f4a11
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-rt_4.4.bbappend
@@ -0,0 +1,33 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+LINUX_VERSION_INTEL_COMMON = "4.4.87"
+SRCREV_META_INTEL_COMMON ?= "804d2b3164ec25ed519fd695de9aa0908460c92e"
+SRCREV_MACHINE_INTEL_COMMON ?= "d1ce34c9e66fe55382cc196fe7facbe7865c4eed"
+
+KBRANCH_INTEL_COMMON = "standard/preempt-rt/intel/base"
+
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+LINUX_VERSION_core2-32-intel-common = "${LINUX_VERSION_INTEL_COMMON}"
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KBRANCH_core2-32-intel-common = "${KBRANCH_INTEL_COMMON}"
+SRCREV_meta_core2-32-intel-common ?= "${SRCREV_META_INTEL_COMMON}"
+SRCREV_machine_core2-32-intel-common ?= "${SRCREV_MACHINE_INTEL_COMMON}"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+LINUX_VERSION_corei7-64-intel-common = "${LINUX_VERSION_INTEL_COMMON}"
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KBRANCH_corei7-64-intel-common = "${KBRANCH_INTEL_COMMON}"
+SRCREV_meta_corei7-64-intel-common ?= "${SRCREV_META_INTEL_COMMON}"
+SRCREV_machine_corei7-64-intel-common ?= "${SRCREV_MACHINE_INTEL_COMMON}"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+LINUX_VERSION_i586-nlp-32-intel-common = "${LINUX_VERSION_INTEL_COMMON}"
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KBRANCH_i586-nlp-32-intel-common = "${KBRANCH_INTEL_COMMON}"
+SRCREV_meta_i586-nlp-32-intel-common ?= "${SRCREV_META_INTEL_COMMON}"
+SRCREV_machine_i586-nlp-32-intel-common ?= "${SRCREV_MACHINE_INTEL_COMMON}"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
diff --git a/recipes-kernel/linux/linux-yocto-rt_4.9.bbappend b/recipes-kernel/linux/linux-yocto-rt_4.9.bbappend
new file mode 100644
index 00000000..9d2e3c0b
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-rt_4.9.bbappend
@@ -0,0 +1,13 @@
+KERNEL_FEATURES_INTEL_COMMON = ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
diff --git a/recipes-kernel/linux/linux-yocto-tiny_4.10.bbappend b/recipes-kernel/linux/linux-yocto-tiny_4.10.bbappend
new file mode 100644
index 00000000..b8d3d81c
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-tiny_4.10.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+
+KBRANCH_i586-nlp-32-intel-common = "standard/tiny/base"
+KBRANCH_core2-32-intel-common = "standard/tiny/base"
+KBRANCH_corei7-64-intel-common = "standard/tiny/base"
+
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
diff --git a/recipes-kernel/linux/linux-yocto-tiny_4.12.bbappend b/recipes-kernel/linux/linux-yocto-tiny_4.12.bbappend
new file mode 100644
index 00000000..b8d3d81c
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-tiny_4.12.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+
+KBRANCH_i586-nlp-32-intel-common = "standard/tiny/base"
+KBRANCH_core2-32-intel-common = "standard/tiny/base"
+KBRANCH_corei7-64-intel-common = "standard/tiny/base"
+
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
diff --git a/recipes-kernel/linux/linux-yocto-tiny_4.4.bbappend b/recipes-kernel/linux/linux-yocto-tiny_4.4.bbappend
new file mode 100644
index 00000000..54430e21
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-tiny_4.4.bbappend
@@ -0,0 +1,33 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+EXTRA_OEMAKE = "LD=${STAGING_BINDIR_NATIVE}/${HOST_SYS}/${TARGET_PREFIX}ld AR=${STAGING_BINDIR_NATIVE}/${HOST_SYS}/${TARGET_PREFIX}gcc-ar"
+
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+LINUX_VERSION_i586-nlp-32-intel-common = "4.4.87"
+LINUX_VERSION_core2-32-intel-common = "4.4.87"
+LINUX_VERSION_corei7-64-intel-common = "4.4.87"
+
+SRCREV_meta_i586-nlp-32-intel-common = "804d2b3164ec25ed519fd695de9aa0908460c92e"
+SRCREV_meta_core2-32-intel-common = "804d2b3164ec25ed519fd695de9aa0908460c92e"
+SRCREV_meta_corei7-64-intel-common = "804d2b3164ec25ed519fd695de9aa0908460c92e"
+
+SRCREV_machine_i586-nlp-32-intel-common = "85b913cc9d5e13602d69e50bd9cf1a6ef242f9ee"
+SRCREV_machine_core2-32-intel-common = "85b913cc9d5e13602d69e50bd9cf1a6ef242f9ee"
+SRCREV_machine_corei7-64-intel-common = "85b913cc9d5e13602d69e50bd9cf1a6ef242f9ee"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+
+KBRANCH_i586-nlp-32-intel-common = "standard/tiny/intel/base"
+KBRANCH_core2-32-intel-common = "standard/tiny/intel/base"
+KBRANCH_corei7-64-intel-common = "standard/tiny/intel/base"
+
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
diff --git a/recipes-kernel/linux/linux-yocto-tiny_4.9.bbappend b/recipes-kernel/linux/linux-yocto-tiny_4.9.bbappend
new file mode 100644
index 00000000..9ecdb95a
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-tiny_4.9.bbappend
@@ -0,0 +1,31 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+EXTRA_OEMAKE = "LD=${STAGING_BINDIR_NATIVE}/${HOST_SYS}/${TARGET_PREFIX}ld AR=${STAGING_BINDIR_NATIVE}/${HOST_SYS}/${TARGET_PREFIX}gcc-ar"
+
+LINUX_VERSION_i586-nlp-32-intel-common = "4.9.13"
+LINUX_VERSION_core2-32-intel-common = "4.9.13"
+LINUX_VERSION_corei7-64-intel-common = "4.9.13"
+
+SRCREV_meta_i586-nlp-32-intel-common = "8f3bc608ae61c5333043167fa31bac33be93c3de"
+SRCREV_meta_core2-32-intel-common = "8f3bc608ae61c5333043167fa31bac33be93c3de"
+SRCREV_meta_corei7-64-intel-common = "8f3bc608ae61c5333043167fa31bac33be93c3de"
+
+SRCREV_machine_i586-nlp-32-intel-common = "95c0a80ee83f1cf8e59d733f36e8a9dfd50a0098"
+SRCREV_machine_core2-32-intel-common = "95c0a80ee83f1cf8e59d733f36e8a9dfd50a0098"
+SRCREV_machine_corei7-64-intel-common = "95c0a80ee83f1cf8e59d733f36e8a9dfd50a0098"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+
+KBRANCH_i586-nlp-32-intel-common = "standard/tiny/base"
+KBRANCH_core2-32-intel-common = "standard/tiny/base"
+KBRANCH_corei7-64-intel-common = "standard/tiny/base"
+
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON} cfg/fs/ext4.scc"
diff --git a/recipes-kernel/linux/linux-yocto_%.bbappend b/recipes-kernel/linux/linux-yocto_%.bbappend
new file mode 100644
index 00000000..7c29be14
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -0,0 +1,4 @@
+# The kernel build is 64-bit regardless, so include both common overrides.
+# Without this, the kernel will be missing vars that make it buildable for the
+# intel-corei7-64 machine.
+MACHINEOVERRIDES_prepend_corei7-64-x32-intel-common = "corei7-64-intel-common:"
diff --git a/recipes-kernel/linux/linux-yocto_4.10.bbappend b/recipes-kernel/linux/linux-yocto_4.10.bbappend
new file mode 100644
index 00000000..20504637
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_4.10.bbappend
@@ -0,0 +1,21 @@
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
+
+# For Crystalforest and Romley
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
+
+# For FRI2, NUC
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
diff --git a/recipes-kernel/linux/linux-yocto_4.12.bbappend b/recipes-kernel/linux/linux-yocto_4.12.bbappend
new file mode 100644
index 00000000..20504637
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_4.12.bbappend
@@ -0,0 +1,21 @@
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
+
+# For Crystalforest and Romley
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
+
+# For FRI2, NUC
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
diff --git a/recipes-kernel/linux/linux-yocto_4.4.bbappend b/recipes-kernel/linux/linux-yocto_4.4.bbappend
new file mode 100644
index 00000000..3b02a932
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_4.4.bbappend
@@ -0,0 +1,43 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+LINUX_VERSION_INTEL_COMMON = "4.4.87"
+SRCREV_META_INTEL_COMMON = "804d2b3164ec25ed519fd695de9aa0908460c92e"
+SRCREV_MACHINE_INTEL_COMMON = "57746baa7ae35660fe807c65b6809e6b16d4a448"
+
+KBRANCH_INTEL_COMMON = "standard/intel/base"
+
+KERNEL_FEATURES_INTEL_COMMON ?= ""
+
+LINUX_VERSION_core2-32-intel-common = "${LINUX_VERSION_INTEL_COMMON}"
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KBRANCH_core2-32-intel-common = "${KBRANCH_INTEL_COMMON}"
+SRCREV_meta_core2-32-intel-common ?= "${SRCREV_META_INTEL_COMMON}"
+SRCREV_machine_core2-32-intel-common ?= "${SRCREV_MACHINE_INTEL_COMMON}"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+LINUX_VERSION_corei7-64-intel-common = "${LINUX_VERSION_INTEL_COMMON}"
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+SRCREV_meta_corei7-64-intel-common ?= "${SRCREV_META_INTEL_COMMON}"
+SRCREV_machine_corei7-64-intel-common ?= "${@bb.utils.contains('INTEL_MACHINE_SUBTYPE', 'broxton-m', 'a249f6388ace2a4035220c2333649b42c300faa9', '${SRCREV_MACHINE_INTEL_COMMON}', d)}"
+KBRANCH_corei7-64-intel-common = "${@bb.utils.contains('INTEL_MACHINE_SUBTYPE', 'broxton-m', 'standard/intel/bxt-rebase;rebaseable=1', '${KBRANCH_INTEL_COMMON}', d)}"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+# Quark / X1000 BSP Info
+LINUX_VERSION_i586-nlp-32-intel-common = "${LINUX_VERSION_INTEL_COMMON}"
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KBRANCH_i586-nlp-32-intel-common = "${KBRANCH_INTEL_COMMON}"
+SRCREV_meta_i586-nlp-32-intel-common ?= "${SRCREV_META_INTEL_COMMON}"
+SRCREV_machine_i586-nlp-32-intel-common ?= "${SRCREV_MACHINE_INTEL_COMMON}"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
+
+
+# For Crystalforest and Romley
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
+
+# For FRI2, NUC
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
diff --git a/recipes-kernel/linux/linux-yocto_4.9.bbappend b/recipes-kernel/linux/linux-yocto_4.9.bbappend
new file mode 100644
index 00000000..a09fe1a4
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_4.9.bbappend
@@ -0,0 +1,21 @@
+KERNEL_FEATURES_INTEL_COMMON = ""
+
+COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}"
+KMACHINE_core2-32-intel-common = "intel-core2-32"
+KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}"
+KMACHINE_corei7-64-intel-common = "intel-corei7-64"
+KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
+
+COMPATIBLE_MACHINE_i586-nlp-32-intel-common = "${MACHINE}"
+KMACHINE_i586-nlp-32-intel-common = "intel-quark"
+KERNEL_FEATURES_append_i586-nlp-32-intel-common = ""
+
+# For Crystalforest and Romley
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
+
+# For FRI2, NUC
+KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
+KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
diff --git a/recipes-kernel/lttng/lttng-modules/0002-lttng-modules-PKT-4.9-yocto-build-failed.patch b/recipes-kernel/lttng/lttng-modules/0002-lttng-modules-PKT-4.9-yocto-build-failed.patch
new file mode 100644
index 00000000..32b49b8d
--- /dev/null
+++ b/recipes-kernel/lttng/lttng-modules/0002-lttng-modules-PKT-4.9-yocto-build-failed.patch
@@ -0,0 +1,38 @@
+From ebfdc8b8af17f9cf23c6878eb52476fde7b48e5c Mon Sep 17 00:00:00 2001
+From: Priyalee Kushwaha <priyalee.kushwaha@intel.com>
+Date: Fri, 22 Sep 2017 14:40:57 -0700
+Subject: [PATCH] lttng-modules: PKT 4.9 yocto build failed
+
+PKT 4.9 yocto kernel backports a patch from upstream and that
+changes header include/linux/ktimer.h. Since this backported
+patch is only relevant for PKT kernel, we need to carry this
+patch.
+
+Upstream-Status: Backport
+Signed-off-by: Kushwaha, Priyalee <priyalee.kushwaha@intel.com>
+---
+ instrumentation/events/lttng-module/timer.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/timer.h b/instrumentation/events/lttng-module/timer.h
+index d62fd25..59da988 100644
+--- a/instrumentation/events/lttng-module/timer.h
++++ b/instrumentation/events/lttng-module/timer.h
+@@ -16,11 +16,11 @@ struct timer_list;
+
+ #endif /* _TRACE_TIMER_DEF_ */
+
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0))
+ #define lttng_ktime_get_tv64(kt) (kt)
+-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)) */
+ #define lttng_ktime_get_tv64(kt) ((kt).tv64)
+-#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
++#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)) */
+
+ LTTNG_TRACEPOINT_EVENT_CLASS(timer_class,
+
+--
+2.7.4
+
diff --git a/recipes-kernel/lttng/lttng-modules_%.bbappend b/recipes-kernel/lttng/lttng-modules_%.bbappend
new file mode 100644
index 00000000..dc1c4a74
--- /dev/null
+++ b/recipes-kernel/lttng/lttng-modules_%.bbappend
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:"
+
+
+LTTNG_PATCH = "${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/kernel','linux-intel linux-intel-rt','file://0002-lttng-modules-PKT-4.9-yocto-build-failed.patch','',d)}"
+
+SRC_URI_append_intel-x86-common = " ${LTTNG_PATCH}"
+