Partitioning system
In this 1st section of our Tech Tour, we will focus on Welma partitioning system.
2 min
3 min
5 min
4 min
3 min
3 min
4 min
3 min
5 min
2 min
Welma partitioning system is a feature that enables simple and efficient creation of the targeted system partition.
It is designed to describe a complete structure and image (using a simple configuration file), which can be directly written on flash memory in the correct format.
But its role goes beyond that: this system also impacts the update mechanism by generating the appropriate artifacts, and it plays a key role in the secure boot process by automatically adapting the authenticity of additional partitions when the verity flag is enabled.
Why partitions matter
- Flexibility and adaptability: A configurable partitioning system allows for quick alignment with specific product needs.
- Granular updates: Our update system operates at the partition level, making it essential to configure this granularity precisely.
- Technical constraints: Beyond updates, partitioning addresses requirements related to operating system organization, writing during the manufacturing process, and other operational constraints.
Default partitioning model
By default, Welma provides a partitioning structure organized as follows:
- The bootloader
- A section dedicated to bootflags for AB-style updates and manufacturing data
- The kernel, stored in an initramfs
- A partition for the Linux system
- A partition for applications
- A read/write partition for data
Boot, OS, and application partitions are mounted as read-only and follow an AB update model, as detailed in our Welma update system section.
Customizing your partitioning system
Welma default partitioning model can be tailored to meet specific business or technical needs:
- Want to merge the kernel and Linux components to ensure consistent updates across the entire OS?
- Prefer to split the application partition into multiple blocks to update each app independently?
- Want to have a dedicated partition for your system logs?
Welma’s partitioning system allows you to define these configurations easily using two input files: .part and .split.
1. The .part file
This file defines the partition table by linking logical partition names to physical partitions. It also allows configuration of the update mode.
Example:
- The bootloader is placed on partition 1 of the eMMC, with a single update mode (no AB).
- The kernel is set to AB mode, using two physical partitions (A and B).
- The system and applications follow the same AB model.
- The read/write partition has no update mechanism and uses a single physical partition.
Additionally, this file lets you specify the desired size for each partition.
2. The .split file
This file organizes system directories across the various file systems.
Example:
- /boot is mounted in the boot partition
- / (Linux root) is mounted in sysro
- /app is mounted in appro, enabling AB-style updates for applications
The .split file also allows you to:
- Define the file system type
- Add flags to enrich partition descriptions
Notable flags include:
- verity: Enables Secure Boot via the DM-Verity stack
- systemd: Indicates the partition contains service files for automatic application startup
- mount: Specify the filesystem mount options
- read-only: Ensures partitions are mounted as read-only (mandatory with verity)
- noexecution: Mounts the read/write partition without execution rights to prevent unauthorized code execution
Welma’s partitioning system provides the flexibility needed to efficiently meet your project requirements. It integrates with the update system, supporting both single and AB update modes, as well as the secure boot process to ensure a high level of security.
We invite you to continue with the next section of this tech tour, which focuses on the update system and explores the differences between these modes and their respective use cases.

