Lines Matching full:ubi
10 * This file defines the layout of UBI headers and all the other UBI on-flash
19 /* The version of UBI images supported by this implementation */
28 /* Erase counter header magic number (ASCII "UBI#") */
30 /* Volume identifier header magic number (ASCII "UBI!") */
55 * table. UBI automatically re-sizes the volume which has this flag and makes
57 * initialization UBI finds out that there are available physical eraseblocks
62 * eraseblocks will be zero after UBI is loaded, because all of them will be
70 * exceed certain percent, e.g. 2%. When one creates an UBI image which will be
74 * table of the UBI image. In this case, one of the volumes (e.g., the one
76 * UBI will adjust its size on the first boot if needed.
78 * Note, first UBI reserves some amount of physical eraseblocks for bad
96 * @UBI_COMPAT_REJECT: reject this UBI image
105 /* Sizes of UBI headers */
109 /* Sizes of UBI headers without the ending CRC */
114 * struct ubi_ec_hdr - UBI erase counter header.
116 * @version: version of UBI implementation which is supposed to accept this
117 * UBI image
128 * indicate the version of UBI implementation which is supposed to be able to
129 * work with this UBI image. If @version is greater than the current UBI
139 * The @image_seq field is used to validate a UBI image that has been prepared
140 * for a UBI device. The @image_seq value can be any value, but it must be the
141 * same on all eraseblocks. UBI will ensure that all new erase counter headers
145 * complete, UBI will detect the error when attaching the media.
160 * struct ubi_vid_hdr - on-flash UBI volume identifier header.
162 * @version: UBI implementation version which is supposed to accept this UBI
184 * UBI writes a new VID header to the flash, i.e. when it maps a logical
195 * 1. Because UBI may erase physical eraseblocks asynchronously, the following
200 * L. But P1 has greater sequence number, so UBI picks P1 when it attaches the
203 * 2. From time to time UBI moves logical eraseblocks to other physical
204 * eraseblocks for wear-leveling reasons. If, for example, UBI moves L from P
206 * are two physical eraseblocks P and P1 corresponding to L and UBI has to
218 * UBI uses the @copy_flag field to indicate that this logical eraseblock is a
219 * copy. UBI also calculates data CRC when the data is moved and stores it at
220 * the @data_crc field of the copy (P1). So when UBI needs to pick one physical
227 * There are 2 sorts of volumes in UBI: user volumes and internal volumes.
229 * UBI purposes. In this implementation there is only one internal volume - the
230 * layout volume. Internal volumes are the main mechanism of UBI extensions.
236 * provides a mechanism to introduce UBI extensions and to be still compatible
237 * with older UBI binaries. For example, if someone introduced a journal in
239 * journal volume. And in this case, older UBI binaries, which know nothing
251 * The @data_size field is used only for static volumes because UBI has to know
255 * wear-leveling reasons. In this case, UBI calculates CRC checksum of the
266 * software (say, cramfs) on top of the UBI volume.
287 /* Internal UBI volumes count */
305 /* The maximum number of volumes per one UBI device */
344 * interrupted, UBI knows that the volume is corrupted.
348 * system works on top of UBI. The @data_pad field is calculated using the
368 /* UBI fastmap on-flash data structures */
397 * struct ubi_fm_sb - UBI fastmap super block
427 * @vol_count: number of UBI volumes known by this fastmap