Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
ubi_attach_req Struct Reference

#include <ubi-user.h>

Data Fields

__s32 ubi_num
 
__s32 mtd_num
 
__s32 vid_hdr_offset
 
__s16 max_beb_per1024
 
__s8 padding [10]
 

Detailed Description

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.

Field Documentation

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


The documentation for this struct was generated from the following file: