| Message ID | 20251218082208.1031200-1-Richa.Bharti@siemens.com |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [v2] wic: support passing extraargs for EFI partition creation | expand |
*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']
```
On Thursday, December 18, 2025 at 1:52:32 PM UTC+5:30 Richa Bharti 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.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
>
>
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']
```
-----Original Message-----
From: Bharti, Richa (FT FDS CES LX PBU RSOL) <richa.bharti@siemens.com>
Sent: 18 December 2025 13:52
To: isar-users@googlegroups.com; amikan@ilbers.de
Cc: Hombourger, Cedric (FT FDS CES LX) <cedric.hombourger@siemens.com>; Krishnakar, Srikanth (FT FDS CES LX PBU RSOL) <srikanth.krishnakar@siemens.com>; Bharti, Richa (FT FDS CES LX PBU RSOL) <richa.bharti@siemens.com>
Subject: [PATCH v2] wic: support passing extraargs for EFI partition creation
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/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
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)
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/scripts/lib/wic/plugins/source/bootimg-efi-isar.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)