Lines Matching full:bad
4 * Bad block table support for the NAND driver
10 * When nand_scan_bbt is called, then it tries to find the bad block table
13 * marked good / bad blocks. This information is used to create a memory BBT.
14 * Once a new bad block is discovered then the "factory" information is updated
21 * If the tables are not versioned, then we "or" the bad block information.
24 * good / bad blocks and the bad block tables are created.
29 * The auto generated bad block table is located in the last good blocks
40 * 00b: block is factory marked bad
41 * 01b, 10b: block is marked bad due to wear
43 * The memory bad block table uses the following scheme:
45 * 01b: block is marked bad due to wear
47 * 11b: block is factory marked bad
49 * Multichip devices like DOC store the bad block info per floor.
104 * Check for a pattern at the given place. Used to search bad block tables and
105 * good / bad block identifiers.
124 * Check for a pattern at the given place. Used to search bad block tables and
125 * good / bad block identifiers. Same as check_pattern, but no optional empty
156 * read_bbt - [GENERIC] Read the bad block table starting from page
164 * Read the bad block table starting from page.
229 pr_info("nand_read_bbt: bad block at 0x%012llx\n", in read_bbt()
232 /* Factory marked bad or worn out? */ in read_bbt()
249 * read_abs_bbt - [GENERIC] Read the bad block table starting at a given page
252 * @td: descriptor for the bad block table
256 * Read the bad block table for all chips starting at a given page. We assume
380 * read_abs_bbts - [GENERIC] Read the bad block table(s) for all chips starting at a given page
383 * @td: descriptor for the bad block table
384 * @md: descriptor for the bad block table mirror
386 * Read the bad block table(s) for all chips starting at a given page. We
399 pr_info("Bad block table at page %d, version 0x%02X\n", in read_abs_bbts()
408 pr_info("Bad block table at page %d, version 0x%02X\n", in read_abs_bbts()
451 * create_bbt - [GENERIC] Create a bad block table by scanning the device
454 * @bd: descriptor for the good/bad block search pattern
458 * Create a bad block table by scanning the device for the given good/bad block
469 pr_info("Scanning device for bad blocks\n"); in create_bbt()
498 pr_warn("Bad eraseblock %d at 0x%012llx\n", in create_bbt()
509 * search_bbt - [GENERIC] scan the device for a specific bad block table
512 * @td: descriptor for the bad block table
514 * Read the bad block table by searching for a given ident pattern. Search is
518 * the bad block information of this chip. This is necessary to provide support
579 pr_warn("Bad block table not found for chip %d\n", i); in search_bbt()
581 pr_info("Bad block table found at page %d, version 0x%02X\n", in search_bbt()
588 * search_read_bbts - [GENERIC] scan the device for bad block table(s)
591 * @td: descriptor for the bad block table
592 * @md: descriptor for the bad block table mirror
594 * Search and read the bad block table(s).
617 * all blocks are already used of marked bad. If td->pages[chip] was already
641 * Automatic placement of the bad block table. Search direction in get_bbt_block()
655 /* Check, if the block is bad */ in get_bbt_block()
673 * mark_bbt_block_bad - Mark one of the block reserved for BBT bad
679 * Blocks reserved for BBT can become bad. This functions is an helper to mark
680 * such blocks as bad. It takes care of updating the in-memory BBT, marking the
681 * block as bad using a bad block marker and invalidating the associated
696 pr_warn("nand_bbt: error %d while marking block %d bad\n", in mark_bbt_block_bad()
703 * write_bbt - [GENERIC] (Re)write the bad block table
706 * @td: descriptor for the bad block table
707 * @md: descriptor for the bad block table mirror
710 * (Re)write the bad block table.
735 /* Write bad block table per chip rather than per device? */ in write_bbt()
756 pr_err("No space left to write bad block table\n"); in write_bbt()
796 pr_info("nand_bbt: error reading block for writing the bad block table\n"); in write_bbt()
799 pr_warn("nand_bbt: ECC error while reading block for writing bad block table\n"); in write_bbt()
877 pr_info("Bad block table written to 0x%012llx, version 0x%02X\n", in write_bbt()
886 pr_warn("nand_bbt: error while writing bad block table %d\n", res); in write_bbt()
891 * nand_memory_bbt - [GENERIC] create a memory based bad block table
893 * @bd: descriptor for the good/bad block search pattern
896 * manufacturer / software marked good / bad blocks.
910 * @bd: descriptor for the good/bad block search pattern
971 /* Create the bad block table by scanning the device? */ in check_create()
1017 /* Write the bad block table to the device? */ in check_create()
1024 /* Write the mirror bad block table to the device? */ in check_create()
1035 * nand_update_bbt - update bad block table(s)
1039 * The function updates the bad block table(s).
1073 /* Write the bad block table to the device? */ in nand_update_bbt()
1079 /* Write the mirror bad block table to the device? */ in nand_update_bbt()
1090 * mark_bbt_regions - [GENERIC] mark the bad block table regions
1092 * @td: bad block table descriptor
1094 * The bad block table regions are marked as "bad" to prevent accidental
1151 * verify_bbt_descr - verify the bad block description
1155 * This functions performs a few sanity checks on the bad block description
1200 * nand_scan_bbt - [NAND Interface] scan, find, read and maybe create bad block table(s)
1202 * @bd: descriptor for the good/bad block search pattern
1204 * The function checks, if a bad block table(s) is/are already available. If
1205 * not it scans the device for manufacturer marked good / bad blocks and writes
1206 * the bad block table(s) to the selected place.
1208 * The bad block table memory is allocated here. It must be freed by calling
1221 * Allocate memory (2bit per block) and clear the memory bad block in nand_scan_bbt()
1230 * memory based bad block table. in nand_scan_bbt()
1255 /* Search the bad block table using a pattern in oob */ in nand_scan_bbt()
1280 * Define some generic bad / good block scan pattern which are used
1281 * while scanning a device for factory marked good / bad blocks.
1343 pr_warn("Bad block pattern already allocated; not replacing\n"); in nand_create_badblock_pattern()
1359 * nand_create_bbt - [NAND Interface] Select a default bad block table for the device
1362 * This function selects the default bad block table support for the device and
1369 /* Is a flash based bad block table requested? */ in nand_create_bbt()
1410 * nand_isbad_bbt - [NAND Interface] Check if a block is bad
1413 * @allowbbt: allow access to bad block table region
1437 * nand_markbad_bbt - [NAND Interface] Mark a block bad in the BBT
1439 * @offs: offset of the bad block
1447 /* Mark bad block in memory */ in nand_markbad_bbt()
1450 /* Update flash-based bad block table */ in nand_markbad_bbt()