1/**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12#ifndef __LINUX_MTD_BBM_H 13#define __LINUX_MTD_BBM_H 14 15#define NAND_MAX_CHIPS 8 16 17struct nand_bbt_descr { 18 int options; 19 int pages[NAND_MAX_CHIPS]; 20 int offs; 21 int veroffs; 22 uint8_t version[NAND_MAX_CHIPS]; 23 int len; 24 int maxblocks; 25 int reserved_block_code; 26 uint8_t *pattern; 27}; 28 29#define NAND_BBT_NRBITS_MSK 0x0000000F 30#define NAND_BBT_1BIT 0x00000001 31#define NAND_BBT_2BIT 0x00000002 32#define NAND_BBT_4BIT 0x00000004 33#define NAND_BBT_8BIT 0x00000008 34 35#define NAND_BBT_LASTBLOCK 0x00000010 36 37#define NAND_BBT_ABSPAGE 0x00000020 38 39#define NAND_BBT_SEARCH 0x00000040 40 41#define NAND_BBT_PERCHIP 0x00000080 42 43#define NAND_BBT_VERSION 0x00000100 44 45#define NAND_BBT_CREATE 0x00000200 46 47#define NAND_BBT_SCANALLPAGES 0x00000400 48 49#define NAND_BBT_SCANEMPTY 0x00000800 50 51#define NAND_BBT_WRITE 0x00001000 52 53#define NAND_BBT_SAVECONTENT 0x00002000 54 55#define NAND_BBT_SCAN2NDPAGE 0x00004000 56 57#define NAND_BBT_SCAN_MAXBLOCKS 4 58 59#define ONENAND_BADBLOCK_POS 0 60 61struct bbm_info { 62 int bbt_erase_shift; 63 int badblockpos; 64 int options; 65 66 uint8_t *bbt; 67 68 int (*isbad_bbt)(struct mtd_info *mtd, loff_t ofs, int allowbbt); 69 70 struct nand_bbt_descr *badblock_pattern; 71 72 void *priv; 73}; 74 75#endif 76