| Message ID | 20260828145834.1304057-1-gehariprasath@ti.com |
|---|---|
| State | New |
| Headers | show |
| Series | [meta-ti,scarthgap,v3] ti-vendor-kernel-headers: add recipe for TI-only dma-heap.h ioctl | expand |
meta-ti / na / 20260828145834.1304057-1-gehariprasath PRC Results: PASS ========================================================= check-yocto-patches: PASS ========================================================= Patches ---------------------------------------- All patches passed ========================================================= apply-yocto-patch: PASS ========================================================= scarthgap ===================== Summary: - Patch Series: [meta-ti][scarthgap][PATCH v3] ti-vendor-kernel-headers: add recipe for TI-only dma-heap.h ioctl - Submitter: From: Hari Prasath Gujulan Elango <gehariprasath@ti.com> - Date: Date: Fri, 28 Aug 2026 20:28:34 +0530 - Num Patches: 1 - Mailing List (public inbox) Commit SHA: 71b70ca82ff70205a5338cbf7645708eb4172576 Applied to: - Repository: lcpd-prc-meta-ti - Base Branch: scarthgap-wip - Commit Author: LCPD Automation Script <lcpdbld@list.ti.com> - Commit Subject: CI/CD Auto-Merger: cicd.scarthgap.202608190946 - Commit SHA: ef43a90c91d5a9754b2f28f09debd553fbc6a2d5 Patches ---------------------------------------- All patches applied ========================================================= check-yocto-repo: PASS ========================================================= scarthgap ===================== PASS ========================================================= yocto-check-layers: PASS ========================================================= scarthgap - PASS ===================== All checks passed
On Fri, Aug 28, 2026 at 08:28:34PM +0530, Hari Prasath via lists.yoctoproject.org wrote: > The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in > downstream. The standard header provided by linux-libc-headers' wouldn't > have the custom changes.Copy it straight from the kernel's staged > source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux > path instead, for userspace code that needs it. > > Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> > --- > v1->v2: Address review comments in commit message and recipe description > v2->v3: Fix the patch subject prefix > > .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > > diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > new file mode 100644 > index 000000000..5d570689a > --- /dev/null > +++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > @@ -0,0 +1,17 @@ > +SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" > +DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ > +tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ > +that needs them but can't rely on linux-libc-headers carrying TI-only additions." > +LICENSE = "GPL-2.0-only" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" > + > +PACKAGE_ARCH = "${MACHINE_ARCH}" > + > +do_configure[depends] += "virtual/kernel:do_shared_workdir" Why do you need this dependency for do_configure? Moreover, since you don't have do_configure nor do_compile, you might want to mark them as "noexec" > +do_install[depends] += "virtual/kernel:do_shared_workdir" How do you ensure that virtual/kernel is the TI vendor kernel? If it's not, you'll be copying the original unmodified header into the ti/linux location. > + > +do_install() { > + install -d ${D}${includedir}/ti/linux > + install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h > +} > + > -- > 2.34.1
On 8/28/2026 12:44 PM, Denys Dmytriyenko wrote: > On Fri, Aug 28, 2026 at 08:28:34PM +0530, Hari Prasath via lists.yoctoproject.org wrote: >> The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in >> downstream. The standard header provided by linux-libc-headers' wouldn't >> have the custom changes.Copy it straight from the kernel's staged >> source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux >> path instead, for userspace code that needs it. >> >> Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> >> --- >> v1->v2: Address review comments in commit message and recipe description >> v2->v3: Fix the patch subject prefix >> >> .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ >> 1 file changed, 17 insertions(+) >> create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >> >> diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >> new file mode 100644 >> index 000000000..5d570689a >> --- /dev/null >> +++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >> @@ -0,0 +1,17 @@ >> +SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" >> +DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ >> +tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ >> +that needs them but can't rely on linux-libc-headers carrying TI-only additions." >> +LICENSE = "GPL-2.0-only" >> +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" >> + >> +PACKAGE_ARCH = "${MACHINE_ARCH}" >> + >> +do_configure[depends] += "virtual/kernel:do_shared_workdir" > > Why do you need this dependency for do_configure? Moreover, since you don't > have do_configure nor do_compile, you might want to mark them as "noexec" > > >> +do_install[depends] += "virtual/kernel:do_shared_workdir" > > How do you ensure that virtual/kernel is the TI vendor kernel? If it's not, > you'll be copying the original unmodified header into the ti/linux location. Should this just be part of the linux-ti-staging recipes? That way we can correctly only include it in the versions that have this file? >> + >> +do_install() { >> + install -d ${D}${includedir}/ti/linux >> + install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h >> +} >> + >> -- >> 2.34.1
Hello Denys, On 8/28/2026 11:14 PM, Denys Dmytriyenko wrote: > On Fri, Aug 28, 2026 at 08:28:34PM +0530, Hari Prasath via lists.yoctoproject.org wrote: >> The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in >> downstream. The standard header provided by linux-libc-headers' wouldn't >> have the custom changes.Copy it straight from the kernel's staged >> source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux >> path instead, for userspace code that needs it. >> >> Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> >> --- >> v1->v2: Address review comments in commit message and recipe description >> v2->v3: Fix the patch subject prefix >> >> .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ >> 1 file changed, 17 insertions(+) >> create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >> >> diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >> new file mode 100644 >> index 000000000..5d570689a >> --- /dev/null >> +++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >> @@ -0,0 +1,17 @@ >> +SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" >> +DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ >> +tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ >> +that needs them but can't rely on linux-libc-headers carrying TI-only additions." >> +LICENSE = "GPL-2.0-only" >> +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" >> + >> +PACKAGE_ARCH = "${MACHINE_ARCH}" >> + >> +do_configure[depends] += "virtual/kernel:do_shared_workdir" > > Why do you need this dependency for do_configure? Moreover, since you don't > have do_configure nor do_compile, you might want to mark them as "noexec" > > Thanks for catching this, will fix in v4. do_install() is where the vendor tree dependency needs to be,not in do_configure(),will drop it and mark it as a noexec.I see the cpsw9g-eth-fw_git.bb uses the same method. >> +do_install[depends] += "virtual/kernel:do_shared_workdir" > > How do you ensure that virtual/kernel is the TI vendor kernel? If it's not, > you'll be copying the original unmodified header into the ti/linux location. > > okay so virtual/kernel can resolve to linux-ti-mainline or linux-bb.org or anything set by BSP_KERNEL_PROVIDER defined in per machine conf ? I don't have a complete understanding of how these are organized in our Yocto project layers. Let me check how to restrict to only the TI vendor kernel where this header file change is patched. Regards, Hari >> + >> +do_install() { >> + install -d ${D}${includedir}/ti/linux >> + install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h >> +} >> + >> -- >> 2.34.1
On Fri, Aug 28, 2026 at 03:54:00PM -0500, Ryan Eatmon wrote: > > > On 8/28/2026 12:44 PM, Denys Dmytriyenko wrote: > >On Fri, Aug 28, 2026 at 08:28:34PM +0530, Hari Prasath via lists.yoctoproject.org wrote: > >>The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in > >>downstream. The standard header provided by linux-libc-headers' wouldn't > >>have the custom changes.Copy it straight from the kernel's staged > >>source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux > >>path instead, for userspace code that needs it. > >> > >>Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> > >>--- > >> v1->v2: Address review comments in commit message and recipe description > >> v2->v3: Fix the patch subject prefix > >> > >> .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ > >> 1 file changed, 17 insertions(+) > >> create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > >> > >>diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > >>new file mode 100644 > >>index 000000000..5d570689a > >>--- /dev/null > >>+++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > >>@@ -0,0 +1,17 @@ > >>+SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" > >>+DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ > >>+tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ > >>+that needs them but can't rely on linux-libc-headers carrying TI-only additions." > >>+LICENSE = "GPL-2.0-only" > >>+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" > >>+ > >>+PACKAGE_ARCH = "${MACHINE_ARCH}" > >>+ > >>+do_configure[depends] += "virtual/kernel:do_shared_workdir" > > > >Why do you need this dependency for do_configure? Moreover, since you don't > >have do_configure nor do_compile, you might want to mark them as "noexec" > > > > > >>+do_install[depends] += "virtual/kernel:do_shared_workdir" > > > >How do you ensure that virtual/kernel is the TI vendor kernel? If it's not, > >you'll be copying the original unmodified header into the ti/linux location. > > > Should this just be part of the linux-ti-staging recipes? That way > we can correctly only include it in the versions that have this > file? Yeah, probably the easiest and cleanest approach... > >>+ > >>+do_install() { > >>+ install -d ${D}${includedir}/ti/linux > >>+ install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h > >>+} > >>+ > >>-- > >>2.34.1
On Sat, Aug 29, 2026 at 04:04:40PM -0400, Denys Dmytriyenko wrote: > On Fri, Aug 28, 2026 at 03:54:00PM -0500, Ryan Eatmon wrote: > > > > > > On 8/28/2026 12:44 PM, Denys Dmytriyenko wrote: > > >On Fri, Aug 28, 2026 at 08:28:34PM +0530, Hari Prasath via lists.yoctoproject.org wrote: > > >>The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in > > >>downstream. The standard header provided by linux-libc-headers' wouldn't > > >>have the custom changes.Copy it straight from the kernel's staged > > >>source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux > > >>path instead, for userspace code that needs it. > > >> > > >>Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> > > >>--- > > >> v1->v2: Address review comments in commit message and recipe description > > >> v2->v3: Fix the patch subject prefix > > >> > > >> .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ > > >> 1 file changed, 17 insertions(+) > > >> create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > > >> > > >>diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > > >>new file mode 100644 > > >>index 000000000..5d570689a > > >>--- /dev/null > > >>+++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb > > >>@@ -0,0 +1,17 @@ > > >>+SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" > > >>+DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ > > >>+tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ > > >>+that needs them but can't rely on linux-libc-headers carrying TI-only additions." > > >>+LICENSE = "GPL-2.0-only" > > >>+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" > > >>+ > > >>+PACKAGE_ARCH = "${MACHINE_ARCH}" > > >>+ > > >>+do_configure[depends] += "virtual/kernel:do_shared_workdir" > > > > > >Why do you need this dependency for do_configure? Moreover, since you don't > > >have do_configure nor do_compile, you might want to mark them as "noexec" > > > > > > > > >>+do_install[depends] += "virtual/kernel:do_shared_workdir" > > > > > >How do you ensure that virtual/kernel is the TI vendor kernel? If it's not, > > >you'll be copying the original unmodified header into the ti/linux location. > > > > > > Should this just be part of the linux-ti-staging recipes? That way > > we can correctly only include it in the versions that have this > > file? > > Yeah, probably the easiest and cleanest approach... BTW, just realized these patches are all marked as scarthgap ONLY. Should probably go the whole circle master -> wrynose -> scarthgap... > > >>+ > > >>+do_install() { > > >>+ install -d ${D}${includedir}/ti/linux > > >>+ install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h > > >>+} > > >>+ > > >>-- > > >>2.34.1
On 8/30/2026 1:34 AM, Denys Dmytriyenko wrote: > On Fri, Aug 28, 2026 at 03:54:00PM -0500, Ryan Eatmon wrote: >> >> >> On 8/28/2026 12:44 PM, Denys Dmytriyenko wrote: >>> On Fri, Aug 28, 2026 at 08:28:34PM +0530, Hari Prasath via lists.yoctoproject.org wrote: >>>> The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in >>>> downstream. The standard header provided by linux-libc-headers' wouldn't >>>> have the custom changes.Copy it straight from the kernel's staged >>>> source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux >>>> path instead, for userspace code that needs it. >>>> >>>> Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> >>>> --- >>>> v1->v2: Address review comments in commit message and recipe description >>>> v2->v3: Fix the patch subject prefix >>>> >>>> .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ >>>> 1 file changed, 17 insertions(+) >>>> create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >>>> >>>> diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >>>> new file mode 100644 >>>> index 000000000..5d570689a >>>> --- /dev/null >>>> +++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb >>>> @@ -0,0 +1,17 @@ >>>> +SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" >>>> +DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ >>>> +tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ >>>> +that needs them but can't rely on linux-libc-headers carrying TI-only additions." >>>> +LICENSE = "GPL-2.0-only" >>>> +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" >>>> + >>>> +PACKAGE_ARCH = "${MACHINE_ARCH}" >>>> + >>>> +do_configure[depends] += "virtual/kernel:do_shared_workdir" >>> >>> Why do you need this dependency for do_configure? Moreover, since you don't >>> have do_configure nor do_compile, you might want to mark them as "noexec" >>> >>> >>>> +do_install[depends] += "virtual/kernel:do_shared_workdir" >>> >>> How do you ensure that virtual/kernel is the TI vendor kernel? If it's not, >>> you'll be copying the original unmodified header into the ti/linux location. >> >> >> Should this just be part of the linux-ti-staging recipes? That way >> we can correctly only include it in the versions that have this >> file? > > Yeah, probably the easiest and cleanest approach... > > I dropped this patch and instead I added a simple do_install:append() to ti-linux-staging_6.12 recipe.The header doesn't get installed into the rootfs, but I could see it landing in the kernel-dev's ${D} output correctly (arago-tmp-default-glibc/work/j784s4_evm-oe-linux/linux-ti-staging/6.12.57+git/image/usr/include/ti/linux/). It doesn't get installed in the rootfs since kernel-dev package is a build-time-only package. Since the only consumer of this header is in meta-edgeai, it makes more sense to keep the whole thing self-contained there instead of modifying linux-ti-staging upstream.A linux-ti-staging_6.12.bbappend in that layer can install the header and split it into its own package, and the consuming recipe can RDEPENDS on that package directly. That keeps meta-ti-bsp untouched, ties the header to the recipe that actually needs it, and avoids shipping it into every image that happens to build this kernel. Saurabh,Puyush let us know your thoughts. Regards, Hari >>>> + >>>> +do_install() { >>>> + install -d ${D}${includedir}/ti/linux >>>> + install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h >>>> +} >>>> + >>>> -- >>>> 2.34.1
diff --git a/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb new file mode 100644 index 000000000..5d570689a --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "TI vendor kernel uapi headers not present in mainline linux-libc-headers" +DESCRIPTION = "Copies select UAPI headers straight from the TI vendor kernel source \ +tree into a TI-specific include path (/usr/include/ti/linux), for userspace code \ +that needs them but can't rely on linux-libc-headers carrying TI-only additions." +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_configure[depends] += "virtual/kernel:do_shared_workdir" +do_install[depends] += "virtual/kernel:do_shared_workdir" + +do_install() { + install -d ${D}${includedir}/ti/linux + install -m 0644 ${STAGING_KERNEL_DIR}/include/uapi/linux/dma-heap.h ${D}${includedir}/ti/linux/dma-heap.h +} +
The TI vendor kernel's dma-heap.h carries DMA_HEAP_IOCTL_EXPORT in downstream. The standard header provided by linux-libc-headers' wouldn't have the custom changes.Copy it straight from the kernel's staged source tree (STAGING_KERNEL_DIR) into a separate /usr/include/ti/linux path instead, for userspace code that needs it. Signed-off-by: Hari Prasath Gujulan Elango <gehariprasath@ti.com> --- v1->v2: Address review comments in commit message and recipe description v2->v3: Fix the patch subject prefix .../ti-vendor-kernel-headers_1.0.bb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 meta-ti-bsp/recipes-kernel/ti-vendor-kernel-headers/ti-vendor-kernel-headers_1.0.bb