| /OK3568_Linux_fs/u-boot/drivers/mtd/onenand/ |
| H A D | onenand_bbt.c | 66 struct bbm_info *bbm = this->bbm; in create_bbt() local 86 numblocks = this->chipsize >> (bbm->bbt_erase_shift - 1); in create_bbt() 111 bbm->bbt[i >> 3] |= 0x03 << (i & 0x6); in create_bbt() 124 from += (1 << bbm->bbt_erase_shift); in create_bbt() 155 struct bbm_info *bbm = this->bbm; in onenand_isbad_bbt() local 161 res = (bbm->bbt[block >> 3] >> (block & 0x06)) & 0x03; in onenand_isbad_bbt() 195 struct bbm_info *bbm = this->bbm; in onenand_scan_bbt() local 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() [all …]
|
| H A D | onenand_base.c | 1714 struct bbm_info *bbm = this->bbm; in onenand_block_isbad_nolock() local 1717 return bbm->isbad_bbt(mtd, ofs, allowbbt); in onenand_block_isbad_nolock() 1895 struct bbm_info *bbm = this->bbm; in onenand_default_block_markbad() local 1907 if (bbm->bbt) in onenand_default_block_markbad() 1908 bbm->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1); in onenand_default_block_markbad() 1911 ofs += mtd->oobsize + (bbm->badblockpos & ~0x01); in onenand_default_block_markbad()
|
| /OK3568_Linux_fs/kernel/drivers/mtd/nand/onenand/ |
| H A D | onenand_bbt.c | 59 struct bbm_info *bbm = this->bbm; in create_bbt() local 79 numblocks = this->chipsize >> (bbm->bbt_erase_shift - 1); in create_bbt() 103 bbm->bbt[i >> 3] |= 0x03 << (i & 0x6); in create_bbt() 116 from += (1 << bbm->bbt_erase_shift); in create_bbt() 147 struct bbm_info *bbm = this->bbm; in onenand_isbad_bbt() local 153 res = (bbm->bbt[block >> 3] >> (block & 0x06)) & 0x03; in onenand_isbad_bbt() 184 struct bbm_info *bbm = this->bbm; in onenand_scan_bbt() local 189 bbm->bbt = kzalloc(len, GFP_KERNEL); in onenand_scan_bbt() 190 if (!bbm->bbt) in onenand_scan_bbt() 194 bbm->bbt_erase_shift = this->erase_shift; in onenand_scan_bbt() [all …]
|
| H A D | onenand_base.c | 2114 struct bbm_info *bbm = this->bbm; in onenand_block_isbad_nolock() local 2117 return bbm->isbad_bbt(mtd, ofs, allowbbt); in onenand_block_isbad_nolock() 2437 struct bbm_info *bbm = this->bbm; in onenand_default_block_markbad() local 2449 if (bbm->bbt) in onenand_default_block_markbad() 2450 bbm->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1); in onenand_default_block_markbad() 3998 if (this->bbm) { in onenand_release() 3999 struct bbm_info *bbm = this->bbm; in onenand_release() local 4000 kfree(bbm->bbt); in onenand_release() 4001 kfree(this->bbm); in onenand_release()
|
| /OK3568_Linux_fs/u-boot/include/linux/mtd/ |
| H A D | bbm.h | 2 * linux/include/linux/mtd/bbm.h 4 * NAND family Bad Block Management (BBM) header file 141 * @priv: [OPTIONAL] pointer to private bbm date
|
| H A D | onenand.h | 21 #include <linux/mtd/bbm.h> 123 void *bbm; member
|
| /OK3568_Linux_fs/u-boot/arch/arm/mach-uniphier/boot-device/ |
| H A D | boot-device-pxs3.c | 31 {BOOT_DEVICE_NAND, "NAND (Mirror 8, ECC 8, ONFI, Addr 5, BBM Last Page)"}, 32 {BOOT_DEVICE_NAND, "NAND (Mirror 8, ECC 16, ONFI, Addr 5, BBM Last Page)"},
|
| /OK3568_Linux_fs/kernel/include/linux/mtd/ |
| H A D | onenand.h | 16 #include <linux/mtd/bbm.h> 80 * @bbm: [REPLACEABLE] pointer to Bad Block Management 135 void *bbm; member
|
| H A D | bbm.h | 3 * NAND family Bad Block Management (BBM) header file 124 * @priv: [OPTIONAL] pointer to private bbm date
|
| H A D | rawnand.h | 19 #include <linux/mtd/bbm.h> 206 * Some controllers with pipelined ECC engines override the BBM marker with 209 * BBM and consider all blocks good. 1183 * come from bbm.h. By default, these options will be copied to 1187 * position; i.e., BBM = 11110111b is good when badblockbits = 7
|
| /OK3568_Linux_fs/kernel/drivers/mtd/nand/raw/ |
| H A D | sunxi_nand.c | 650 static void sunxi_nfc_randomize_bbm(struct nand_chip *nand, int page, u8 *bbm) in sunxi_nfc_randomize_bbm() argument 654 bbm[0] ^= state; in sunxi_nfc_randomize_bbm() 655 bbm[1] ^= sunxi_nfc_randomizer_step(state, 8); in sunxi_nfc_randomize_bbm() 717 int step, bool bbm, int page) in sunxi_nfc_hw_ecc_get_prot_oob_bytes() argument 725 if (bbm && (nand->options & NAND_NEED_SCRAMBLING)) in sunxi_nfc_hw_ecc_get_prot_oob_bytes() 731 bool bbm, int page) in sunxi_nfc_hw_ecc_set_prot_oob_bytes() argument 737 if (bbm && (nand->options & NAND_NEED_SCRAMBLING)) { in sunxi_nfc_hw_ecc_set_prot_oob_bytes() 801 bool bbm, bool oob_required, int page) in sunxi_nfc_hw_ecc_read_chunk() argument 868 bbm, page); in sunxi_nfc_hw_ecc_read_chunk() 1029 int *cur_off, bool bbm, in sunxi_nfc_hw_ecc_write_chunk() argument [all …]
|
| H A D | rockchip-nand-controller.c | 547 * so chip->oob_poi[0] is the bad block mask (BBM). in rk_nfc_write_page_raw() 551 * PA0 PA1 PA2 PA3 | BBM OOB1 OOB2 OOB3 | ... in rk_nfc_write_page_raw() 555 * 0xFF 0xFF 0xFF 0xFF | BBM OOB1 OOB2 OOB3 | ... in rk_nfc_write_page_raw() 562 * BBM OOB1 OOB2 OOB3 |......| PA0 PA1 PA2 PA3 in rk_nfc_write_page_raw() 615 * conflicts for example with the bad block marker (BBM), in rk_nfc_write_page_hwecc() 616 * so we shift all OOB data including the BBM with 4 byte positions. in rk_nfc_write_page_hwecc() 620 * PA0 PA1 PA2 PA3 | BBM OOB1 OOB2 OOB3 | ... in rk_nfc_write_page_hwecc() 625 * 0xFF 0xFF 0xFF 0xFF | BBM OOB1 OOB2 OOB3 | ... in rk_nfc_write_page_hwecc()
|
| H A D | tango_nand.c | 387 * | M | PKT_0 | ECC_0 | ... | N1 | BBM | N2 | ECC_N | 393 * oob = | BBM | M | ECC_0 | ... | ECC_N | 408 int rem = page_size; /* bytes remaining until BBM area */ in raw_read() 435 int rem = page_size; /* bytes remaining until BBM area */ in raw_write()
|
| /OK3568_Linux_fs/kernel/drivers/mtd/nand/spi/ |
| H A D | micron.c | 78 /* Reserve 2 bytes for the BBM. */ in micron_8_ooblayout_free() 118 /* section 0 has two bytes reserved for the BBM */ in micron_4_ooblayout_free()
|
| H A D | xincun.c | 50 /* Reserve 2 bytes for the BBM. */ in xcsp2aapk_ooblayout_free()
|
| H A D | paragon.c | 47 region->offset = 6 + (15 * section); /* 4 BBM + 2 user bytes */ in pn26g0xa_ooblayout_ecc()
|
| H A D | jsc.c | 49 /* Reserve 2 bytes for the BBM. */ in js28u1gqscahg_ooblayout_free()
|
| H A D | gigadevice.c | 142 /* Reserve 1 bytes for the BBM. */ in gd5fxgqx_variant2_ooblayout_free() 196 /* Reserve 1 bytes for the BBM. */ in gd5fxgqx_variant3_ooblayout_free()
|
| /OK3568_Linux_fs/u-boot/drivers/mtd/nand/spi/ |
| H A D | xincun.c | 52 /* Reserve 2 bytes for the BBM. */ in xcsp2aapk_ooblayout_free()
|
| H A D | micron.c | 57 /* Reserve 2 bytes for the BBM. */ in mt29f2g01abagd_ooblayout_free()
|
| H A D | jsc.c | 51 /* Reserve 2 bytes for the BBM. */ in js28u1gqscahg_ooblayout_free()
|
| H A D | gigadevice.c | 146 /* Reserve 1 bytes for the BBM. */ in gd5fxgqx_variant2_ooblayout_free() 200 /* Reserve 1 bytes for the BBM. */ in gd5fxgqx_variant3_ooblayout_free()
|
| H A D | winbond.c | 97 /* Reserve 2 bytes for the BBM. */ in w25n02kv_ooblayout_free()
|
| H A D | toshiba.c | 49 /* 2 bytes reserved for BBM */ in tc58cxgxsx_ooblayout_free()
|
| /OK3568_Linux_fs/u-boot/drivers/mtd/nand/raw/ |
| H A D | sunxi_nand.c | 744 static void sunxi_nfc_randomize_bbm(struct mtd_info *mtd, int page, u8 *bbm) in sunxi_nfc_randomize_bbm() argument 748 bbm[0] ^= state; in sunxi_nfc_randomize_bbm() 749 bbm[1] ^= sunxi_nfc_randomizer_step(state, 8); in sunxi_nfc_randomize_bbm() 811 bool bbm, int page) in sunxi_nfc_hw_ecc_read_chunk() argument 890 if (bbm && nand->options & NAND_NEED_SCRAMBLING) in sunxi_nfc_hw_ecc_read_chunk() 937 int *cur_off, bool bbm, in sunxi_nfc_hw_ecc_write_chunk() argument 951 if ((nand->options & NAND_NEED_SCRAMBLING) && bbm) { in sunxi_nfc_hw_ecc_write_chunk()
|