Home
last modified time | relevance | path

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

1234567891011

/openbmc/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 …]
/openbmc/u-boot/drivers/mtd/nand/
H A Dbbt.c10 #define pr_fmt(fmt) "nand-bbt: " fmt
18 * nanddev_bbt_init() - Initialize the BBT (Bad Block Table)
21 * Initialize the in-memory BBT.
32 nand->bbt.cache = kzalloc(nwords, GFP_KERNEL); in nanddev_bbt_init()
33 if (!nand->bbt.cache) in nanddev_bbt_init()
41 * nanddev_bbt_cleanup() - Cleanup the BBT (Bad Block Table)
48 kfree(nand->bbt.cache); in nanddev_bbt_cleanup()
53 * nanddev_bbt_update() - Update a BBT
56 * Update the BBT. Currently a NOP function since on-flash bbt is not yet
70 * @entry: the BBT entry
[all …]
/openbmc/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 …]
H A Dnand.h203 * @cache: in memory BBT cache
404 * @bbt: bad block table info
422 struct nand_bbt bbt; member
1013 /* BBT related functions */
1033 * nanddev_bbt_pos_to_entry() - Convert a NAND position into a BBT entry
1035 * @pos: the NAND position we want to get BBT entry for
1037 * Return the BBT entry used to store information about the eraseblock pointed
1040 * Return: the BBT entry storing information about eraseblock pointed by @pos.
1051 * nanddev_bbt_is_initialized() - Check if the BBT has been initialized
1054 * Return: true if the BBT has been initialized, false otherwise.
[all …]
/openbmc/u-boot/include/linux/mtd/
H A Dbbm.h6 * - Bad Block Table (BBT) implementation
26 * @pages: the page(s) where we find the bbt, used with option BBT_ABSPAGE
27 * when bbt is searched, then we store the found bbts pages here.
30 * @veroffs: offset of the bbt version counter in the oob are of the page
31 * @version: version read from the bbt page during scan
33 * @maxblocks: maximum number of blocks to search for a bbt. This number of
37 * bad) block in the stored bbt
60 /* The number of bits used per block in the bbt on the device */
68 /* The bbt is at the given page, else we must scan for the bbt */
70 /* bbt is stored per chip on multichip devices */
[all …]
H A Dnand.h127 * @cache: in memory BBT cache
163 * @bbt: bad block table info
181 struct nand_bbt bbt; member
683 /* BBT related functions */
703 * nanddev_bbt_pos_to_entry() - Convert a NAND position into a BBT entry
705 * @pos: the NAND position we want to get BBT entry for
707 * Return the BBT entry used to store information about the eraseblock pointed
710 * Return: the BBT entry storing information about eraseblock pointed by @pos.
721 * nanddev_bbt_is_initialized() - Check if the BBT has been initialized
724 * Return: true if the BBT has been initialized, false otherwise.
[all …]
/openbmc/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 …]
H A DKconfig524 bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
529 device for the Bad Block Table (BBT). If you have existing INFTL
532 the BBT. If this is a concern for you, leave this option disabled and
533 Linux will not write BBT data into this area.
535 are detected by Linux, they will not be recorded in the BBT, which
541 Even if you leave this disabled, you can enable BBT writes at module
/openbmc/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 Dpagetest.c32 static unsigned char *bbt; variable
58 for (i = 0; i < ebcnt && bbt[i]; ++i) in verify_eraseblock()
62 for (i = 0; i < ebcnt && bbt[ebcnt - i - 1]; ++i) in verify_eraseblock()
85 if (addr <= addrn - pgsize - pgsize && !bbt[ebnum + 1]) { in verify_eraseblock()
126 for (i = 0; i < ebcnt && bbt[i]; ++i) in crosstest()
130 for (i = 0; i < ebcnt && bbt[ebcnt - i - 1]; ++i) in crosstest()
198 for (i = 0; i < ebcnt && bbt[i]; ++i) { in erasecrosstest()
204 while (ebnum2 && bbt[ebnum2]) in erasecrosstest()
276 for (i = 0; i < ebcnt && bbt[i]; ++i) { in erasetest()
372 bbt = kzalloc(ebcnt, GFP_KERNEL); in mtd_pagetest_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 Dsubpagetest.c29 static unsigned char *bbt; variable
252 if (bbt[i]) in verify_all_eraseblocks_ff()
317 bbt = kzalloc(ebcnt, GFP_KERNEL); in mtd_subpagetest_init()
318 if (!bbt) in mtd_subpagetest_init()
321 err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_subpagetest_init()
325 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_subpagetest_init()
332 if (bbt[i]) in mtd_subpagetest_init()
349 if (bbt[i]) in mtd_subpagetest_init()
363 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_subpagetest_init()
375 if (bbt[i]) in mtd_subpagetest_init()
[all …]
H A Doobtest.c34 static unsigned char *bbt; variable
96 if (bbt[i]) in write_whole_device()
320 if (bbt[i]) in verify_all_eraseblocks()
385 bbt = kzalloc(ebcnt, GFP_KERNEL); in mtd_oobtest_init()
386 if (!bbt) in mtd_oobtest_init()
389 err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_oobtest_init()
401 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_oobtest_init()
421 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_oobtest_init()
434 if (bbt[i]) in mtd_oobtest_init()
454 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt); in mtd_oobtest_init()
[all …]
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,
/openbmc/u-boot/drivers/mtd/nand/raw/
H A Dnand_bbt.c14 * depending on the options in the BBT descriptor(s). If no flash based BBT
16 * marked good / bad blocks. This information is used to create a memory BBT.
19 * If a flash based BBT is specified then the function first tries to find the
20 * BBT on flash. If a BBT is found then the contents are read and the memory
21 * based BBT is created. If a mirrored BBT is selected then the mirror is
23 * version number, then the mirror BBT is used to build the memory based BBT.
26 * If no BBT exists at all then the device is scanned for factory marked
30 * the BBT is searched and read but never created
49 * 10b: block is reserved (to protect the bbt area)
56 * - the space necessary for a bbt in FLASH does not exceed a block boundary
[all …]
/openbmc/u-boot/drivers/mtd/onenand/
H A Donenand_bbt.c10 * Split BBT core and chip specific BBT.
111 bbm->bbt[i >> 3] |= 0x03 << (i & 0x6); in create_bbt()
135 * The function creates a memory based bbt by scanning the device
161 res = (bbm->bbt[block >> 3] >> (block & 0x06)) & 0x03; in onenand_isbad_bbt()
163 pr_debug("onenand_isbad_bbt: bbt info for offs 0x%08x: (block %d) 0x%02x\n", in onenand_isbad_bbt()
200 bbm->bbt = malloc(len); in onenand_scan_bbt()
201 if (!bbm->bbt) in onenand_scan_bbt()
204 memset(bbm->bbt, 0x00, len); in onenand_scan_bbt()
218 "onenand_scan_bbt: Can't scan flash and build the RAM-based BBT\n"); in onenand_scan_bbt()
219 free(bbm->bbt); in onenand_scan_bbt()
[all …]
/openbmc/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()
/openbmc/linux/Documentation/devicetree/bindings/mtd/
H A Ddavinci-nand.txt52 - nand-on-flash-bbt: use flash based bad block table support. OOB
66 - ti,davinci-nand-use-bbt: use flash based bad block table support. OOB
88 nand-on-flash-bbt;
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 Dsamsung-s3c2410.txt18 - nand-on-flash-bbt : see nand-controller.yaml
38 nand-on-flash-bbt;
H A Dlpc32xx-slc.txt6 - nand-on-flash-bbt: Use bad block table on flash
41 nand-on-flash-bbt;
H A Dvf610-nfc.txt35 - nand-on-flash-bbt: see nand-controller.yaml
57 nand-on-flash-bbt;
H A Dnvidia-tegra20-nand.txt30 - nand-on-flash-bbt: See nand-controller.yaml
59 nand-on-flash-bbt;

1234567891011