platform/kernel/tizen-fusing-scripts.git
2 months agoscripts: sd_fusing: Add a backup partition for RPi board 39/321839/3 tizen
Jaehoon Chung [Mon, 31 Mar 2025 00:17:20 +0000 (09:17 +0900)]
scripts: sd_fusing: Add a backup partition for RPi board

To locate the ramdisk-recovery images, add a backup partition.
There will be ramdisk-recovery images according to each architecture.
e.g) ramdisk-recovery.img.32 / ramdisk-recovery.img.64
When run tfm, the proper ramdisk will be loaded.

To write ext4 on u-boot, disable metatdata_csum feature.

- Change a name from reserved2 to backup.

Change-Id: I18a81d95da2eb5d393d0ed6093ce36b7ce6a6ee5
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: sd_fusing: Move sd_fusing.py script under scripts dir 02/315802/1
Jaehoon Chung [Thu, 5 Dec 2024 00:17:50 +0000 (09:17 +0900)]
scripts: sd_fusing: Move sd_fusing.py script under scripts dir

Move sd_fusing.py script under scripts dir and add MIT License file.

Change-Id: Ice17e469b2be93438904ae3518979f402a9b760e
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: sd_fusing: Check the minimum required Python version
Jaehoon Chung [Mon, 14 Oct 2024 23:59:48 +0000 (08:59 +0900)]
scripts: sd_fusing: Check the minimum required Python version

"extend" of action was added since python3.8.
If python version is lower than 3.8, it will be occurred the error like below.

Traceback (most recent call last):
  File "./scripts/tizen/sd_fusing.py", line 1375, in <module>
    help="binary to flash, may be used multiple times")
  File "/usr/local/lib/python3.7/argparse.py", line 1358, in add_argument
    raise ValueError('unknown action "%s"' % (action_class,))
ValueError: unknown action "extend"

Refer to Python Doc:
3.7 - https://docs.python.org/3.7/library/argparse.html#action
3.8 - https://docs.python.org/3.8/library/argparse.html#action

Change-Id: I8d9deafcddbe67f80adc310d01f22891a2d802ae
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agotizen: sd_fusing.py: correct rootfs partition UUID for x86_64 emulator target
Marek Szyprowski [Fri, 11 Oct 2024 11:48:19 +0000 (13:48 +0200)]
tizen: sd_fusing.py: correct rootfs partition UUID for x86_64 emulator target

According to [1] the x86_64 target should use
4f68bce3-e8cd-4db1-96e7-fbcaf984b709 UUID for the rootfs partition.

[1] https://uapi-group.org/specifications/specs/discoverable_partitions_specification/

Suggested-by: Lukasz Stelmach <l.stelmach@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Id8e7368e4ddfe181def369f79800a2772ff4c8bc

6 months agotizen: sd_fusing.py: add support for all 4 variants of Amlogic targets
Marek Szyprowski [Fri, 11 Oct 2024 07:32:04 +0000 (09:32 +0200)]
tizen: sd_fusing.py: add support for all 4 variants of Amlogic targets

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I6fa7b3f5acc1c0b0e243b2f2c25625b6d7fdb670

6 months agoRevert "tizen: sd_fusing.py: change partition of vf2* for backward compatibility"
Marek Szyprowski [Tue, 24 Sep 2024 09:09:02 +0000 (11:09 +0200)]
Revert "tizen: sd_fusing.py: change partition of vf2* for backward compatibility"

Remove the unused 'none' partition entry for VF2 boards. The initrd-flash
package has been finally fixed to rely on the GPT partition names instead
of the hardcoded numbers, so there really no need to keep this partition.

This reverts commit 15b42595fc8af2c95943adef62c170c6750f4f0f.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie01359d164b934a1b3cb720a1273c42fe4a7ba77

6 months agoscripts: sd_fusing: add QEMU RISC-V A/B and super targets
Jacek Kryszyn [Thu, 12 Sep 2024 05:29:42 +0000 (07:29 +0200)]
scripts: sd_fusing: add QEMU RISC-V A/B and super targets

Add QEMU RISC-V targets:
- A/B
- Super (Dynamic Partitions)

Which allow to test upgrade related features in QEMU.

Change-Id: I6d71254f1a881f7c89c511933c9ae856229ec625
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: sd_fusing: RV64: remove unnecessary partitions
Jacek Kryszyn [Mon, 23 Sep 2024 04:44:49 +0000 (06:44 +0200)]
scripts: sd_fusing: RV64: remove unnecessary partitions

This change removes unnecessary partitions from RV64 target:
- SPL,
- u-boot,
- none.

Change-Id: I4fc8ab653712d91864fc16be24e8caf0359071a2
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: sd_fusing: get rid of user_partition attribute
Jacek Kryszyn [Mon, 23 Sep 2024 04:01:29 +0000 (06:01 +0200)]
scripts: sd_fusing: get rid of user_partition attribute

