Home
last modified time | relevance | path

Searched full:bbt (Results 1 – 25 of 175) sorted by relevance

1234567

/linux/drivers/mtd/nand/
H A Dbbt.c10 #define pr_fmt(fmt) "nand-bbt: " fmt
16 * nanddev_bbt_init() - Initialize the BBT (Bad Block Table)
19 * Initialize the in-memory BBT.
28 nand->bbt.cache = bitmap_zalloc(nblocks * bits_per_block, GFP_KERNEL); in nanddev_bbt_init()
29 if (!nand->bbt.cache) in nanddev_bbt_init()
37 * nanddev_bbt_cleanup() - Cleanup the BBT (Bad Block Table)
44 bitmap_free(nand->bbt.cache); in nanddev_bbt_cleanup()
49 * nanddev_bbt_update() - Update a BBT
52 * Update the BBT. Currently a NOP function since on-flash bbt is not yet
66 * @entry: the BBT entry
[all …]
/linux/include/linux/mtd/
H A Dbbm.h4 * - Bad Block Table (BBT) implementation
21 * @pages: the page(s) where we find the bbt, used with option BBT_ABSPAGE
22 * when bbt is searched, then we store the found bbts pages here.
25 * @veroffs: offset of the bbt version counter in the oob are of the page
26 * @version: version read from the bbt page during scan
28 * @maxblocks: maximum number of blocks to search for a bbt. This number of
32 * bad) block in the stored bbt
55 /* The number of bits used per block in the bbt on the device */
63 /* The bbt is at the given page, else we must scan for the bbt */
65 /* bbt is stored per chip on multichip devices */
[all …]
/linux/drivers/mtd/nand/raw/
H A Dnand_bbt.c11 * depending on the options in the BBT descriptor(s). If no flash based BBT
13 * marked good / bad blocks. This information is used to create a memory BBT.
16 * If a flash based BBT is specified then the function first tries to find the
17 * BBT on flash. If a BBT is found then the contents are read and the memory
18 * based BBT is created. If a mirrored BBT is selected then the mirror is
20 * version number, then the mirror BBT is used to build the memory based BBT.
23 * If no BBT exists at all then the device is scanned for factory marked
27 * the BBT is searched and read but never created
46 * 10b: block is reserved (to protect the bbt area)
53 * - the space necessary for a bbt in FLASH does not exceed a block boundary
[all …]
/linux/drivers/mtd/tests/
H A Dspeedtest.c35 static unsigned char *bbt; variable
228 bbt = kzalloc(ebcnt, GFP_KERNEL); in mtd_speedtest_init()
229 if (!bbt) in mtd_speedtest_init()
231 err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_speedtest_init()
235 if (!bbt[i]) in mtd_speedtest_init()
239 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_speedtest_init()
247 if (bbt[i]) in mtd_speedtest_init()
265 if (bbt[i]) in mtd_speedtest_init()
279 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_speedtest_init()
287 if (bbt[i]) in mtd_speedtest_init()
[all …]
H A Dstresstest.c35 static unsigned char *bbt; variable
50 if (bbt[eb]) in rand_eb()
72 if (bbt[eb + 1]) { in do_read()
97 if (bbt[eb + 1]) in do_write()
188 bbt = kzalloc(ebcnt, GFP_KERNEL); in mtd_stresstest_init()
189 if (!bbt) in mtd_stresstest_init()
191 err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_stresstest_init()
212 kfree(bbt); in mtd_stresstest_init()
H A Dmtd_test.c42 int mtdtest_scan_for_bad_eraseblocks(struct mtd_info *mtd, unsigned char *bbt, in mtdtest_scan_for_bad_eraseblocks() argument
52 bbt[i] = is_block_bad(mtd, eb + i) ? 1 : 0; in mtdtest_scan_for_bad_eraseblocks()
53 if (bbt[i]) in mtdtest_scan_for_bad_eraseblocks()
63 int mtdtest_erase_good_eraseblocks(struct mtd_info *mtd, unsigned char *bbt, in mtdtest_erase_good_eraseblocks() argument
70 if (bbt[i]) in mtdtest_erase_good_eraseblocks()
H A Dreadtest.c29 static unsigned char *bbt; variable
161 bbt = kzalloc(ebcnt, GFP_KERNEL); in mtd_readtest_init()
162 if (!bbt) in mtd_readtest_init()
164 err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_readtest_init()
173 if (bbt[i]) in mtd_readtest_init()
198 kfree(bbt); in mtd_readtest_init()
H A Dmtd_test.h17 int mtdtest_scan_for_bad_eraseblocks(struct mtd_info *mtd, unsigned char *bbt,
19 int mtdtest_erase_good_eraseblocks(struct mtd_info *mtd, unsigned char *bbt,
/linux/drivers/mtd/nand/onenand/
H A Donenand_bbt.c11 * Split BBT core and chip specific BBT.
103 bbm->bbt[i >> 3] |= 0x03 << (i & 0x6); in create_bbt()
128 * The function creates a memory based bbt by scanning the device
153 res = (bbm->bbt[block >> 3] >> (block & 0x06)) & 0x03; in onenand_isbad_bbt()
155 pr_debug("onenand_isbad_bbt: bbt info for offs 0x%08x: (block %d) 0x%02x\n", in onenand_isbad_bbt()
189 bbm->bbt = kzalloc(len, GFP_KERNEL); in onenand_scan_bbt()
190 if (!bbm->bbt) in onenand_scan_bbt()
201 printk(KERN_ERR "onenand_scan_bbt: Can't scan flash and build the RAM-based BBT\n"); in onenand_scan_bbt()
202 kfree(bbm->bbt); in onenand_scan_bbt()
203 bbm->bbt = NULL; in onenand_scan_bbt()
/linux/Documentation/devicetree/bindings/mtd/
H A Draw-nand-chip.yaml59 nand-on-flash-bbt:
62 Block Table (BBT). If not found, it will create one, reserve
67 build a volatile BBT in RAM.
H A Dlpc32xx-slc.txt6 - nand-on-flash-bbt: Use bad block table on flash
41 nand-on-flash-bbt;
H A Datmel-nand.txt149 - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false
171 nand-on-flash-bbt;
194 nand-on-flash-bbt;
H A Dnvidia-tegra20-nand.txt30 - nand-on-flash-bbt: See nand-controller.yaml
59 nand-on-flash-bbt;
/linux/arch/arm/boot/dts/marvell/
H A Darmada-370-dlink-dns327l.dts266 nand-on-flash-bbt;
315 label = "bbt";
316 /* 1 MiB for BBT */
H A Darmada-385-atl-x530.dts220 nand-on-flash-bbt;
241 label = "nand-bbt";
H A Darmada-370-netgear-rn102.dts236 nand-on-flash-bbt;
269 /* Last MB is for the BBT, i.e. not writable */
/linux/Documentation/driver-api/
H A Dmtdnand.rst930 /* The number of bits used per block in the bbt on the device */
938 /* The bbt is at the given page, else we must scan for the bbt */
940 /* bbt is stored per chip on multichip devices */
942 /* bbt has a version counter at offset veroffs */
944 /* Create a bbt if none axists */
946 /* Write bbt if necessary */
948 /* Read and write back block contents when writing bbt */
/linux/arch/mips/boot/dts/brcm/
H A Dbcm97xxx-nand-cs1-bch24.dtsi6 nand-on-flash-bbt;
H A Dbcm97xxx-nand-cs1-bch4.dtsi6 nand-on-flash-bbt;
/linux/arch/arm64/boot/dts/broadcom/bcmbca/
H A Dbcm94908.dts41 nand-on-flash-bbt;
H A Dbcm96813.dts42 nand-on-flash-bbt;
H A Dbcm963146.dts42 nand-on-flash-bbt;
/linux/arch/arm/boot/dts/broadcom/
H A Dbcm96756.dts42 nand-on-flash-bbt;
H A Dbcm963178.dts42 nand-on-flash-bbt;
H A Dbcm947622.dts42 nand-on-flash-bbt;

1234567