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