The SdFusingTarget class has the user_partition
attribute which informs about the index of the user
partition in the part_table. It has to be set manually
for each target. This change removes the attribute and
adds calculation of the index.

Change-Id: I2a0827dac255bd4715ab04cd050e8fd9d14edb40
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: sd_fusing: Add support for Amlogic Meson based Odroid C4 board
Marek Szyprowski [Wed, 14 Aug 2024 07:49:28 +0000 (09:49 +0200)]
scripts: sd_fusing: Add support for Amlogic Meson based Odroid C4 board

This allows to easily fuse Tizen to SD card or eMMC module in SD card
adapter.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ifea9a29ca23dafab7b9745efb71c7202fa025170

6 months agoscripts: sd_fusing: Fix re-reading partition table again
Marek Szyprowski [Wed, 14 Aug 2024 07:42:48 +0000 (09:42 +0200)]
scripts: sd_fusing: Fix re-reading partition table again

Actually it turned out that any direct write access to the block device
might trigger kernel and udev to re-read partition table, so call
'udevadm settle' always after writing boot image directly to block
device.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I3caf4ea6d3b89cb333e38f7b30dcf44685d73335

6 months agoscripts: sd_fusing: Add force option to mkfs.ext4
Marek Szyprowski [Wed, 14 Aug 2024 09:30:47 +0000 (11:30 +0200)]
scripts: sd_fusing: Add force option to mkfs.ext4

Add force ('-F') option to mkfs.ext4 to avoid unexpectted filesystem
creation failure caused by some garbage being misdetected as DOS
partition signature:

2024-08-14T08:59:40.904 [sd_fusing.py:956] Formatting /dev/sda9 as ext4
2024-08-14T08:59:40.905 [sd_fusing.py:968] mkfs.ext4 -q -L inform /dev/sda9
Found a dos partition table in /dev/sda9
Proceed anyway? (y,N)
2024-08-14T08:59:40.924 Failed to create ext4 filesystem on /dev/sda9

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I6e960e2f48285fe2f2a139b4342621c82172350b

6 months agoscripts: sd_fusing: Update a patch vertion
Jaehoon Chung [Wed, 14 Aug 2024 04:44:58 +0000 (13:44 +0900)]
scripts: sd_fusing: Update a patch vertion

Update a patch version from 9 to 10.

Change-Id: Ic30d9be84d3c4b655e1b807591d819b71946791d
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: sd_fusing: bpif3: rename 'bootfs_b' part label to 'boot_b'
Seung-Woo Kim [Wed, 14 Aug 2024 01:12:12 +0000 (10:12 +0900)]
scripts: sd_fusing: bpif3: rename 'bootfs_b' part label to 'boot_b'

Use common 'boot'_{A/B} name instead of 'bootfs_b'
like 'boot_a' because tizen-boot-bpif3.scr is changed
to use 'boot_${partition_ab}'.

Change-Id: I4b4a934ef2769041d1c2a629a2dfebe5681d9698
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
6 months agoscripts: sd_fusing: bpif3: change partition type for bootloader partitions
Marek Szyprowski [Tue, 13 Aug 2024 13:18:59 +0000 (15:18 +0200)]
scripts: sd_fusing: bpif3: change partition type for bootloader partitions

Use the semi-standard types of 'HiFive Unleashed FSBL/BBL' for bootloader
related partitions instead of the 'EFI System'. This helps other systems
to avoid trying to mount those partitions as FAT volumes.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I9cea997bcc76c628497e7d6ba4725a894cee5811

6 months agoscripts: sd_fusing: bpif3: rename FAT 'boot' partition to the common 'boot_a'
Marek Szyprowski [Tue, 13 Aug 2024 13:15:33 +0000 (15:15 +0200)]
scripts: sd_fusing: bpif3: rename FAT 'boot' partition to the common 'boot_a'

Use common 'boot_a' name for the first 'boot' partition.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I60a4461ce0c9326f722c351ed5a1c20ee6dd06ca

6 months agoscripts: sd_fusing: bpif3: remove unused 'env' partition
Marek Szyprowski [Tue, 13 Aug 2024 13:13:59 +0000 (15:13 +0200)]
scripts: sd_fusing: bpif3: remove unused 'env' partition

Tizen u-boot for BPif3 has been patched to store its environment on the
first 'boot' partition (FAT filesystem) in uboot.env file, like on other
Tizen boards. The 'env' partition is unused then, so remove it.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie6b648f817e55f795e77358b8ce23846953cefa3

6 months agoscripts: sd_fusing: simplyfy the code structure in get_raw_binary_sector()
Łukasz Stelmach [Wed, 7 Aug 2024 06:34:33 +0000 (08:34 +0200)]
scripts: sd_fusing: simplyfy the code structure in get_raw_binary_sector()

