[1/2] bootimg-efi-isar: Add payload source_params

Message ID 20251120101510.2530415-1-Quirin.Gylstorff@siemens.com
State Under Review
Headers show
Series [1/2] bootimg-efi-isar: Add payload source_params | expand

Commit Message

Quirin Gylstorff Nov. 20, 2025, 10:12 a.m. UTC
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

This allows to add additional payload to the boot-img partition.
e.g. Additional efi scripts for updating the BIOS.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 .../lib/wic/plugins/source/bootimg-efi-isar.py     | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Patch

diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 446398d0..661dcbb4 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -298,6 +298,19 @@  class BootimgEFIPlugin(SourcePlugin):
                 else:
                     cls.install_task.append((src, dst))
 
+    @staticmethod
+    def _install_payload(source_params, iso_dir):
+        """
+        Copies contents of payload directory (as specified in 'payload_dir' param) into iso_dir
+        """
+
+        if source_params.get('payload_dir'):
+            payload_dir = source_params['payload_dir']
+
+            logger.debug("Payload directory: %s", payload_dir)
+            shutil.copytree(payload_dir, iso_dir, symlinks=True, dirs_exist_ok=True)
+
+
     @classmethod
     def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
                              oe_builddir, bootimg_dir, kernel_dir,
@@ -394,6 +407,7 @@  class BootimgEFIPlugin(SourcePlugin):
             install_cmd = isar_populate_boot_cmd(rootfs_dir['ROOTFS_DIR'], hdddir)
             exec_cmd(install_cmd)
 
+        cls._install_payload(source_params, hdddir)
 
         if get_bitbake_var("IMAGE_EFI_BOOT_FILES"):
             for src_path, dst_path in cls.install_task: