Skip to content

partup 3.0.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 11:38
· 41 commits to main since this release

Changes

  • Various small improvements to the documentation.

  • Describe how to build and install partup in Windows' Subsystem for
    Linux (WSL).

  • Add a new module for parsing units and their corresponding factors.
    This allows for parsing sizes and offsets, independent of any
    underlying device.

  • Add logic for parsing a list of supported device types. This is needed
    for differentiating layout configuration files meant for different
    devices, such as eMMC and MTD. By default, and to support older layout
    API versions, supported-device-types includes MMC and HD type devices,
    if not specified otherwise.

  • Add a new module to support flashing Memory Technology Devices (MTD).
    This requires specifying the appropriate supported-device-type
    mtd.

    MTDs can be partitioned. However, partitions are just a statically
    specified section in the flash device, with an offset and size. There
    is no partition table in MTDs and care must be taken not to overlap
    the partitions. This is automatically done with partup, so partitions
    do not overlap or exceed the maximum device size.

    This feature requires the Linux kernel being configured with
    MTD_PARTITIONED_MASTER, so the master device of the MTD is always
    exposed, regardless of it already being partitioned or not.

    As of this point in time (July 2025, Linux 6.15.8), the kernel only
    properly exposes the MTD master device for one MTD at a time. For
    systems with multiple MTDs, e.g. a raw NAND flash and an SPI NOR
    flash, this does not work. This is currently a limitation of the Linux
    MTD driver.

  • Test a simple MTD layout configuration.

  • Describe how to flash MTDs and how the supported device types
    function. While at it, reorder the sections for MMC devices to be
    separate from the MTD sections. This should clarify the difference
    between MMC/HD partitions and MTD partitions.

  • For binary data in eMMC boot partitions, verify the written output
    data, in addition to the already existing input verification. This
    adds the same output verification as exists for the "raw" section.

    First, a checksum is created of the input file while accounting any
    input offset. Then the data is written as usual to the device.
    Finally, the written data is verified at the specified output offset
    against the previously determined checksum.

  • Unify raw output data checksum verification for the MTD and MMC
    modules. Provided SHA256 and MD5 sums are only used for verifying the
    input data. Output data is always independently checked with a
    separately generated SHA1 sum.

  • Only generate the output data checksum, if not skipping the checksum
    verification. If checksum verification is skipped, there is no point
    in generating an output checksum.

Bug Fixes

  • Prefix a GError when package creation failed, instead of overwriting
    it.
  • Correctly store the api-version property as an integer, not as a
    pointer.

Contributors

Martin Schwan