[v3] wic: support passing extraargs for EFI partition creation

Message ID 20251223103814.16129-1-Richa.Bharti@siemens.com
State Under Review
Headers show
Series [v3] wic: support passing extraargs for EFI partition creation | expand

Commit Message

Richa Bharti Dec. 23, 2025, 10:38 a.m. UTC
Some EFI firmwares require FAT filesystems to use specific geometry or
sector parameters.

Add support for an `extraargs` source parameter to allow passing
additional mkdosfs options when creating the EFI System Partition (ESP).
If no extra arguments are provided, mkdosfs defaults to "-S 512",
preserving existing behaviour.

Signed-off-by: Richa Bharti <Richa.Bharti@siemens.com>
---
 meta-isar/scripts/lib/wic/canned-wks/sdimage-efi-btrfs.wks | 2 +-
 meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py    | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

Patch

diff --git a/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi-btrfs.wks b/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi-btrfs.wks
index e22dba2f..219c5d06 100644
--- a/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi-btrfs.wks
+++ b/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi-btrfs.wks
@@ -2,7 +2,7 @@ 
 # long-description: Creates a partitioned EFI disk image without any swap that
 # the user can directly dd to boot media, where the last partition is btrfs.
 
-part /boot --source bootimg-efi-isar --sourceparams "loader=systemd-boot" --ondisk sda --label efi --part-type EF00 --align 1024
+part /boot --source bootimg-efi-isar --sourceparams "loader=systemd-boot,extraargs=-s 8" --ondisk sda --label efi --part-type EF00 --align 1024
 
 part / --source rootfs --ondisk sda --fstype btrfs --label platform --align 1024 --use-uuid --exclude-path boot/
 
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 fd4d6017..b0edb8f5 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -537,8 +537,10 @@  class BootimgEFIPlugin(SourcePlugin):
 
         label = part.label if part.label else "ESP"
 
-        dosfs_cmd = "mkdosfs -n %s -i %s -C %s %d" % \
-                    (label, part.fsuuid, bootimg, blocks)
+        extraargs = source_params.get('extraargs', "-S 512")
+
+        dosfs_cmd = "mkdosfs -n %s -i %s %s -C %s %d" % \
+                    (label, part.fsuuid, extraargs, bootimg, blocks)
         exec_native_cmd(dosfs_cmd, native_sysroot)
 
         mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)