* [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity
@ 2026-09-04 9:46 Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 2/3] linux-ti-staging: Add dm-verity kernel config Atharv Dubey
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Atharv Dubey @ 2026-09-04 9:46 UTC (permalink / raw)
To: meta-ti; +Cc: reatmon, denys, m-shah, a-limaye, u-kumar1
Add an optional dynamic layer enabling dm-verity block-level integrity
verification of the root filesystem for TI K3 platforms, using
meta-security's stock dm-verity mechanism as-is.
dm-verity hashes the rootfs at build time; at boot, a dedicated
initramfs loads the root hash and the kernel checks every block read
against it. Wires DM_VERITY_IMAGE/WKS_FILE for the K3 boot chain,
hooking do_image_wic instead of INITRAMFS_IMAGE to avoid a 3-way
circular dependency through kernel-fit-image.bbclass.
DM_VERITY_IMAGE selects which image recipe gets verity-enabled
(default arago-base-image, overridable in local.conf); all effects are
scoped to PN == DM_VERITY_IMAGE, so building any other image type is
unaffected. Only active when the "security" layer and dm-verity-upstream
feature are enabled.
Signed-off-by: Atharv Dubey <a-dubey@ti.com>
---
v2:
- Replaced hardcoded /dev/mmcblk1p2 with UUID
- Added install -d before installing the udev ignorelist file
- Changed the FILES automount to specify the exact file
---
meta-ti-bsp/conf/layer.conf | 3 +++
meta-ti-bsp/conf/machine/include/k3.inc | 10 ++++++++++
.../conf/include/dm-verity-upstream.inc | 17 +++++++++++++++++
.../udev/files/dm-verity.ignorelist | 1 +
| 15 +++++++++++++++
meta-ti-bsp/files/wic/k3-verity.wks.in | 5 +++++
6 files changed, 51 insertions(+)
create mode 100644 meta-ti-bsp/dynamic-layers/security-layer/conf/include/dm-verity-upstream.inc
create mode 100644 meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/files/dm-verity.ignorelist
create mode 100644 meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/udev-extraconf_%.bbappend
create mode 100644 meta-ti-bsp/files/wic/k3-verity.wks.in
diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
index 3cc54aa4..aca35cd3 100644
--- a/meta-ti-bsp/conf/layer.conf
+++ b/meta-ti-bsp/conf/layer.conf
@@ -20,12 +20,15 @@ LAYERDEPENDS_meta-ti-bsp = " \
LAYERRECOMMENDS_meta-ti-bsp = " \
openembedded-layer \
tpm-layer \
+ security \
"
BBFILES_DYNAMIC += " \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/recipes*/*/*.bbappend \
tpm-layer:${LAYERDIR}/dynamic-layers/tpm-layer/recipes*/*/*.bb \
tpm-layer:${LAYERDIR}/dynamic-layers/tpm-layer/recipes*/*/*.bbappend \
+ security:${LAYERDIR}/dynamic-layers/security-layer/recipes*/*/*.bb \
+ security:${LAYERDIR}/dynamic-layers/security-layer/recipes*/*/*.bbappend \
"
SIGGEN_EXCLUDERECIPES_ABISAFE += " \
diff --git a/meta-ti-bsp/conf/machine/include/k3.inc b/meta-ti-bsp/conf/machine/include/k3.inc
index 2ebbfb9e..e23e0ead 100644
--- a/meta-ti-bsp/conf/machine/include/k3.inc
+++ b/meta-ti-bsp/conf/machine/include/k3.inc
@@ -64,3 +64,13 @@ FALCON_INCLUDE = ""
FALCON_INCLUDE:ti-falcon = "conf/machine/include/ti-falcon.inc"
require ${FALCON_INCLUDE}
+
+# Upstream dm-verity path: meta-security's own dm-verity-img.bbclass +
+# dm-verity-image-initramfs, used as-is (build-time hashing). Only active
+# when the security layer is present and this feature is explicitly
+# requested -- see dynamic-layers/security-layer/conf/include/dm-verity-upstream.inc
+DISTRO_FEATURES[validitems] += "dm-verity-upstream"
+
+DM_VERITY_UPSTREAM_INCLUDE = "${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity-upstream', 'dynamic-layers/security-layer/conf/include/dm-verity-upstream.inc', '', d)}"
+
+require ${DM_VERITY_UPSTREAM_INCLUDE}
diff --git a/meta-ti-bsp/dynamic-layers/security-layer/conf/include/dm-verity-upstream.inc b/meta-ti-bsp/dynamic-layers/security-layer/conf/include/dm-verity-upstream.inc
new file mode 100644
index 00000000..4de9e2fb
--- /dev/null
+++ b/meta-ti-bsp/dynamic-layers/security-layer/conf/include/dm-verity-upstream.inc
@@ -0,0 +1,17 @@
+# Enables dm-verity to check the rootfs for tampering on TI K3 boards.
+DM_VERITY_IMAGE ?= "arago-base-image"
+DM_VERITY_IMAGE_TYPE = "ext4"
+IMAGE_CLASSES += "dm-verity-img"
+
+DM_VERITY_INITRAMFS_IMAGE = "dm-verity-image-initramfs"
+
+python () {
+ if d.getVar('PN') != d.getVar('DM_VERITY_IMAGE'):
+ return
+
+ d.setVar('WKS_FILE', 'k3-verity.wks.in')
+ d.appendVar('EXTRA_IMAGE_FEATURES', ' read-only-rootfs')
+ d.appendVar('WICVARS', ' DM_VERITY_IMAGE DM_VERITY_IMAGE_TYPE IMAGE_NAME_SUFFIX IMGDEPLOYDIR')
+ d.appendVarFlag('do_image_wic', 'depends', ' %s:do_image_complete' % d.getVar('DM_VERITY_INITRAMFS_IMAGE'))
+ d.appendVar('IMAGE_BOOT_FILES', ' %s-%s.cpio.gz' % (d.getVar('DM_VERITY_INITRAMFS_IMAGE'), d.getVar('MACHINE')))
+}
diff --git a/meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/files/dm-verity.ignorelist b/meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/files/dm-verity.ignorelist
new file mode 100644
index 00000000..5af878c9
--- /dev/null
+++ b/meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/files/dm-verity.ignorelist
@@ -0,0 +1 @@
+/dev/mmcblk1p2
--git a/meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/udev-extraconf_%.bbappend b/meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/udev-extraconf_%.bbappend
new file mode 100644
index 00000000..dc6b37f9
--- /dev/null
+++ b/meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/udev-extraconf_%.bbappend
@@ -0,0 +1,15 @@
+# Under dm-verity, the raw root partition looks unmounted to udev's
+# auto-mount check, so it tries to mount it a second time on its own,
+# outside of dm-verity's protection. This tells it to skip that partition.
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity-upstream', 'file://dm-verity.ignorelist', '', d)}"
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity-upstream', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/udev/mount.ignorelist.d
+ install -m 0644 ${UNPACKDIR}/dm-verity.ignorelist ${D}${sysconfdir}/udev/mount.ignorelist.d/dm-verity
+ fi
+}
+
+FILES:${PN}-automount += "${sysconfdir}/udev/mount.ignorelist.d/dm-verity"
diff --git a/meta-ti-bsp/files/wic/k3-verity.wks.in b/meta-ti-bsp/files/wic/k3-verity.wks.in
new file mode 100644
index 00000000..2ad0609f
--- /dev/null
+++ b/meta-ti-bsp/files/wic/k3-verity.wks.in
@@ -0,0 +1,5 @@
+# Disk layout for a board that boots with dm-verity enabled.
+
+bootloader --timeout=3 --append="rootfstype=ext4 root=PARTUUID=${UUID_2} ${TI_WKS_BOOTLOADER_APPEND}"
+part --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${DM_VERITY_INITRAMFS_IMAGE}-${MACHINE}.cpio.gz" --fstype=vfat --label boot --active --align 1024 --use-uuid --fixed-size 128M
+part / --source rawcopy --sourceparams="file=${IMGDEPLOYDIR}/${DM_VERITY_IMAGE}-${MACHINE}${IMAGE_NAME_SUFFIX}.${DM_VERITY_IMAGE_TYPE}.verity" --align 1024 --use-uuid
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [meta-ti][master][PATCH v2 2/3] linux-ti-staging: Add dm-verity kernel config
2026-09-04 9:46 [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity Atharv Dubey
@ 2026-09-04 9:46 ` Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 3/3] tisdk-uenv: Load dm-verity initramfs from U-Boot boot script Atharv Dubey
2026-09-04 9:50 ` [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity PRC Automation
2 siblings, 0 replies; 4+ messages in thread
From: Atharv Dubey @ 2026-09-04 9:46 UTC (permalink / raw)
To: meta-ti; +Cc: reatmon, denys, m-shah, a-limaye, u-kumar1
Add a kernel config fragment enabling dm-verity and its crypto
dependencies (CONFIG_DM_VERITY, CONFIG_DM_CRYPT, CONFIG_BLK_DEV_DM).
Applied via KERNEL_CONFIG_FRAGMENTS, which setup-defconfig.inc reads
and merges directly through merge_config.sh.
Signed-off-by: Atharv Dubey <a-dubey@ti.com>
---
.../security-layer/recipes-kernel/linux/files/dm-verity.cfg | 5 +++++
.../recipes-kernel/linux/linux-ti-staging_%.bbappend | 5 +++++
2 files changed, 10 insertions(+)
create mode 100644 meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/files/dm-verity.cfg
create mode 100644 meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/linux-ti-staging_%.bbappend
diff --git a/meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/files/dm-verity.cfg b/meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/files/dm-verity.cfg
new file mode 100644
index 00000000..c50ce403
--- /dev/null
+++ b/meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/files/dm-verity.cfg
@@ -0,0 +1,5 @@
+CONFIG_MD=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_CRYPT=y
+CONFIG_DM_VERITY=y
+CONFIG_CRYPTO_SHA256=y
diff --git a/meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/linux-ti-staging_%.bbappend b/meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/linux-ti-staging_%.bbappend
new file mode 100644
index 00000000..87bff5c2
--- /dev/null
+++ b/meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/linux-ti-staging_%.bbappend
@@ -0,0 +1,5 @@
+# Enable the dm-verity kernel config fragment via KERNEL_CONFIG_FRAGMENTS.
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity-upstream', 'file://dm-verity.cfg', '', d)}"
+KERNEL_CONFIG_FRAGMENTS += "${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity-upstream', '${UNPACKDIR}/dm-verity.cfg', '', d)}"
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [meta-ti][master][PATCH v2 3/3] tisdk-uenv: Load dm-verity initramfs from U-Boot boot script
2026-09-04 9:46 [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 2/3] linux-ti-staging: Add dm-verity kernel config Atharv Dubey
@ 2026-09-04 9:46 ` Atharv Dubey
2026-09-04 9:50 ` [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity PRC Automation
2 siblings, 0 replies; 4+ messages in thread
From: Atharv Dubey @ 2026-09-04 9:46 UTC (permalink / raw)
To: meta-ti; +Cc: reatmon, denys, m-shah, a-limaye, u-kumar1
Override name_initramfs in the deployed uEnv.txt so U-Boot loads
dm-verity-image-initramfs's cpio instead of ti-core-initramfs.
uEnv.txt is imported before bootcmd_ti_mmc runs get_initramfs_mmc,
so this override takes effect with no change to U-Boot itself.
Signed-off-by: Atharv Dubey <a-dubey@ti.com>
---
.../recipes-tisdk/tisdk-uenv/tisdk-uenv.bbappend | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 meta-ti-bsp/dynamic-layers/security-layer/recipes-tisdk/tisdk-uenv/tisdk-uenv.bbappend
diff --git a/meta-ti-bsp/dynamic-layers/security-layer/recipes-tisdk/tisdk-uenv/tisdk-uenv.bbappend b/meta-ti-bsp/dynamic-layers/security-layer/recipes-tisdk/tisdk-uenv/tisdk-uenv.bbappend
new file mode 100644
index 00000000..ffbd0061
--- /dev/null
+++ b/meta-ti-bsp/dynamic-layers/security-layer/recipes-tisdk/tisdk-uenv/tisdk-uenv.bbappend
@@ -0,0 +1,6 @@
+# Fetch the dm-verity initramfs instead of ti-core-initramfs.
+do_deploy:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity-upstream', 'true', 'false', d)}; then
+ echo "name_initramfs=${DM_VERITY_INITRAMFS_IMAGE}-${MACHINE}.cpio.gz" >> ${DEPLOYDIR}/uEnv.txt
+ fi
+}
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity
2026-09-04 9:46 [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 2/3] linux-ti-staging: Add dm-verity kernel config Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 3/3] tisdk-uenv: Load dm-verity initramfs from U-Boot boot script Atharv Dubey
@ 2026-09-04 9:50 ` PRC Automation
2 siblings, 0 replies; 4+ messages in thread
From: PRC Automation @ 2026-09-04 9:50 UTC (permalink / raw)
To: Atharv Dubey; +Cc: meta-ti, reatmon, denys, m-shah, a-limaye, u-kumar1
meta-ti / na / 20260904094606.3233160-1-a-dubey
PRC Results: FAIL
=========================================================
check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
WARN - [meta-ti][master][PATCH v2 2/3] linux-ti-staging: Add dm-verity kernel config
WARN: Revised patch missing a comment. (REVISION-1)
patch
For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
WARN - [meta-ti][master][PATCH v2 3/3] tisdk-uenv: Load dm-verity initramfs from U-Boot boot script
WARN: Revised patch missing a comment. (REVISION-1)
patch
For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
=========================================================
apply-yocto-patch: PASS
=========================================================
master
=====================
Summary:
- Patch Series: [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity
- Submitter: From: Atharv Dubey <a-dubey@ti.com>
- Date: Date: Fri, 4 Sep 2026 15:16:04 +0530
- Num Patches: 3
- Mailing List (public inbox) Commit SHA: 24744ad23b657a1a6c370c9642c3de554e56b0f0
Applied to:
- Repository: lcpd-prc-meta-ti
- Base Branch: master-next
- Commit Author: LCPD Automation Script <lcpdbld@list.ti.com>
- Commit Subject: CI/CD Auto-Merger: cicd.master.202609011013
- Commit SHA: 0424eea6b0f3f37e57500b6a65a24cbe39427ad8
Patches
----------------------------------------
All patches applied
=========================================================
check-yocto-repo: FAIL
=========================================================
master
=====================
FAIL
WARN: .bbappend files might need a guard to make them check-layer compliant. (GUARD-1)
meta-ti-bsp/dynamic-layers/security-layer/recipes-core/udev/udev-extraconf_%.bbappend
WARN: .bbappend files might need a guard to make them check-layer compliant. (GUARD-1)
meta-ti-bsp/dynamic-layers/security-layer/recipes-kernel/linux/linux-ti-staging_%.bbappend
WARN: .bbappend files might need a guard to make them check-layer compliant. (GUARD-1)
meta-ti-bsp/dynamic-layers/security-layer/recipes-tisdk/tisdk-uenv/tisdk-uenv.bbappend
For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-09-04 9:52 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-04 9:46 [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 2/3] linux-ti-staging: Add dm-verity kernel config Atharv Dubey
2026-09-04 9:46 ` [meta-ti][master][PATCH v2 3/3] tisdk-uenv: Load dm-verity initramfs from U-Boot boot script Atharv Dubey
2026-09-04 9:50 ` [meta-ti][master][PATCH v2 1/3] dm-verity-upstream: Add dynamic layer for meta-security dm-verity PRC Automation
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.