Simplify the structure introduced in 098472c46d ("scripts: sd_fusing:
Check the raw_binary_table attribute").

Change-Id: Iaf844529d7db2b1df28175689980f0f843e5b86e
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: sd_fusing: Wait for udev also after writing to the zero sector
Marek Szyprowski [Wed, 7 Aug 2024 06:50:34 +0000 (08:50 +0200)]
scripts: sd_fusing: Wait for udev also after writing to the zero sector

Writing to the zero sector might trigger kernel/udev to re-read partition
table, so wait for udev to settle in such case.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I517570713bbaffaf58a849023eb784ca7675a842

6 months agoscripts: sd_fusing: Check the raw_binary_table attribute
Jaehoon Chung [Wed, 7 Aug 2024 00:38:07 +0000 (09:38 +0900)]
scripts: sd_fusing: Check the raw_binary_table attribute

If there is no raw_binary_table, it doesn't work fine with below
message. RPI4/VF2 don't have raw_binary_table attribute.

AttributeError: 'Rpi4' object has no attribute 'raw_binary_table'

Change-Id: I379a87d9731fe82a3a32f54b38eb533b1ca4f885
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: sd_fusing: Update a patch version
Marek Szyprowski [Fri, 5 Apr 2024 01:53:23 +0000 (10:53 +0900)]
scripts: sd_fusing: Update a patch version

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Id2b66f75be5f3a078bfa7306c166f37e55e5e34a

6 months agoscripts: sd_fusing: Add support for writing bootinfo_sd.bin for BananaPiF3
Marek Szyprowski [Tue, 6 Aug 2024 11:57:10 +0000 (13:57 +0200)]
scripts: sd_fusing: Add support for writing bootinfo_sd.bin for BananaPiF3

Add support for writing bootinfo_sd.bin to the protective MBR bootcode
(sector zero) are of the SD card for BananaPiF3 boards.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I88b88aa34604f70ec6343ef26a8b535361c4f872

6 months agoscripts: sd_fusing: Remove code for handling hardcoded bootcode
Marek Szyprowski [Tue, 6 Aug 2024 12:13:25 +0000 (14:13 +0200)]
scripts: sd_fusing: Remove code for handling hardcoded bootcode

Remove the code for handling hardcoded bootcode as it is no longer used.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If399c8ae19789acf98b014fcac6307fadc564f5d

6 months agoscripts: sd_fusing: Add support for writing image at specified absolute sector
Marek Szyprowski [Mon, 5 Aug 2024 15:42:12 +0000 (17:42 +0200)]
scripts: sd_fusing: Add support for writing image at specified absolute sector

Add support for writing raw images at the specified absolute sector of the
target device without the need to create a MBR or GPT partition for it.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ia3a8f1eb9ba12d0541700cf4e9358f33290f3ec8

6 months agoscripts: sd_fusing: Add entry for raw binary bootcode for LicheePi4A
Marek Szyprowski [Tue, 6 Aug 2024 12:12:30 +0000 (14:12 +0200)]
scripts: sd_fusing: Add entry for raw binary bootcode for LicheePi4A

The content of the bootcode will be moved from sd_fusing.py script to the
boot images, so add a new raw binary entry for the bootcode.bin file for
the LicheePi4A platform.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If399c8ae19789acf98b014fcac6307fadc564f5c

6 months agoscripts: sd_fusing: Write bootcode before calling 'udevadm settle'
Marek Szyprowski [Thu, 1 Aug 2024 10:26:08 +0000 (12:26 +0200)]
scripts: sd_fusing: Write bootcode before calling 'udevadm settle'

Writing bootcode to the first sector of the device might trigger kernel
or udev to reread partition table, so do this before calling 'udevadm
settle' command.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Iaab903a31b3ff97de3195f02b5220f26b246a832

6 months agoscripts: sd_fusing: Fix to write both a/b partition
SangYoun Kwak [Thu, 11 Jul 2024 11:46:50 +0000 (20:46 +0900)]
scripts: sd_fusing: Fix to write both a/b partition

If sd_fusing script is executed with '--update ab' option, it should
write images to both a/b partitions.

When writing images, first, script reads image and writes to the
partition a until the image reaches the end.
Next, script reads image and writes to the partition b but it uses same
file object so there is nothing left to read. Thus, script writes
nothing to the partition b.

To fix this issue, a method call of the file object ".seek(0)" is added
before writing to the partitions. This will set cursor to the initial
position and the the image can be written to the partition b.

Change-Id: I78c1b3c77b6666a133527ba544911de8c4de44d4
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
6 months agoscripts: sd_fusing: Modifiy size of slots on super
Jacek Kryszyn [Wed, 10 Jul 2024 14:11:21 +0000 (16:11 +0200)]
scripts: sd_fusing: Modifiy size of slots on super

Size of a slot on the super partition is now determined
using value given in the partition table of the rpi4s
target. This way it is guaranteed that the super.img
will fit on the designated partition.

Change-Id: Icdf07228156d7ac78322767c906f502abfa03c79
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: Add new param file upgrade-type.info
SangYoun Kwak [Tue, 9 Jul 2024 07:37:01 +0000 (16:37 +0900)]
scripts: Add new param file upgrade-type.info

File for the new parameter 'upgrade-type' is added.
The boot partition is selected by this parameter.

Available values(and boot partition for this value):
 * "offline" (ramdisk-recovery)
 * "online" (ramdisk)

The default value is "offline".

Change-Id: I929a5236c7f506708dda9a454af53648eef7e393
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
6 months agoscripts: sd_fusing: Fix a typo about fsbl file name
Jaehoon Chung [Tue, 9 Jul 2024 02:05:13 +0000 (11:05 +0900)]
scripts: sd_fusing: Fix a typo about fsbl file name

Fix a typo about fsbl file name.
FSBL.bin is a correct. And remove unnecessary bootcode.

Change-Id: I54adc6bc30bc30446233722dd446c0c9a49d4ec6
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: sd_fusing: Add BananaPi BPI-F3 board
Jaehoon Chung [Thu, 4 Jul 2024 06:21:03 +0000 (15:21 +0900)]
scripts: sd_fusing: Add BananaPi BPI-F3 board

Add BananaPi BPI-F3 board to support new RISC-V board.

Change-Id: I4a80af2f2c5faea4be9558972929bff3121d6925
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: sd_fusing: Add sfdisk error handling
Mateusz Moscicki [Wed, 19 Jun 2024 08:51:03 +0000 (10:51 +0200)]
scripts: sd_fusing: Add sfdisk error handling

Change-Id: I46519635e252de19a131a65bbd177eb9500b0138

6 months agoscripts: sd_fusing: support device symlinks in ensure_parttable()
Łukasz Stelmach [Thu, 13 Jun 2024 11:12:41 +0000 (13:12 +0200)]
scripts: sd_fusing: support device symlinks in ensure_parttable()

sd_fusing needs to support referring to devices by symlinks created by udev like
/dev/disk/by-id/usb-Generic_STORAGE_DEVICE_000000000272-0. Their partitions
are named /dev/disk/by-id/usb-Generic_STORAGE_DEVICE_000000000272-0-partX. Therefore
there is no universal way to access both /dev/sdXY and the symlinked
partitions and using get_partition_device() is the way to go.

Change-Id: I4c586f8e9b6e3940faa6055c90835bbff1777ec5
Fixes: 43ab41c7e7 ("sd_fusing.py: Ensure selected flashing target actually matches what is on device")
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: sd_fusing: Update a patch version to 2
Jaehoon Chung [Thu, 13 Jun 2024 04:51:00 +0000 (13:51 +0900)]
scripts: sd_fusing: Update a patch version to 2

Update a patch version from 1 to 2.
- Changed the name of update-status param to update-progress-status.

Change-Id: I2d3635872fdd06a10660724244e54e759e00dc0a
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoModify param files (upgrade-progress-status, upgrade-state)
SangYoun Kwak [Thu, 13 Jun 2024 04:33:12 +0000 (13:33 +0900)]
Modify param files (upgrade-progress-status, upgrade-state)

Since the file name for storing parameters are changed and added, the
tuple for params should be modified.
 * upgrade-status.info -> upgrade-progress-status.info (renamed)
 * upgrade-state.info (added)

Change-Id: Idb1e6536884cbb2a47cc5c92983eaffafd37445f
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
6 months agoscripts: sd_fusing: handle lsblk errors better
Mateusz Majewski [Fri, 7 Jun 2024 10:44:44 +0000 (12:44 +0200)]
scripts: sd_fusing: handle lsblk errors better

This makes the error handling a bit more consistent with the rest of the
script by logging an error and doing a sys.exit(1).

Returning an error by returning None would mean that it would need to be
handled elsewhere. However this does not happen, resulting in a
confusing runtime error

    TypeError: can only concatenate str (not "NoneType") to str

as well as warnings in some editors.

Change-Id: I6b3f382e93846c3165d1a8221e2faf7dbf295a86

6 months agoscripts: sd_fusing: fixes in check_sfdisk()
Jacek Kryszyn [Mon, 10 Jun 2024 07:44:10 +0000 (09:44 +0200)]
scripts: sd_fusing: fixes in check_sfdisk()

sfdisk can have a version number consisting of
{major}.{minor} or {major}.{minor}.{patch}. The new
version of check_sfdisk() handles this. In case of
a wrong version, a nicer error message which
explicitly shows minimum required version is printed.

Change-Id: I09614eabad8958ec4ac1bcc906ac09c2f5c6cbf2
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: sd_fusing: change log.* to logging.*
Jacek Kryszyn [Mon, 10 Jun 2024 07:27:35 +0000 (09:27 +0200)]
scripts: sd_fusing: change log.* to logging.*

There were several occursences of log.* instead of
logging.* which are fixed in this commit.

Change-Id: Ic30fa959f5cb4c3b3a820ae716183738c6bdddac
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: sd_fusing: wait for udev after sfdisk
Jacek Kryszyn [Mon, 10 Jun 2024 06:45:41 +0000 (08:45 +0200)]
scripts: sd_fusing: wait for udev after sfdisk

It was observed that errors related to wrong partition table
were thrown from time to time after repartitoning the device
with sfdisk. It seems that this was due to udev trying to
automatically rescan devices after being notified that some
changes were made.

This commit adds execution of udevadm settle after sfdisk.
The added command exits only after the udev event queue is
empty (or the timeout occured).

This commit reverts changes made by commit 5a7f3c8 (Invoke
ioctl to reread partitions directly) which are not needed
anymore. Running blockdev after sfdisk is also unnecessary
since sfdisk rereads the partition table anyway.

Change-Id: Ic89ea65846b4e064c85a316fdf6c07be42eb51e7
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agosd_fusing: Drop most "fstype" definitions
Karol Lewandowski [Fri, 7 Jun 2024 06:12:14 +0000 (08:12 +0200)]
sd_fusing: Drop most "fstype" definitions

This commit drops most "fstype" from target classes as its
definition forces creating new filesystem using mkfs.<fstype>,
which is normally not needed as the partitions are overwriten
by flashed binaries.

Additionally, this commit also drops fstype checking from
partition table verfication as it became useless.

Change-Id: Ief2034f0a1452ab48bd3f2b54b07a709126b000e

6 months agoscripts: sd_fusing: Fix wrong filesystem type about user
Jaehoon Chung [Wed, 5 Jun 2024 07:00:32 +0000 (16:00 +0900)]
scripts: sd_fusing: Fix wrong filesystem type about user

Tizen is using a user partition as f2fs filesystem.
It doesn't update the image because of mismatched filesystem type.

2024-06-05T15:52:37.819 Verifying that partition table on /dev/sdh matches target specification
2024-06-05T15:52:38.2 On-device partition mismatch with selected target: fstype=ext4, on-device:
DEVNAME=/dev/sdh5
UUID=c3237c35-3bee-45c0-80d6-599734b35701
TYPE=f2fs
PARTLABEL=user
PARTUUID=82d95111-8032-5c40-a80a-5138537eb66e

Change-Id: I801061da2176ee7ee125f95f0b808cddb181df17
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agosd_fusing.py: Update a minor version from 0 to 1
Jaehoon Chung [Fri, 31 May 2024 04:58:14 +0000 (13:58 +0900)]
sd_fusing.py: Update a minor version from 0 to 1

Update a minor version from 0 to 1.

Change-Id: I9fa42c53895dfbbfcd3fa9237f2875d45258e103
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agosd_fusing.py: Ensure selected flashing target actually matches what is on device
Karol Lewandowski [Thu, 23 May 2024 09:14:40 +0000 (11:14 +0200)]
sd_fusing.py: Ensure selected flashing target actually matches what is on device

Currently only partition label and filesystem type are checked, if available.

Change-Id: I64c43c7b80843e70876ce16ee7de24a7dc76378d
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
6 months agosd_fusing.py: Invoke ioctl to reread partitions directly
Karol Lewandowski [Wed, 22 May 2024 12:57:56 +0000 (14:57 +0200)]
sd_fusing.py: Invoke ioctl to reread partitions directly

This commit drops blockdev(8) in favor for invoking ioctl(2) directly,
to be able to catch EBUSY errors that happen to occur due to not yet
known kernel/udev timinig issue.

This commit also drops sfdisk --no-reread flag, which affects issuing
ioctl to reread partition table _before_ actual repartitioning.  ioctl
to reread partition table after writing changes is invoked unconditionally
and can't be disabled.

Change-Id: I105c445f9fdb3d1d2eee7ffd2de3f7ad04920f13
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
6 months agosd_fusing.py: Refactor parameters writing
Karol Lewandowski [Tue, 21 May 2024 21:57:15 +0000 (23:57 +0200)]
sd_fusing.py: Refactor parameters writing

This commit considerably alters when and which parameters are written
to "inform" partition:

 - Parameters are now updated always, not only when --format has been
   specified (this is compatible with old sd_fusing.sh behaviour)

 - Initial parameters are collected from configuration and from user
   input to reflect actual flashing options, eg. if user chosen to
   update only 'a' partition script won't set the flag that both
   partitions are cloned

   Dynamic parameters generation allowed to drop a lot of duplicated
   params.

Change-Id: I597f104b2b7972728663e2d85555407c721b7bb0
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
6 months agosd_fusing.py: Improve parameter write error message
Karol Lewandowski [Wed, 22 May 2024 10:36:48 +0000 (12:36 +0200)]
sd_fusing.py: Improve parameter write error message

Change-Id: If42e16e310b1454f190b21d6cd5b662e1f17f598
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
6 months agoDynamic partitions: fuse tarballs containing super.img
Jacek Kryszyn [Thu, 23 May 2024 10:25:47 +0000 (12:25 +0200)]
Dynamic partitions: fuse tarballs containing super.img

Allow to fuse tarballs prepared in such a way that they already
contain super.img and do not contain rootfs.img and hal.img.

Change-Id: Iac09011bd92f51354e16e70d3bb5f9ab12f299b2
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoDynamic partitions: change size of a slot
Jacek Kryszyn [Wed, 22 May 2024 08:02:42 +0000 (10:02 +0200)]
Dynamic partitions: change size of a slot

Slot size was incorrect due to missing brackets. Now it is
equal to double size of hal and rootfs. Some additional code
is added to take into account metadata size and alignment of
super.

Change-Id: I7f163d7e4a74b3f5e7a1a2f207ebece9581b4876
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agotizen: sd_fusing.py: Fix wrong user_partition count for vf2*
Seung-Woo Kim [Mon, 29 Apr 2024 11:16:01 +0000 (20:16 +0900)]
tizen: sd_fusing.py: Fix wrong user_partition count for vf2*

Fix wrong user_partition count for vf2* properly

Change-Id: I8a56c5673e07629d7cd4797b8e687619be97d48c
Fixes: commit 15b42595fc8a ("tizen: sd_fusing.py: change partition of vf2* for backward compatibility")
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
6 months agotizen: sd_fusing.py: Allow updating a & b partitions in one invocation
Karol Lewandowski [Thu, 25 Apr 2024 20:47:53 +0000 (22:47 +0200)]
tizen: sd_fusing.py: Allow updating a & b partitions in one invocation

This commit adds '--update ab' option, allowing both partition sets to
be updated at once.

Change-Id: I007392f0978753589a05d9e8586877c463ac1798
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
6 months agotizen: sd_fusing.py: change partition of vf2* for backward compatibility
Seung-Woo Kim [Mon, 29 Apr 2024 08:58:12 +0000 (17:58 +0900)]
tizen: sd_fusing.py: change partition of vf2* for backward compatibility

Before A/B partition support, there was the empty 4th part and
user flashing partition map in initrd-flash has partition number
with the empty partition. For backward compatibility, add the 4th
partition again.

Change-Id: Ic9417218ee3bd2d20cf8c82869d0e856a8600024
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
6 months agoscripts: sd_fusing.py: Update a patch version
Marek Szyprowski [Fri, 5 Apr 2024 01:53:23 +0000 (10:53 +0900)]
scripts: sd_fusing.py: Update a patch version

Update a patch version to 2.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I4e477d99f6d6132ae8666f71e7037ae5d662c983

6 months agotizen: sd_fusing.py: add support for VisionFive2 with Super partition
Marek Szyprowski [Thu, 11 Apr 2024 12:40:39 +0000 (14:40 +0200)]
tizen: sd_fusing.py: add support for VisionFive2 with Super partition

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Id5a23a2edd5af357d1febd756793f4aa96ca0d5b

6 months agotizen: sd_fusing.py: Switch VF2 board to A/B partition scheme
Marek Szyprowski [Thu, 11 Apr 2024 11:54:01 +0000 (13:54 +0200)]
tizen: sd_fusing.py: Switch VF2 board to A/B partition scheme

Use A/B partition scheme also for VisionFive2 board.

Boot script for VF2 has been updated to discover partitions based on
their GPT name, so it is safe to change layout.

While touching this, lets remove useless 'none' partition, which was
there only to force partitions to have specific numbers, hardcoded
earlier in the boot scripts. Also reduce the size of the 'boot'
partition, as there is nothing so large to store on it.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If5893114a217dc98766da0afcc925f05b31c0c14

6 months agotizen: sd_fusing.py: add LicheePi4A with Super partition support
Marek Szyprowski [Wed, 10 Apr 2024 11:37:27 +0000 (13:37 +0200)]
tizen: sd_fusing.py: add LicheePi4A with Super partition support

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If13b5df03c396c59ade8ba36529d67dc285dd745

6 months agotizen: sd_fusing.py: change bogus 'param' name to 'reserved0'
Marek Szyprowski [Wed, 10 Apr 2024 10:00:33 +0000 (12:00 +0200)]
tizen: sd_fusing.py: change bogus 'param' name to 'reserved0'

The original sd_fusing_rpi4.sh had following content:

[...]
size=${PARAM_SZ}MiB, name=reserved0
size=${RESERVED1_SZ}MiB, name=reserved1
size=${RESERVED2_SZ}MiB, name=reserved2

It looks that while rewriting the above to python, the size and name has
been mixed resulting in creating 'param' partition. Then this bogus name
was copied to the Rpi4AoT and LicheePi4A variants. Restore proper
'reserved0' name for all variants.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I931a6a3b3bbaa0aaa7d2ae934b62133b9de89568

6 months agotizen: sd_fusing.py: rpi4s: getting rid of unnecessary alignments
Jacek Kryszyn [Thu, 4 Apr 2024 13:17:27 +0000 (15:17 +0200)]
tizen: sd_fusing.py: rpi4s: getting rid of unnecessary alignments

In case of rpi4s target (Tizen with dynamic partitions
on rpi4) do not perform unnecessary calculations of aligned
size of partitions.

Change-Id: Ieea75f133d35d29f72a5b2336181b200809e5f14
Signed-off-by: Jacek Kryszyn <j.kryszyn@samsung.com>
6 months agoscripts: sd_fusing.py: Update a patch version
Jaehoon Chung [Fri, 5 Apr 2024 01:53:23 +0000 (10:53 +0900)]
scripts: sd_fusing.py: Update a patch version

Update a patch version from 0 to 1.

Change-Id: I0282bb3f625331f58a9802133a0b32ac664d9d9f
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agotizen: sd_fusing.py: Catch kernel not being able to re-read partition table
Karol Lewandowski [Thu, 4 Apr 2024 12:15:27 +0000 (14:15 +0200)]
tizen: sd_fusing.py: Catch kernel not being able to re-read partition table

sfdisk(8) by default request kernel to reread partition table but does not
seem to return error code when it fails to do so.  This commit fixes followig
error:

    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Permission denied
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
    Syncing disks.
    Traceback (most recent call last):
      File "/usr/local/bin/sd_fusing.py", line 958, in <module>
        check_partition_format(args, target)
      File "/usr/local/bin/sd_fusing.py", line 711, in check_partition_format
        mkpart(args, target)
      File "/usr/local/bin/sd_fusing.py", line 596, in mkpart
        d = "/dev/" + get_partition_device(target.device, i+1)
            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    TypeError: can only concatenate str (not "NoneType") to str

Change-Id: I32e6636f0d374e5f4327d425373d8e38f48b7916
Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
6 months agotizen: sd_fusing.py: Exit if A/B update is requested on unsupported target
Łukasz Stelmach [Thu, 4 Apr 2024 10:50:07 +0000 (12:50 +0200)]
tizen: sd_fusing.py: Exit if A/B update is requested on unsupported target

This error occurs if the target class improperly inherits from
SdFusingTarget instead of SdFusingTargetAB.

Change-Id: I83379fff92566d0036a868837e613a9a9cd94f7e
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agotizen: sd_fusing.py: add LicheePi4A board support
Marek Szyprowski [Fri, 29 Mar 2024 12:03:55 +0000 (13:03 +0100)]
tizen: sd_fusing.py: add LicheePi4A board support

Add support for preparing SD-card bootable on LicheePi4A board (with
A/B partitions on GPT layout).

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: If956976769e07d0e2166a03651d6111c39e635a4

6 months agotizen: sd_fusing.py: add support for writing bootcode to sector zero
Marek Szyprowski [Tue, 2 Apr 2024 07:42:08 +0000 (09:42 +0200)]
tizen: sd_fusing.py: add support for writing bootcode to sector zero

Some boards require special binary bootcode in sector zero (MBR or
protective MBR) to boot properly. Add support for such case.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I8cc0594328ccd6e5445d1b47804e374b0b3550a8

6 months agotizen: sd_fusing.py: add support for partition start & size specified in sectors
Marek Szyprowski [Thu, 28 Mar 2024 19:23:46 +0000 (20:23 +0100)]
tizen: sd_fusing.py: add support for partition start & size specified in sectors

Add support for specifying partition's start & size in sectors and adjust
lba-start parameter (first allowed sector of the first partition) to 34,
what is the minimal possible value for the GPT layout. This doesn't affect
any start or size of the partitions specified in MBytes, because according
to sfdisk manual, they are always aligned to 1MB.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I8fdccb896072a9cddfe7e185f6650eb0471caae2

6 months agoscripts: tizen: sd_fusing.py: Add NOTICE log level
Łukasz Stelmach [Thu, 28 Mar 2024 08:59:37 +0000 (09:59 +0100)]
scripts: tizen: sd_fusing.py: Add NOTICE log level

Add a second normal logging level. This level should be used
for essential progress messages. Use with caution to avoid
overwhelming users with output.

Change-Id: Ib22446978af5289f647cdffbb4ccd56d56c7d086
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoRevert "scripts: tizen: sd_fusing.py: Display an information during flashing"
Łukasz Stelmach [Thu, 28 Mar 2024 07:20:58 +0000 (08:20 +0100)]
Revert "scripts: tizen: sd_fusing.py: Display an information during flashing"

This partially reverts commit 8f78bf12c0eba95ebb203868856899fdcec2935c.

Only the logging module should be used for printing messages to enable
consistent control over script's output.

Change-Id: I3c9b91ff8a8accdef910700348e24be0ca1b7890
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: tizen: sd_fusing.py: Display an information during flashing
Jaehoon Chung [Fri, 15 Mar 2024 04:26:09 +0000 (13:26 +0900)]
scripts: tizen: sd_fusing.py: Display an information during flashing

Display an information during flashing.
Developer can see what script is doing.

Change-Id: Id6ffd67b885f623f8778db9a51e7606a7896c71a
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: tizen: sd_fusing.py: Separate the VF2 from RV64
Jaehoon Chung [Mon, 11 Mar 2024 09:24:21 +0000 (18:24 +0900)]
scripts: tizen: sd_fusing.py: Separate the VF2 from RV64

VisionFive2 needs to flash the u-boot-spl.bin.normal.out.
Separate the VF2 from RV64.

Change-Id: I19cef42d61131c6907daef2a8d791106673264c1
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: tizen: sd_fusing.py: Add Rpi4AoT partition map
Jaehoon Chung [Fri, 12 Jan 2024 00:55:25 +0000 (09:55 +0900)]
scripts: tizen: sd_fusing.py: Add Rpi4AoT partition map

Add Rpi4Aot Partition map to support an AoT on RPi4.

Change-Id: I6ab6b1d51408c01cb2e219cc6f4699eb849f130e
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: Add InitParams about RV64
Jaehoon Chung [Tue, 2 Jan 2024 01:40:55 +0000 (10:40 +0900)]
scripts: Add InitParams about RV64

Add InitParams about RV64(Visionfive2 board).
It will be created reboot-param.bin and reboot-param.info.

Change-Id: I282d974e777b5caea50353eb3ccc8922099f6d0c
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: Change a class name from RpiInitParams to InitParams
Jaehoon Chung [Tue, 2 Jan 2024 01:28:02 +0000 (10:28 +0900)]
scripts: Change a class name from RpiInitParams to InitParams

InitParams can be also used for other targets, not only Rpi.
So the Rpi prefix can be removed.

Change-Id: I6b55056cddb8aef2fa582a9e40565423319904fe
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoscripts: support x86 emulator images for QEMU
Łukasz Stelmach [Fri, 24 Nov 2023 10:59:45 +0000 (11:59 +0100)]
scripts: support x86 emulator images for QEMU

Change-Id: I24261d9dbc2926e1d0b7b39402269a09b48dd82b
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: add support for "swap" filesystem type
Łukasz Stelmach [Fri, 24 Nov 2023 10:55:12 +0000 (11:55 +0100)]
scripts: add support for "swap" filesystem type

Run mkswap(8) for partitions with have their fstype set to "swap". x86
emulator images require swap partition to be present.

Change-Id: Ia8e9be666f1f2c587396b8e11bf515d02370a2ad
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: support targets without the user partiton
Łukasz Stelmach [Fri, 24 Nov 2023 10:50:48 +0000 (11:50 +0100)]
scripts: support targets without the user partiton

x86 emulator images do not ship user partition. Therefore
there is no point in doing all the size calculations required
for other targets.

Change-Id: Ia59156c653695cc9067e9f971a7b4dcaa8af9d71
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: add --partition-size feat to sd_fusing.py
Leonid [Fri, 13 Oct 2023 07:18:40 +0000 (09:18 +0200)]
scripts: add --partition-size feat to sd_fusing.py

The idea is to alter partition sizes via
overriding part_table prior to SdFusingTarget.__init__
to avoid hardcoding it every time you need such a change.

Implemented in SdFusingTarget.apply_partition_sizes

Currently only called (and tested) for RV64 target

Change-Id: Ia070359b47b9c3bfbbdb7881ddf43fb16d2df4a3
Signed-off-by: Leonid <l.sawin@samsung.com>
(cherry picked from commit 304aa532036b5c81553787dfcb33dc6376ad6e91)

6 months agoscripts: generate binaries and binaries_b dictionaries
Łukasz Stelmach [Wed, 4 Oct 2023 09:17:43 +0000 (11:17 +0200)]
scripts: generate binaries and binaries_b dictionaries

Read image filenames from the part_table and automatically
associate them with appropriate partitions. Adding or
removing partitions doesn't require manual and error-prone
changes to binaries and binaries_b dictionaries.

Change-Id: Ib1cff8cb75af8a6f6c4af6f487545c643d61f438
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoscripts: rewrite fusing scirpts in python
Łukasz Stelmach [Mon, 4 Sep 2023 10:23:12 +0000 (12:23 +0200)]
scripts: rewrite fusing scirpts in python

Replace target specific shell fusing scirpts with a single extensible
Python script. To add a new target add a new class inheriting from
SdFusingTarget or SdFusingTargetAB and provide necessary information
in the part_table class variable.

Change-Id: I98cc732d78a8e71b423bc7ec42c1a6a890ffb41b
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
6 months agoInitial empty repository
Jinkun Jang [Wed, 4 Dec 2024 01:41:05 +0000 (01:41 +0000)]
Initial empty repository