/Linux-v6.1/drivers/mtd/nand/onenand/ |
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 …]
|
D | onenand_base.c | 2123 struct bbm_info *bbm = this->bbm; in onenand_block_isbad_nolock() local 2126 return bbm->isbad_bbt(mtd, ofs, allowbbt); in onenand_block_isbad_nolock() 2446 struct bbm_info *bbm = this->bbm; in onenand_default_block_markbad() local 2458 if (bbm->bbt) in onenand_default_block_markbad() 2459 bbm->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1); in onenand_default_block_markbad() 4005 if (this->bbm) { in onenand_release() 4006 struct bbm_info *bbm = this->bbm; in onenand_release() local 4007 kfree(bbm->bbt); in onenand_release() 4008 kfree(this->bbm); in onenand_release()
|
/Linux-v6.1/drivers/virtio/ |
D | virtio_mem.c | 44 "Use a safe unplug mechanism in BBM, avoiding long/endless loops"); 55 * * Big Block Mode (BBM): A Big Block (BB) spans 1..X Linux memory blocks. 91 * State of a Big Block (BB) in BBM, covering 1..X Linux memory blocks. 159 /* If set, the driver is in SBM, otherwise in BBM. */ 217 } bbm; member 222 * sbm.sb_states, bbm.bb_count, and bbm.bb_states 337 return addr / vm->bbm.bb_size; in virtio_mem_phys_to_bb_id() 346 return bb_id * vm->bbm.bb_size; in virtio_mem_bb_id_to_phys() 368 const unsigned long idx = bb_id - vm->bbm.first_bb_id; in virtio_mem_bbm_set_bb_state() 371 old_state = vm->bbm.bb_states[idx]; in virtio_mem_bbm_set_bb_state() [all …]
|
/Linux-v6.1/include/linux/mtd/ |
D | onenand.h | 16 #include <linux/mtd/bbm.h> 80 * @bbm: [REPLACEABLE] pointer to Bad Block Management 135 void *bbm; member
|
D | bbm.h | 3 * NAND family Bad Block Management (BBM) header file 124 * @priv: [OPTIONAL] pointer to private bbm date
|
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. 1219 * come from bbm.h. By default, these options will be copied to 1223 * position; i.e., BBM = 11110111b is good when badblockbits = 7
|
D | nand.h | 215 * NAND layer. This method should just write the BBM (Bad Block 219 * the BBM and return whether the block is bad or not based on what it
|
/Linux-v6.1/drivers/mtd/nand/ |
D | ecc-sw-bch.c | 213 /* Reserve 2 bytes for the BBM */ in nand_ecc_sw_bch_init_ctx() 308 /* This engine does not provide BBM/free OOB bytes protection */ in nand_ecc_sw_bch_prepare_io_req() 347 /* This engine does not provide BBM/free OOB bytes protection */ in nand_ecc_sw_bch_finish_io_req()
|
D | core.c | 75 pr_warn("failed to write BBM to block @%llx (err = %d)\n", in nanddev_markbad()
|
D | ecc-sw-hamming.c | 562 /* This engine does not provide BBM/free OOB bytes protection */ in nand_ecc_sw_hamming_prepare_io_req() 601 /* This engine does not provide BBM/free OOB bytes protection */ in nand_ecc_sw_hamming_finish_io_req()
|
/Linux-v6.1/drivers/mtd/nand/raw/ |
D | sunxi_nand.c | 661 static void sunxi_nfc_randomize_bbm(struct nand_chip *nand, int page, u8 *bbm) in sunxi_nfc_randomize_bbm() argument 665 bbm[0] ^= state; in sunxi_nfc_randomize_bbm() 666 bbm[1] ^= sunxi_nfc_randomizer_step(state, 8); in sunxi_nfc_randomize_bbm() 728 int step, bool bbm, int page) in sunxi_nfc_hw_ecc_get_prot_oob_bytes() argument 736 if (bbm && (nand->options & NAND_NEED_SCRAMBLING)) in sunxi_nfc_hw_ecc_get_prot_oob_bytes() 742 bool bbm, int page) in sunxi_nfc_hw_ecc_set_prot_oob_bytes() argument 748 if (bbm && (nand->options & NAND_NEED_SCRAMBLING)) { in sunxi_nfc_hw_ecc_set_prot_oob_bytes() 812 bool bbm, bool oob_required, int page) in sunxi_nfc_hw_ecc_read_chunk() argument 879 bbm, page); in sunxi_nfc_hw_ecc_read_chunk() 1045 int *cur_off, bool bbm, in sunxi_nfc_hw_ecc_write_chunk() argument [all …]
|
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()
|
D | nand_bbt.c | 59 #include <linux/mtd/bbm.h> 437 /* Ignore ECC errors when checking for BBM */ in scan_block_fast() 457 * No need to check for a bad BBT block if the BBM area overlaps with in bbt_block_checkbad() 458 * the bad block table marker area in OOB since writing a BBM here in bbt_block_checkbad() 1367 * This function allocates and initializes a nand_bbt_descr for BBM detection
|
D | qcom_nandc.c | 1810 * The BBM and spare bytes bit flip won’t affect the ECC so don’t check 2023 * leave the real/dummy BBM offsets empty (i.e, filled with in read_page_ecc() 2262 * itself. For the last codeword, we skip the bbm positions and in qcom_nandc_write_page() 2432 * that contains the BBM in qcom_nandc_block_bad() 2442 dev_warn(nandc->dev, "error when trying to read BBM\n"); in qcom_nandc_block_bad() 2467 * to mark the BBM as bad, we flash the entire last codeword with 0s. in qcom_nandc_block_markbad() 2490 dev_err(nandc->dev, "failure to update BBM\n"); in qcom_nandc_block_markbad() 2613 * Block Markers. In the last codeword, this position contains the real BBM
|
D | denali.c | 258 /* This chunk overwraps the BBM area. Must be split */ in denali_payload_xfer() 289 /* BBM at the beginning of the OOB area */ in denali_oob_xfer() 308 /* This chunk overwraps the BBM area. Must be split */ in denali_oob_xfer()
|
D | cadence-nand-controller.c | 522 /* Offset of BBM. */ 524 /* Number of bytes reserved for BBM. */ 1410 dev_err(cdns_ctrl->dev, "read BBM failed\n"); in cadence_nand_read_bbm() 1561 /* BBM at the beginning of the OOB area. */ in cadence_nand_write_page_raw() 1766 /* BBM at the beginning of the OOB area. */ in cadence_nand_read_page_raw()
|
/Linux-v6.1/drivers/mtd/nand/spi/ |
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()
|
D | ato.c | 51 /* first byte of section 0 is reserved for the BBM */ in ato25d1ga_ooblayout_free()
|
D | paragon.c | 47 region->offset = 6 + (15 * section); /* 4 BBM + 2 user bytes */ in pn26g0xa_ooblayout_ecc()
|
D | toshiba.c | 59 /* 2 bytes reserved for BBM */ in tx58cxgxsxraix_ooblayout_free()
|
/Linux-v6.1/arch/arm64/kernel/ |
D | relocate_kernel.S | 50 ldr x18, [x0, #KIMAGE_ARCH_ZERO_PAGE] /* x18 = zero page for BBM */
|
/Linux-v6.1/Documentation/devicetree/bindings/mtd/ |
D | nand-controller.yaml | 85 find Bad Block Markers (BBM). These markers will help to
|
/Linux-v6.1/drivers/spi/ |
D | spi-mtk-snfi.c | 53 // in the returned data, which is the BBM position expected by kernel. However, 58 // 1. The [pagesize] byte on a nand page is used as BBM, which will appear at 64 // 1. Store the BBM at [page_size - (nsectors - 1) * spare_size] to [page_size], 65 // which is the expected BBM position by kernel.
|
/Linux-v6.1/arch/arm64/include/asm/ |
D | mmu_context.h | 123 * Load our new page tables. A strict BBM approach requires that we ensure that
|
/Linux-v6.1/sound/pci/asihpi/ |
D | hpi6205.c | 795 /* GRANT phase. Set up the BBM status, tell the DSP about in outstream_host_buffer_allocate() 796 the buffer so it can start using BBM. in outstream_host_buffer_allocate() 901 /* there is no BBM buffer, write via message */ in outstream_write() 932 or enough to fit from current to end of BBM buffer */ in outstream_write() 949 * already written data into the BBM buffer, but the DSP won't know in outstream_write() 1210 or enough to fit from current to end of BBM buffer */ in instream_read()
|