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

22 views
Skip to first unread message

Richa Bharti

unread,
Dec 17, 2025, 8:21:08 AM (yesterday) Dec 17
to isar-...@googlegroups.com, cedric.h...@siemens.com, srikanth....@siemens.com, Richa Bharti
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....@siemens.com>
---
meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

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..6862a288 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -506,8 +506,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['extraargs'] or "-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)
--
2.39.5

Anton Mikanovich

unread,
2:28 AM (19 hours ago) 2:28 AM
to isar-...@googlegroups.com, Richa Bharti
Hello Richa,

17/12/2025 15:02, 'Richa Bharti' via isar-users wrote:
> 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....@siemens.com>
> ---
> meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> 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..6862a288 100644
> --- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> +++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> @@ -506,8 +506,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['extraargs'] or "-S 512"
This will fail with KeyError: 'extraargs' if no extraargs declared.
> +
> + 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)

Moreover, features like this should be covered by some target or have a
test\
case in CI.

Richa Bharti

unread,
3:22 AM (18 hours ago) 3:22 AM
to isar-...@googlegroups.com, ami...@ilbers.de, cedric.h...@siemens.com, srikanth....@siemens.com, Richa Bharti
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....@siemens.com>
---
meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

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..6862a288 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -506,8 +506,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)
--
2.39.5

Message has been deleted

Bharti, Richa

unread,
3:39 AM (17 hours ago) 3:39 AM
to isar-...@googlegroups.com, ami...@ilbers.de, Hombourger, Cedric, Krishnakar, Srikanth
Without Extraargs:
```
$ cat wic/generic-ufs-partitions.wks.in
part /boot --source bootimg-efi-isar --sourceparams "loader=systemd-boot" --label efi --part-type EF00 --align 1024 --use-uuid --size 512M
part --use-uuid --source rootfs --fstype=${BSP_ROOTFS_TYPE} --label system --active --align 1024 --exclude-path boot --fixed-size ${UFS_PART_SYSTEM_SIZE}
bootloader --ptable gpt --timeout 0 --append "${BSP_KERNEL_CMDLINE}

$ file development-image-industrial-os-qcs615-adp-air.wic.p1
development-image-industrial-os-qcs615-adp-air.wic.p1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 32, sectors 1048572 (volumes > 32 MB), FAT (32 bit), sectors/FAT 1024, serial number 0xe9d3c0d4, label: "efi "
```
LOG:
```
DEBUG: ['mkdosfs', '-n', 'efi', '-i', '0x1C1D0579', '-S', '512', '-C', '/tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.vlfgf_0b/boot.img', '524288']
DEBUG: exec_native_cmd: export PATH=//sbin://usr/sbin://usr/bin://usr/bin/None://bin:None:$PATH;mkdosfs -n efi -i 0x1C1D0579 -S 512 -C /tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.vlfgf_0b/boot.img 524288
DEBUG: _exec_cmd: export PATH=//sbin://usr/sbin://usr/bin://usr/bin/None://bin:None:$PATH;mkdosfs -n efi -i 0x1C1D0579 -S 512 -C /tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.vlfgf_0b/boot.img 524288
DEBUG: ['export', 'PATH=//sbin://usr/sbin://usr/bin://usr/bin/None://bin:None:$PATH;mkdosfs', '-n', 'efi', '-i', '0x1C1D0579', '-S', '512', '-C', '/tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.vlfgf_0b/boot.img', '524288']
```

With Extraargs:

```
$ wic/generic-ufs-partitions.wks.in
part /boot --source bootimg-efi-isar --sourceparams "loader=systemd-boot,extraargs=-F 32 -S 4096 -r 2048" --label efi --part-type EF00 --align 1024 --use-uuid --size 512M
part --use-uuid --source rootfs --fstype=${BSP_ROOTFS_TYPE} --label system --active --align 1024 --exclude-path boot --fixed-size ${UFS_PART_SYSTEM_SIZE}
bootloader --ptable gpt --timeout 0 --append "${BSP_KERNEL_CMDLINE}"

$ file development-image-industrial-os-qcs615-adp-air.wic.p1
development-image-industrial-os-qcs615-adp-air.wic.p1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", Bytes/sector 4096, Media descriptor 0xf8, sectors/track 32, heads 8, sectors 131072 (volumes > 32 MB), FAT (32 bit), sectors/FAT 128, serial number 0xbf8798d0, label: "efi "
```
LOG:
```
DEBUG: Added 469589 extra blocks to /boot to get to 524288 total blocks
DEBUG: ['mkdosfs', '-n', 'efi', '-i', '0xBF8798D0', '-F', '32', '-S', '4096', '-r', '2048', '-C', '/tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.qd9it81v/boot.img', '524288']
DEBUG: exec_native_cmd: export PATH=//sbin://usr/sbin://usr/bin://usr/bin/None://bin:None:$PATH;mkdosfs -n efi -i 0xBF8798D0 -F 32 -S 4096 -r 2048 -C /tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.qd9it81v/boot.img 524288
DEBUG: _exec_cmd: export PATH=//sbin://usr/sbin://usr/bin://usr/bin/None://bin:None:$PATH;mkdosfs -n efi -i 0xBF8798D0 -F 32 -S 4096 -r 2048 -C /tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.qd9it81v/boot.img 524288
DEBUG: ['export', 'PATH=//sbin://usr/sbin://usr/bin://usr/bin/None://bin:None:$PATH;mkdosfs', '-n', 'efi', '-i', '0xBF8798D0', '-F', '32', '-S', '4096', '-r', '2048', '-C', '/tmp/development-image-industrial-os-qcs615-adp-air.wic/tmp.wic.qd9it81v/boot.img', '524288']
```
Reply all
Reply to author
Forward
0 new messages