UBI Unsorted Block Images Artem Bityutskiy artem bityutskiynokia
UBI – Unsorted Block Images Artem Bityutskiy <artem. bityutskiy@nokia. com>
Introduction • A new technology for flash devices • Designed by IBM • Publicly accessible Git tree • GPL license • More information at www. linux-mtd. infradead. org
Plan 1. Linux MTD overview 2. UBI overview
Linux MTD overview
MTD overview • MTD stands for Memory Technology Devices • MTD is a Linux subsystem (drivers/mtd/) • MTD provides uniform access to various flash devices • MTD provides a generic API for that • MTD provides an “MTD device” abstraction JFFS 2 character device (/dev/mtd 0) MTD device, MTD API NAND NOR Data. Flash AG-AND One. NAND ECC’d NOR
MTD device • MTD device consists of eraseblocks • Eraseblock size varies, typically 32 -128 Kilobytes • Eraseblocks may be written to , but not re-written • Whole eraseblock has to be erased first • Then it is possible to write there re-write write X Eraseblock, 128 K … MTD device
MDT device vs Block device MTD device • Consists of sectors • Consists of eraseblocks • Sectors are small (512, 1024 bytes) • 2 operations: read and write • Eraseblocks are larger (32 -128 Kilobytes) • 3 operations: read, write and erase • Bad sectors are hidden by hardware • Bad eraseblocks are not hidden • Eraseblocks get worn-out after 104 -105 erasures. • Sectors do not get worn out MTD device is more difficult to handle
MTD partitions • Flash chip may be split on several MTD partitions • MTD partition is a set of consecutive eraseblocks • MTD partitions is a physical flash area Partition 1 (e. g. , initfs) Partition 2 (e. g. , rootfs) … so on …
Drawbacks of MTD partitions • MTD partitions are static – now way to change them “on-flight” • Do not provide wear-leveling for the whole chip JFFS 2 … Partition 1 Bad blocks Partition 2
UBI overview
UBI layer Flash File System (e. g. , UBIFS) UBI layer MTD layer … Physical flash
Logical Volumes • UBI provides logical volumes instead of MTD partitions • UBI volumes are in a way similar to LVM volumes • UBI volumes may be dynamically created, deleted and re-sized Volume A Volume B B Volume C Delete Re-size volume “C” B “B” to “A” to 1040 logical eraseblock Create … and UBI sovolume on volume “C” -–logical size 15 20 10 eraseblocks logical eraseblocks MTD device (physical flash) Volume C
Wear-leveling • UBI does wear-leveling across whole MTD device! • Wear-leveling is done by UBI, not by the UBI user! JFFS 2 Boot volume Root. FS volume MTD device (physical flash) Data. Storage volume
UBI volume vs. MTD partition UBI volume • Consists of physical eraseblocks (PEB) PEB • Consists of logical eraseblocks (LEB) LEB • Does not implement wear-leveling • Implements wear-leveling • Admits of bad PEBs • Devoid of bad LEBs Advantages of UBI • Allows dynamic volume creation, deletion and re-sizing more flexibility • Eliminates the “wear” problem simpler software • Eliminates bad eraseblocks problem simpler software
How it works • LEBs are mapped to PEBs Return 0 x. FFs erase write read • Any LEB may be mapped to any PEB Static Volume read-only A data LEB 0 LEB 1 LEB 2 LEB 3 Volume B LEB 4 LEB 0 LEB 1 LEB 2 UBI layer PEB 0 PEB 1 PEB 2 PEB 3 Re-map LEB Move data Low erase counter PEB 4 PEB 5 PEB 6 PEB 7 MTD device High erase counter PEB 8 PEB 9 PEB 10
Bad eraseblocks handling • UBI volumes are devoid of bad eraseblocks • UBI does proper error recovery transparently Write more data The data have been successfully written! An UBI volume Re-map the LEB to to this PEB Write newcoming data this PEB Mark Partially this PEBfilled s bad No panic! Recover the data to become a good PEB Write error! The eraseblock’s bad! physical eraseblock Bad physical Empty physical eraseblock Eraseblock
UBI interfaces • UBI character devices: 1. /dev/ubi 0, /dev/ubi 1, … – UBI devices: volume create, delete, re-size, and get device description operations 2. /dev/ubi 0_0, /dev/ubi 0_1, … - UBI volumes: read, write, update, and get volume description operations • UBI sysfs interface: /sys/class/ubi • UBI in-kernel interface: include/linux/mtd/ubi. h
Volume update operation • Useful for software updates • Volume is in “corrupted” state if update is interrupted • “Corrupted” volumes are not usable and must be updated
Static and dynamic UBI volumes • Dynamic volumes are read-write • Static volumes are read-only • Static volumes are protected by CRC-32 checksum
- Slides: 19