As embedded systems add capabilities and increase the amount of storage available, more sophisticated data management has become a requirement. A file system is a common way of addressing the storage media; partitioning is a method for slicing that media up to use multiple file systems or multiple instances of the same file system, to support different purposes. In fact, partitioning has also been referred to as disk slicing. All of this happens above the media driver, whether SATA or eMMC or a raw flash driver like FlashFX Tera.
In many operating systems, a partition can be mounted read-only or read/write. This allows for some protection for system files (mounted read-only) while still allowing data in the file system to be created and updated (read/write).
The sort of partitioning used on DOS, Windows, and Linux systems usually involves a primary partition table and perhaps extended partition tables as well. PC hard drives used an MBR (master boot record) with space for four primary partitions. With this method, each partition has a ID, and any unrecognized values are hidden from the operating system. This allows multi-boot systems, recovery partitions, and the like. The MBR scheme has since been supplanted by GPT (GUID Partition Table), which can support much larger disks. Some of the tools used to perform partitioning operations include GPartEd (Linux), OSPart (Windows CE), xbdCreatePartition (VxWorks), and of course fdisk (DOS and others).
A partition table isn’t strictly necessary, as long as the file system knows where to perform the I/O. In Datalight’s small footprint file system, Reliance Edge, the configuration tool allows the developer to specify the starting offset for each volume, providing partitions more efficiently. This new support was introduced with Reliance Edge v2.2.
Robust flash media drivers, like FlashFX Tera, take advantage of partitioning above the driver to perform wear leveling across the entire media. With both static and dynamic wear leveling, all the flash blocks on the device wear evenly, resulting in the greatest lifetime for the device.
Media can also be partitioned below the driver, though this is less common on older media. Vendors for eMMC can provide special utilities that work with the firmware to present multiple partitions; similar utilities exist for some SD cards. Each of those partitions presents to the RTOS and file system as a separate disk, with the firmware or flash software routing the individual I/O to the correct flash chips.
FlashFX Tera can also concatenate separate NAND chips to result in one disk, which is rather the opposite of partitioning. For more information on that, see the FlashFX Tera reference manual.
In summary, partitions can be handled above and below the media driver or firmware. They can be useful for separating and protecting data and system files, while still gaining the benefits of reliability and long device lifetime. However partitioning is utilized by your design, Datalight software can help you access the data.