diff --git a/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend b/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend
new file mode 100644
index 000000000000..b99fb77f2714
--- /dev/null
+++ b/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend
@@ -0,0 +1,19 @@
+do_rootfs[postfuncs] += "reduce_initrd_size"
+reduce_initrd_size () {
+    # these kernel modules are not needed for rootfs mount from local mass storage
+    # and can be loaded from main rootfs by udev
+    rm -rf \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/bluetooth \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/gpu \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/media \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/net \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/nfc \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/usb/gadget \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/fs/fuse \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/bluetooth \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/bridge \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/netfilter \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/nfc \
+        ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/sound
+}
+
