/
usr
/
src
/
linux-headers-5.15.0-190
/
include
/
linux
/
mtd
/
/usr/src/linux-headers-5.15.0-190/include/linux/mtd
mkdir
upload
Name
Size
Mode
Actions
bbm.h
4825
0644
edit
dl
rm
blktrans.h
2682
0644
edit
dl
rm
cfi.h
10144
0644
edit
dl
rm
cfi_endian.h
1514
0644
edit
dl
rm
concat.h
493
0644
edit
dl
rm
doc2000.h
5505
0644
edit
dl
rm
flashchip.h
2478
0644
edit
dl
rm
ftl.h
2551
0644
edit
dl
rm
gen_probe.h
615
0644
edit
dl
rm
hyperbus.h
2893
0644
edit
dl
rm
inftl.h
1599
0644
edit
dl
rm
jedec.h
1905
0644
edit
dl
rm
latch-addr-flash.h
716
0644
edit
dl
rm
lpc32xx_mlc.h
385
0644
edit
dl
rm
lpc32xx_slc.h
385
0644
edit
dl
rm
map.h
13016
0644
edit
dl
rm
mtd.h
22569
0644
edit
dl
rm
mtdram.h
257
0644
edit
dl
rm
nand-ecc-sw-bch.h
2117
0644
edit
dl
rm
nand-ecc-sw-hamming.h
2717
0644
edit
dl
rm
nand-gpio.h
330
0644
edit
dl
rm
nand.h
30284
0644
edit
dl
rm
ndfc.h
2070
0644
edit
dl
rm
nftl.h
1734
0644
edit
dl
rm
onenand.h
7974
0644
edit
dl
rm
onenand_regs.h
7217
0644
edit
dl
rm
onfi.h
4962
0644
edit
dl
rm
partitions.h
3946
0644
edit
dl
rm
pfow.h
4489
0644
edit
dl
rm
physmap.h
808
0644
edit
dl
rm
pismo.h
271
0644
edit
dl
rm
plat-ram.h
668
0644
edit
dl
rm
platnand.h
2545
0644
edit
dl
rm
qinfo.h
2530
0644
edit
dl
rm
rawnand.h
52400
0644
edit
dl
rm
sharpsl.h
485
0644
edit
dl
rm
sh_flctl.h
5927
0644
edit
dl
rm
spear_smi.h
1714
0644
edit
dl
rm
spi-nor.h
17247
0644
edit
dl
rm
spinand.h
16220
0644
edit
dl
rm
super.h
578
0644
edit
dl
rm
ubi.h
9914
0644
edit
dl
rm
xip.h
2556
0644
edit
dl
rm
Edit:
/usr/src/linux-headers-5.15.0-190/include/linux/mtd/bbm.h
(4825B)
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * NAND family Bad Block Management (BBM) header file * - Bad Block Table (BBT) implementation * * Copyright © 2005 Samsung Electronics * Kyungmin Park <kyungmin.park@samsung.com> * * Copyright © 2000-2005 * Thomas Gleixner <tglx@linuxtronix.de> */ #ifndef __LINUX_MTD_BBM_H #define __LINUX_MTD_BBM_H /* The maximum number of NAND chips in an array */ #define NAND_MAX_CHIPS 8 /** * 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 /* 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 exists */ #define NAND_BBT_CREATE 0x00000200 /* * Create an empty BBT with no vendor information. Vendor's information may be * unavailable, for example, if the NAND controller has a different data and OOB * layout or if this information is already purged. Must be used in conjunction * with NAND_BBT_CREATE. */ #define NAND_BBT_CREATE_EMPTY 0x00000400 /* Write bbt if neccecary */ #define NAND_BBT_WRITE 0x00002000 /* Read and write back block contents when writing bbt */ #define NAND_BBT_SAVECONTENT 0x00004000 /* * Use a flash based bad block table. By default, OOB identifier is saved in * OOB area. This option is passed to the default bad block table function. */ #define NAND_BBT_USE_FLASH 0x00020000 /* * Do not store flash based bad block table marker in the OOB area; store it * in-band. */ #define NAND_BBT_NO_OOB 0x00040000 /* * Do not write new bad block markers to OOB; useful, e.g., when ECC covers * entire spare area. Must be used with NAND_BBT_USE_FLASH. */ #define NAND_BBT_NO_OOB_BBM 0x00080000 /* * Flag set by nand_create_default_bbt_descr(), marking that the nand_bbt_descr * was allocated dynamicaly and must be freed in nand_cleanup(). Has no meaning * in nand_chip.bbt_options. */ #define NAND_BBT_DYNAMICSTRUCT 0x80000000 /* The maximum number of blocks to scan for a bbt */ #define NAND_BBT_SCAN_MAXBLOCKS 4 /* * Bad block scanning errors */ #define ONENAND_BBT_READ_ERROR 1 #define ONENAND_BBT_READ_ECC_ERROR 2 #define ONENAND_BBT_READ_FATAL_ERROR 4 /** * struct bbm_info - [GENERIC] Bad Block Table data structure * @bbt_erase_shift: [INTERN] number of address bits in a bbt entry * @options: options for this descriptor * @bbt: [INTERN] bad block table pointer * @isbad_bbt: function to determine if a block is bad * @badblock_pattern: [REPLACEABLE] bad block scan pattern used for * initial bad block scan * @priv: [OPTIONAL] pointer to private bbm date */ struct bbm_info { int bbt_erase_shift; int options; uint8_t *bbt; int (*isbad_bbt)(struct mtd_info *mtd, loff_t ofs, int allowbbt); /* TODO Add more NAND specific fileds */ struct nand_bbt_descr *badblock_pattern; void *priv; }; /* OneNAND BBT interface */ extern int onenand_default_bbt(struct mtd_info *mtd); #endif /* __LINUX_MTD_BBM_H */
Save
cmd:
run