UBI – Unsorted Block Images
Introduction
Plan
Linux MTD overview
MTD overview
MTD device
MDT device vs Block device
MTD partitions
Drawbacks of MTD partitions
UBI overview
UBI layer
Logical Volumes
Wear-leveling
UBI volume vs. MTD partition
How it works
Bad eraseblocks handling
UBI interfaces
Volume update operation
Static and dynamic UBI volumes
312.50K

UBI – Unsorted Block Images

1. UBI – Unsorted Block Images

Artem Bityutskiy <[email protected]>

2. Introduction

• A new technology for flash devices
• Designed by IBM
• Publicly accessible Git tree
• GPL license
• More information at www.linux-mtd.infradead.org

3. Plan

1. Linux MTD overview
2. UBI overview

4. Linux MTD overview

5. 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
JFFS2
character device (/dev/mtd0)
MTD device, MTDAPI
NAND
NOR
DataFlash
AG-AND
OneNAND
ECC’d NOR

6. 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
write
write
write
write
write
X
Eraseblock, 128K

MTD device

7. MDT device vs Block device

Block device
MTD device
• Consists of sectors
• Consists of eraseblocks
• Sectors are small (512, 1024 bytes)
• Eraseblocks are larger (32-128 Kilobytes)
• 2 operations: read and write
• 3 operations: read, write and erase
• Bad sectors are hidden by hardware
• Bad eraseblocks are not hidden
• Sectors do not get worn out
• Eraseblocks get worn-out after 104-105
erasures.
MTD device is more difficult to handle

8. 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

9. Drawbacks of MTD partitions

• MTD partitions are static – now way to change them “on-flight”
• Do not provide wear-leveling for the whole chip
JFFS2

Partition 1
Bad blocks
Partition
2

10. UBI overview

11. UBI layer

Flash File System (e.g., UBIFS)
UBI layer
MTD layer

Physical flash

12. 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
Volume
B
B
Volume C
Delete
Re-size
Re-size
volume
“C”
B “B”
to
“A”
to1040
logical
eraseblock
Create

and UBI
sovolume
on
volume
“C”
-–logical
size
15
20
10eraseblocks
logical
eraseblocks
MTD device (physical flash)
Volume C

13. Wear-leveling

• UBI does wear-leveling across whole MTD device!
• Wear-leveling is done by UBI, not by the UBI user!
JFFS2
Boot volume
RootFS volume
MTD device (physical flash)
DataStorage volume

14. UBI volume vs. MTD partition

MTD partition
UBI volume
• Consists of physical eraseblocks (PEB)
• Consists of logical eraseblocks (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

15. How it works

• LEBs are mapped to PEBs
Return 0xFFs
erase
read
write
• 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

16. 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
MarkPartially
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

17. UBI interfaces


UBI character devices:
1. /dev/ubi0, /dev/ubi1, … – UBI devices: volume create, delete, re-size, and get
device description operations
2. /dev/ubi0_0, /dev/ubi0_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

18. 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

19. Static and dynamic UBI volumes

• Dynamic volumes are read-write
• Static volumes are read-only
• Static volumes are protected by CRC-32 checksum
English     Русский Правила