Commit | Line | Data |
---|---|---|
1dd78632 HS |
1 | menuconfig MTD_UBI |
2 | tristate "Enable UBI - Unsorted block images" | |
801c135c AB |
3 | select CRC32 |
4 | help | |
5 | UBI is a software layer above MTD layer which admits of LVM-like | |
6 | logical volumes on top of MTD devices, hides some complexities of | |
7 | flash chips like wear and bad blocks and provides some other useful | |
8 | capabilities. Please, consult the MTD web site for more details | |
9 | (www.linux-mtd.infradead.org). | |
10 | ||
1dd78632 HS |
11 | if MTD_UBI |
12 | ||
801c135c AB |
13 | config MTD_UBI_WL_THRESHOLD |
14 | int "UBI wear-leveling threshold" | |
15 | default 4096 | |
16 | range 2 65536 | |
801c135c AB |
17 | help |
18 | This parameter defines the maximum difference between the highest | |
19 | erase counter value and the lowest erase counter value of eraseblocks | |
20 | of UBI devices. When this threshold is exceeded, UBI starts performing | |
21 | wear leveling by means of moving data from eraseblock with low erase | |
6e0c84e3 AB |
22 | counter to eraseblocks with high erase counter. |
23 | ||
24 | The default value should be OK for SLC NAND flashes, NOR flashes and | |
25 | other flashes which have eraseblock life-cycle 100000 or more. | |
26 | However, in case of MLC NAND flashes which typically have eraseblock | |
3f502622 | 27 | life-cycle less than 10000, the threshold should be lessened (e.g., |
6e0c84e3 | 28 | to 128 or 256, although it does not have to be power of 2). |
801c135c | 29 | |
8beeb3bb | 30 | config MTD_UBI_BEB_LIMIT |
ba4087e9 RG |
31 | int "Maximum expected bad eraseblock count per 1024 eraseblocks" |
32 | default 20 | |
33 | range 0 768 | |
8beeb3bb SL |
34 | help |
35 | This option specifies the maximum bad physical eraseblocks UBI | |
ba4087e9 RG |
36 | expects on the MTD device (per 1024 eraseblocks). If the underlying |
37 | flash does not admit of bad eraseblocks (e.g. NOR flash), this value | |
38 | is ignored. | |
39 | ||
40 | NAND datasheets often specify the minimum and maximum NVM (Number of | |
41 | Valid Blocks) for the flashes' endurance lifetime. The maximum | |
42 | expected bad eraseblocks per 1024 eraseblocks then can be calculated | |
43 | as "1024 * (1 - MinNVB / MaxNVB)", which gives 20 for most NANDs | |
44 | (MaxNVB is basically the total count of eraseblocks on the chip). | |
45 | ||
46 | To put it differently, if this value is 20, UBI will try to reserve | |
47 | about 1.9% of physical eraseblocks for bad blocks handling. And that | |
48 | will be 1.9% of eraseblocks on the entire NAND chip, not just the MTD | |
49 | partition UBI attaches. This means that if you have, say, a NAND | |
50 | flash chip admits maximum 40 bad eraseblocks, and it is split on two | |
51 | MTD partitions of the same size, UBI will reserve 40 eraseblocks when | |
52 | attaching a partition. | |
53 | ||
db7e21c2 RG |
54 | This option can be overridden by the "mtd=" UBI module parameter or |
55 | by the "attach" ioctl. | |
edac493d | 56 | |
8beeb3bb | 57 | Leave the default value if unsure. |
801c135c | 58 | |
76ac66e4 RW |
59 | config MTD_UBI_FASTMAP |
60 | bool "UBI Fastmap (Experimental feature)" | |
61 | default n | |
62 | help | |
63 | Important: this feature is experimental so far and the on-flash | |
64 | format for fastmap may change in the next kernel versions | |
65 | ||
66 | Fastmap is a mechanism which allows attaching an UBI device | |
67 | in nearly constant time. Instead of scanning the whole MTD device it | |
68 | only has to locate a checkpoint (called fastmap) on the device. | |
69 | The on-flash fastmap contains all information needed to attach | |
70 | the device. Using fastmap makes only sense on large devices where | |
71 | attaching by scanning takes long. UBI will not automatically install | |
72 | a fastmap on old images, but you can set the UBI module parameter | |
73 | fm_autoconvert to 1 if you want so. Please note that fastmap-enabled | |
74 | images are still usable with UBI implementations without | |
75 | fastmap support. On typical flash devices the whole fastmap fits | |
76 | into one PEB. UBI will reserve PEBs to hold two fastmaps. | |
77 | ||
78 | If in doubt, say "N". | |
79 | ||
801c135c | 80 | config MTD_UBI_GLUEBI |
2ba3d76a | 81 | tristate "MTD devices emulation driver (gluebi)" |
801c135c | 82 | help |
2ba3d76a DP |
83 | This option enables gluebi - an additional driver which emulates MTD |
84 | devices on top of UBI volumes: for each UBI volumes an MTD device is | |
85 | created, and all I/O to this MTD device is redirected to the UBI | |
86 | volume. This is handy to make MTD-oriented software (like JFFS2) | |
87 | work on top of UBI. Do not enable this unless you use legacy | |
88 | software. | |
801c135c | 89 | |
1dd78632 | 90 | endif # MTD_UBI |