diff options
Diffstat (limited to 'include/linux/mtd/nand.h')
| -rw-r--r-- | include/linux/mtd/nand.h | 70 | 
1 files changed, 1 insertions, 69 deletions
| diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 39f8aec67..24ad2bdaa 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -29,6 +29,7 @@  #include "linux/mtd/compat.h"  #include "linux/mtd/mtd.h" +#include "linux/mtd/bbm.h"  struct mtd_info; @@ -480,75 +481,6 @@ extern struct nand_manufacturers nand_manuf_ids[];  #define NAND_MAX_CHIPS 8  #endif -/** - * struct nand_bbt_descr - bad block table descriptor - * @options:	options for this descriptor - * @pages:	the page(s) where we find the bbt, used with option BBT_ABSPAGE - *		when bbt is searched, then we store the found bbts pages here. - *		Its an array and supports up to 8 chips now - * @offs:	offset of the pattern in the oob area of the page - * @veroffs:	offset of the bbt version counter in the oob are of the page - * @version:	version read from the bbt page during scan - * @len:	length of the pattern, if 0 no pattern check is performed - * @maxblocks:	maximum number of blocks to search for a bbt. This number of - *		blocks is reserved at the end of the device where the tables are - *		written. - * @reserved_block_code: if non-0, this pattern denotes a reserved (rather than - *              bad) block in the stored bbt - * @pattern:	pattern to identify bad block table or factory marked good / - *		bad blocks, can be NULL, if len = 0 - * - * Descriptor for the bad block table marker and the descriptor for the - * pattern which identifies good and bad blocks. The assumption is made - * that the pattern and the version count are always located in the oob area - * of the first block. - */ -struct nand_bbt_descr { -	int	options; -	int	pages[NAND_MAX_CHIPS]; -	int	offs; -	int	veroffs; -	uint8_t	version[NAND_MAX_CHIPS]; -	int	len; -	int	maxblocks; -	int	reserved_block_code; -	uint8_t	*pattern; -}; - -/* Options for the bad block table descriptors */ - -/* The number of bits used per block in the bbt on the device */ -#define NAND_BBT_NRBITS_MSK	0x0000000F -#define NAND_BBT_1BIT		0x00000001 -#define NAND_BBT_2BIT		0x00000002 -#define NAND_BBT_4BIT		0x00000004 -#define NAND_BBT_8BIT		0x00000008 -/* The bad block table is in the last good block of the device */ -#define	NAND_BBT_LASTBLOCK	0x00000010 -/* The bbt is at the given page, else we must scan for the bbt */ -#define NAND_BBT_ABSPAGE	0x00000020 -/* The bbt is at the given page, else we must scan for the bbt */ -#define NAND_BBT_SEARCH		0x00000040 -/* bbt is stored per chip on multichip devices */ -#define NAND_BBT_PERCHIP	0x00000080 -/* bbt has a version counter at offset veroffs */ -#define NAND_BBT_VERSION	0x00000100 -/* Create a bbt if none axists */ -#define NAND_BBT_CREATE		0x00000200 -/* Search good / bad pattern through all pages of a block */ -#define NAND_BBT_SCANALLPAGES	0x00000400 -/* Scan block empty during good / bad block scan */ -#define NAND_BBT_SCANEMPTY	0x00000800 -/* Write bbt if neccecary */ -#define NAND_BBT_WRITE		0x00001000 -/* Read and write back block contents when writing bbt */ -#define NAND_BBT_SAVECONTENT	0x00002000 -/* Search good / bad pattern on the first and the second page */ -#define NAND_BBT_SCAN2NDPAGE	0x00004000 - -/* The maximum number of blocks to scan for a bbt */ -#define NAND_BBT_SCAN_MAXBLOCKS	4 -  extern int nand_scan_bbt(struct mtd_info *mtd, struct nand_bbt_descr *bd);  extern int nand_update_bbt(struct mtd_info *mtd, loff_t offs);  extern int nand_default_bbt(struct mtd_info *mtd); |