diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
index 65cd98b3..21c558d2 100644
--- a/RECIPE-API-CHANGELOG.md
+++ b/RECIPE-API-CHANGELOG.md
@@ -634,3 +634,15 @@ into kernel kbuild package.
 
 When downloading from debian snapshot mirrors, rate limits might apply.
 To limit the amount of parallel fetching to n kB / s, you can set `ISAR_APT_DL_LIMIT="<n>`.
+
+### Custom directories in vendor kernels
+
+Some vendor kernels come with additional directories to be included in the
+linux-headers package in order to support building of their out-of-tree
+drivers. `HEADERS_INSTALL_EXTRA` may be set to a list of directories relative
+to ${S} in any kernel recipes that includes `linux-custom.inc`. A l4t kernel
+recipe would use the following setting:
+
+```
+HEADERS_INSTALL_EXTRA += "nvidia"
+```
diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
index 00011517..0a7bdd66 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
@@ -193,6 +193,12 @@ kernel_headers() {
     (cd ${S}; find arch/${ARCH} -name module.lds -o -name Kbuild.platforms -o -name Platform) >>${src_hdr_files}
     (cd ${S}; find $(find arch/${ARCH} -name include -o -name scripts -type d) -type f) >>${src_hdr_files}
 
+    if [ -n "${HEADERS_INSTALL_EXTRA}" ]; then
+        for d in ${HEADERS_INSTALL_EXTRA}; do
+            (cd ${S}; find ${d} -type f) >>${src_hdr_files}
+        done
+    fi
+
     if [ -n "${CONFIG_MODULES}" ]; then
         echo Module.symvers >> ${obj_hdr_files}
     fi
diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
index 6aa70fd3..7e312b75 100644
--- a/meta/recipes-kernel/linux/linux-custom.inc
+++ b/meta/recipes-kernel/linux/linux-custom.inc
@@ -48,6 +48,8 @@ LINUX_VERSION_EXTENSION ?= ""
 
 KERNEL_DEFCONFIG ??= ""
 
+HEADERS_INSTALL_EXTRA ??= ""
+
 # Add our template meta-data to the sources
 FILESPATH:append := ":${FILE_DIRNAME}/files"
 SRC_URI += "file://debian"
@@ -84,6 +86,7 @@ TEMPLATE_VARS += "                \
     KAFLAGS                       \
     DISTRIBUTOR                   \
     KERNEL_EXTRA_BUILDARGS        \
+    HEADERS_INSTALL_EXTRA         \
 "
 
 inherit dpkg
@@ -224,6 +227,15 @@ do_prepare_build:prepend() {
 
 	# produce a changelog for our kernel build
 	deb_add_changelog
+
+	# make sure user-specified directories do exist in ${S}
+	if [ -n "${HEADERS_INSTALL_EXTRA}" ]; then
+		for d in ${HEADERS_INSTALL_EXTRA}; do
+			[ -d ${S}/${d} ] || {
+				bbfatal "HEADERS_INSTALL_EXTRA: '${d}' not found in \${S}!"
+			}
+		done
+	fi
 }
 
 # build directory for our "full" kernel build
