Linux Kernel
3.7.1
|
#include <ubi-user.h>
Data Fields | |
__s32 | ubi_num |
__s32 | mtd_num |
__s32 | vid_hdr_offset |
__s16 | max_beb_per1024 |
__s8 | padding [10] |
struct ubi_attach_req - attach MTD device request. : UBI device number to create : MTD device number to attach : VID header offset (use defaults if %0) : maximum expected number of bad PEB per 1024 PEBs : reserved for future, not used, has to be zeroed
This data structure is used to specify MTD device UBI has to attach and the parameters it has to use. The number which should be assigned to the new UBI device is passed in . UBI may automatically assign the number if is passed. In this case, the device number is returned in .
Most applications should pass %0 in to make UBI use default offset of the VID header within physical eraseblocks. The default offset is the next min. I/O unit after the EC header. For example, it will be offset 512 in case of a 512 bytes page NAND flash with no sub-page support. Or it will be 512 in case of a 2KiB page NAND flash with 4 512-byte sub-pages.
But in rare cases, if this optimizes things, the VID header may be placed to a different offset. For example, the boot-loader might do things faster if the VID header sits at the end of the first 2KiB NAND page with 4 sub-pages. As the boot-loader would not normally need to read EC headers (unless it needs UBI in RW mode), it might be faster to calculate ECC. This is weird example, but it real-life example. So, in this example, would be 2KiB-64 bytes = 1984. Note, that this position is not even 512-bytes aligned, which is OK, as UBI is clever enough to realize this is 4th sub-page of the first page and add needed padding.
The is the maximum amount of bad PEBs UBI expects on the UBI device per 1024 eraseblocks. This value is often given in an other form in the NAND datasheet (min NVB i.e. minimal number of valid blocks). The maximum expected bad eraseblocks per 1024 is then: 1024 * (1 - MinNVB / MaxNVB) Which gives 20 for most NAND devices. This limit is used in order to derive amount of eraseblock UBI reserves for handling new bad blocks. If the device has more bad eraseblocks than this limit, UBI does not reserve any physical eraseblocks for new bad eraseblocks, but attempts to use available eraseblocks (if any). The accepted range is 0-768. If 0 is given, the default kernel value of CONFIG_MTD_UBI_BEB_LIMIT will be used.
Definition at line 262 of file ubi-user.h.
__s16 max_beb_per1024 |
Definition at line 266 of file ubi-user.h.
__s32 mtd_num |
Definition at line 264 of file ubi-user.h.
__s8 padding[10] |
Definition at line 267 of file ubi-user.h.
__s32 ubi_num |
Definition at line 263 of file ubi-user.h.
__s32 vid_hdr_offset |
Definition at line 265 of file ubi-user.h.