| /Linux-v5.4/drivers/mtd/parsers/ | 
| D | sharpslpart.c | 35 /* oob structure */ 69 /* verify that the OOB bytes 8 to 15 are free and available for the FTL */ 115  * The logical block number assigned to a physical block is stored in the OOB 128  * ECC BB   xyxy    oob[8]==oob[10] && oob[9]==oob[11]   -> byte0=8   byte1=9 129  * ECC BB     xyxy  oob[10]==oob[12] && oob[11]==oob[13] -> byte0=10  byte1=11 130  * ECC BB   xy  xy  oob[12]==oob[8] && oob[13]==oob[9]   -> byte0=12  byte1=13 132 static int sharpsl_nand_get_logical_num(u8 *oob)  in sharpsl_nand_get_logical_num()  argument 137 	if (oob[NAND_NOOB_LOGADDR_00] == oob[NAND_NOOB_LOGADDR_10] &&  in sharpsl_nand_get_logical_num() 138 	    oob[NAND_NOOB_LOGADDR_01] == oob[NAND_NOOB_LOGADDR_11]) {  in sharpsl_nand_get_logical_num() 141 	} else if (oob[NAND_NOOB_LOGADDR_10] == oob[NAND_NOOB_LOGADDR_20] &&  in sharpsl_nand_get_logical_num() [all …] 
 | 
| /Linux-v5.4/drivers/mtd/nand/raw/ | 
| D | sm_common.h | 9 /* Full oob structure as written on the flash */ 24 /* oob area is also 16 bytes, but might be from two pages */ 39 static inline int sm_sector_valid(struct sm_oob *oob)  in sm_sector_valid()  argument 41 	return hweight16(oob->data_status) >= 5;  in sm_sector_valid() 44 static inline int sm_block_valid(struct sm_oob *oob)  in sm_block_valid()  argument 46 	return hweight16(oob->block_status) >= 7;  in sm_block_valid() 49 static inline int sm_block_erased(struct sm_oob *oob)  in sm_block_erased()  argument 55 	if (!memcmp(oob, erased_pattern, sizeof(*oob)))  in sm_block_erased()
  | 
| D | nand_base.c | 48 /* Define default oob placement schemes for large and small page devices */ 395  * nand_fill_oob - [INTERN] Transfer client buffer to oob 397  * @oob: oob data buffer 398  * @len: oob data write length 399  * @ops: oob ops structure 401 static uint8_t *nand_fill_oob(struct nand_chip *chip, uint8_t *oob, size_t len,  in nand_fill_oob()  argument 408 	 * Initialise to all 0xFF, to avoid the possibility of left over OOB  in nand_fill_oob() 409 	 * data from a previous OOB read.  in nand_fill_oob() 417 		memcpy(chip->oob_poi + ops->ooboffs, oob, len);  in nand_fill_oob() 418 		return oob + len;  in nand_fill_oob() [all …] 
 | 
| D | sunxi_nand.c | 534  * the randomizer engine does internally before de/scrambling OOB data. 716 static void sunxi_nfc_hw_ecc_get_prot_oob_bytes(struct nand_chip *nand, u8 *oob,  in sunxi_nfc_hw_ecc_get_prot_oob_bytes()  argument 722 				   oob);  in sunxi_nfc_hw_ecc_get_prot_oob_bytes() 726 		sunxi_nfc_randomize_bbm(nand, page, oob);  in sunxi_nfc_hw_ecc_get_prot_oob_bytes() 730 						const u8 *oob, int step,  in sunxi_nfc_hw_ecc_set_prot_oob_bytes()  argument 738 		memcpy(user_data, oob, sizeof(user_data));  in sunxi_nfc_hw_ecc_set_prot_oob_bytes() 740 		oob = user_data;  in sunxi_nfc_hw_ecc_set_prot_oob_bytes() 743 	writel(sunxi_nfc_buf_to_user_data(oob),  in sunxi_nfc_hw_ecc_set_prot_oob_bytes() 760 static int sunxi_nfc_hw_ecc_correct(struct nand_chip *nand, u8 *data, u8 *oob,  in sunxi_nfc_hw_ecc_correct()  argument 785 		if (oob)  in sunxi_nfc_hw_ecc_correct() [all …] 
 | 
| D | tango_nand.c | 359  * oob = | BBM | M | ECC_0 | ... | ECC_N | 366 static void raw_read(struct nand_chip *chip, u8 *buf, u8 *oob)  in raw_read()  argument 369 	u8 *oob_orig = oob;  in raw_read() 376 	if (oob)  in raw_read() 377 		oob += BBM_SIZE;  in raw_read() 379 	aux_read(chip, &oob, METADATA_SIZE, &pos);  in raw_read() 383 		aux_read(chip, &oob, ecc_size, &pos);  in raw_read() 390 	aux_read(chip, &oob, ecc_size, &pos);  in raw_read() 393 static void raw_write(struct nand_chip *chip, const u8 *buf, const u8 *oob)  in raw_write()  argument 396 	const u8 *oob_orig = oob;  in raw_write() [all …] 
 | 
| D | fsl_elbc_nand.c | 62 	unsigned int oob;        /* Non zero if operating on OOB data     */  member 119  * ELBC may use HW ECC, so that OOB offsets, that NAND core uses for bbt, 121  * OOB {11, 5}, works for both SP and LP chips, with ECCM = 1 and ECCM = 0. 152 static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob)  in set_addr()  argument 171 		         (oob ? FPAR_LP_MS : 0) | column);  in set_addr() 181 		         (oob ? FPAR_SP_MS : 0) | column);  in set_addr() 188 	/* for OOB data point to the second half of the buffer */  in set_addr() 189 	if (oob)  in set_addr() 276 static void fsl_elbc_do_read(struct nand_chip *chip, int oob)  in fsl_elbc_do_read()  argument 299 		if (oob)  in fsl_elbc_do_read() [all …] 
 | 
| D | sm_common.c | 56 /* because the 256 byte devices have page depenent oob layout */ 103 	struct sm_oob oob;  in sm_block_markbad()  local 106 	memset(&oob, -1, SM_OOB_SIZE);  in sm_block_markbad() 107 	oob.block_status = 0x0F;  in sm_block_markbad() 114 	ops.oobbuf = (void *)&oob;  in sm_block_markbad()
  | 
| /Linux-v5.4/drivers/mtd/ | 
| D | sm_ftl.c | 127 /* ----------------------- oob helpers -------------------------------------- */ 148 static int sm_read_lba(struct sm_oob *oob)  in sm_read_lba()  argument 157 	if (!memcmp(oob, erased_pattern, SM_OOB_SIZE))  in sm_read_lba() 161 	lba_test = *(uint16_t *)oob->lba_copy1 ^ *(uint16_t*)oob->lba_copy2;  in sm_read_lba() 166 	lba = sm_get_lba(oob->lba_copy1);  in sm_read_lba() 169 		lba = sm_get_lba(oob->lba_copy2);  in sm_read_lba() 174 static void sm_write_lba(struct sm_oob *oob, uint16_t lba)  in sm_write_lba()  argument 186 	oob->lba_copy1[0] = oob->lba_copy2[0] = tmp[0];  in sm_write_lba() 187 	oob->lba_copy1[1] = oob->lba_copy2[1] = tmp[1];  in sm_write_lba() 217 static int sm_correct_sector(uint8_t *buffer, struct sm_oob *oob)  in sm_correct_sector()  argument [all …] 
 | 
| D | nftlcore.c | 121  * Read oob data from flash 142  * Write oob data to flash 165  * Write data and oob to flash 168 		      size_t *retlen, uint8_t *buf, uint8_t *oob)  in nftl_write()  argument 177 	ops.oobbuf = oob;  in nftl_write() 241 	struct nftl_oob oob;  in NFTL_foldchain()  local 268 				      (char *)&oob);  in NFTL_foldchain() 270 				foldmark = oob.u.c.FoldMark | oob.u.c.FoldMark1;  in NFTL_foldchain() 281 			status = oob.b.Status | oob.b.Status1;  in NFTL_foldchain() 380 		oob.u.c.FoldMark = oob.u.c.FoldMark1 = cpu_to_le16(FOLD_MARK_IN_PROGRESS);  in NFTL_foldchain() [all …] 
 | 
| D | inftlcore.c | 134  * Read oob data from flash 154  * Write oob data to flash 174  * Write data and oob to flash 177 		       size_t *retlen, uint8_t *buf, uint8_t *oob)  in inftl_write()  argument 185 	ops.oobbuf = oob;  in inftl_write() 244 	struct inftl_oob oob;  in INFTL_foldchain()  local 274 					   (char *)&oob) < 0)  in INFTL_foldchain() 277 				status = oob.b.Status | oob.b.Status1;  in INFTL_foldchain() 347 		memset(&oob, 0xff, sizeof(struct inftl_oob));  in INFTL_foldchain() 348 		oob.b.Status = oob.b.Status1 = SECTOR_USED;  in INFTL_foldchain() [all …] 
 | 
| D | mtdcore.c | 1299  * mtd_ooblayout_ecc - Get the OOB region definition of a specific ECC section 1305  * @oobecc: OOB region struct filled with the appropriate ECC position 1308  * This function returns ECC section information in the OOB area. If you want 1330  * mtd_ooblayout_free - Get the OOB region definition of a specific free 1337  * @oobfree: OOB region struct filled with the appropriate free position 1340  * This function returns free bytes position in the OOB area. If you want 1417  * @oobregion: OOB region information 1434  * mtd_ooblayout_get_bytes - Extract OOB bytes from the oob buffer 1436  * @buf: destination buffer to store OOB bytes 1437  * @oobbuf: OOB buffer [all …] 
 | 
| /Linux-v5.4/include/linux/mtd/ | 
| D | bbm.h | 24  * @offs:	offset of the pattern in the oob area of the page 25  * @veroffs:	offset of the bbt version counter in the oob are of the page 38  * that the pattern and the version count are always located in the oob area 73  * unavailable, for example, if the NAND controller has a different data and OOB 84  * Use a flash based bad block table. By default, OOB identifier is saved in 85  * OOB area. This option is passed to the default bad block table function. 89  * Do not store flash based bad block table marker in the OOB area; store it 94  * Do not write new bad block markers to OOB; useful, e.g., when ECC covers
  | 
| D | mtd.h | 43  * struct mtd_oob_ops - oob operation operands 50  * @ooblen:	number of oob bytes to write/read 51  * @oobretlen:	number of oob bytes written/read 52  * @ooboffs:	offset of oob data in the oob area (only relevant when 54  * @datbuf:	data buffer - if NULL only oob data are read/written 55  * @oobbuf:	oob data buffer 57  * Note, some MTD drivers do not allow you to write more than one OOB area at 77  * struct mtd_oob_region - oob region definition 81  * This structure describes a region of the OOB area, and is used 83  * Each section is defined by an offset within the OOB area and a [all …] 
 | 
| /Linux-v5.4/include/uapi/mtd/ | 
| D | mtd-abi.h | 52  * @MTD_OPS_PLACE_OOB:	OOB data are placed at the given offset (default) 53  * @MTD_OPS_AUTO_OOB:	OOB data are automatically placed at the free areas 73  * @ooblen:	length of OOB buffer 75  * @usr_oob:	user-provided OOB buffer 79  * This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB 80  * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to 133 	__u32 oobsize;	/* Amount of OOB data per block (e.g. 16) */ 173 /* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */ 195 /* Write data to OOB (64-bit version) */ 197 /* Read data from OOB (64-bit version) */ [all …] 
 | 
| /Linux-v5.4/drivers/mtd/tests/ | 
| D | readtest.c | 63 				pr_err("error: read oob failed at "  in read_eraseblock_by_page() 83 	int pg, oob;  in dump_eraseblock()  local 98 	pr_info("dumping oob from eraseblock %d\n", ebnum);  in dump_eraseblock() 101 		for (oob = 0; oob < n;) {  in dump_eraseblock() 105 			for (j = 0; j < 32 && oob < n; j++, oob++, i++)  in dump_eraseblock() 149 	       "eraseblock %u, OOB size %u\n",  in mtd_readtest_init()
  | 
| D | oobtest.c | 5  * Test OOB read and write on MTD device. 281 	/* read entire block's OOB at one go */  in verify_eraseblock_in_one_go() 293 	/* verify one page OOB at a time for bitflip per page limit check */  in verify_eraseblock_in_one_go() 374 	       "eraseblock %u, OOB size %u\n",  in mtd_oobtest_init() 398 	/* First test: write all OOB, read it back and verify */  in mtd_oobtest_init() 416 	 * Second test: write all OOB, a block at a time, read it back and  in mtd_oobtest_init() 449 	 * Third test: write OOB at varying offsets and lengths, read it back  in mtd_oobtest_init() 495 	/* Attempt to write off end of OOB */  in mtd_oobtest_init() 504 	pr_info("attempting to start write past end of OOB\n");  in mtd_oobtest_init() 511 		pr_err("error: can write past end of OOB\n");  in mtd_oobtest_init() [all …] 
 | 
| /Linux-v5.4/drivers/mtd/devices/ | 
| D | docg3.c | 40  *  - a 1 byte Hamming code stored in the OOB for each page 41  *  - a 7 bytes BCH code stored in the OOB for each page 594  * reading OOB only or write status byte). 625  *         It's in fact recv_ecc ^ calc_ecc, where recv_ecc was read from OOB 859  * @ops: the mtd oob structure 861  * Reads flash memory OOB area of pages. 888 	doc_dbg("doc_read_oob(from=%lld, mode=%d, data=(%p:%zu), oob=(%p:%zu))\n",  in doc_read_oob() 928 			doc_dbg("OOB - INFO: %*phC\n", 7, oobbuf);  in doc_read_oob() 929 			doc_dbg("OOB - HAMMING: %02x\n", oobbuf[7]);  in doc_read_oob() 930 			doc_dbg("OOB - BCH_ECC: %*phC\n", 7, oobbuf + 8);  in doc_read_oob() [all …] 
 | 
| /Linux-v5.4/drivers/usb/serial/ | 
| D | digi_acceleport.c | 60  * "OOB": can be used on the out-of-band endpoint 62 #define DIGI_CMD_SET_BAUD_RATE			0	/* INB, OOB */ 63 #define DIGI_CMD_SET_WORD_SIZE			1	/* INB, OOB */ 64 #define DIGI_CMD_SET_PARITY			2	/* INB, OOB */ 65 #define DIGI_CMD_SET_STOP_BITS			3	/* INB, OOB */ 66 #define DIGI_CMD_SET_INPUT_FLOW_CONTROL		4	/* INB, OOB */ 67 #define DIGI_CMD_SET_OUTPUT_FLOW_CONTROL	5	/* INB, OOB */ 68 #define DIGI_CMD_SET_DTR_SIGNAL			6	/* INB, OOB */ 69 #define DIGI_CMD_SET_RTS_SIGNAL			7	/* INB, OOB */ 70 #define DIGI_CMD_READ_INPUT_SIGNALS		8	/*      OOB */ [all …] 
 | 
| /Linux-v5.4/tools/testing/selftests/bpf/verifier/ | 
| D | bounds.c | 115 	/* r0 = <oob pointer> */ 117 	/* access to OOB pointer */ 140 	/* r0 = <oob pointer> */ 142 	/* access to OOB pointer */ 260 	/* no-op or OOB pointer computation */ 262 	/* potentially OOB access */ 302 	/* no-op or OOB pointer computation */ 304 	/* potentially OOB access */ 356 	/* computes unknown pointer, potentially OOB */ 358 	/* potentially OOB access */ [all …] 
 | 
| /Linux-v5.4/Documentation/devicetree/bindings/mtd/ | 
| D | davinci-nand.txt | 52 - nand-on-flash-bbt:		use flash based bad block table support. OOB 53 				identifier is saved in OOB area. If not present 66 - ti,davinci-nand-use-bbt:	use flash based bad block table support. OOB 67 				identifier is saved in OOB area. If not present
  | 
| D | gpmc-nand.txt | 120 	Other factor which governs the selection of ecc-scheme is oob-size. 121 	Higher ECC schemes require more OOB/Spare area to store ECC syndrome, 122 	so the device should have enough free bytes available its OOB/Spare 127 		OOBSIZE		number of bytes in OOB/spare area 146 		which can be accommodated in the OOB/Spare area of this device
  | 
| /Linux-v5.4/drivers/mtd/nand/raw/brcmnand/ | 
| D | brcmnand.c | 1147 			"error: ECC too large for OOB (ECC bytes %d, spare sector %d)\n",  in brcmstb_choose_ecc_layout() 1199 /* Helper functions for reading and writing OOB registers */ 1238  * read_oob_from_regs - read data from OOB registers 1241  * @oob: buffer to read to 1242  * @sas: spare area sector size (i.e., OOB size per FLASH_CACHE) 1245 static int read_oob_from_regs(struct brcmnand_controller *ctrl, int i, u8 *oob,  in read_oob_from_regs()  argument 1251 	/* Adjust OOB values for 1K sector size */  in read_oob_from_regs() 1257 		oob[j] = oob_reg_read(ctrl, j);  in read_oob_from_regs() 1262  * write_oob_to_regs - write data to OOB registers 1264  * @oob: buffer to write from [all …] 
 | 
| /Linux-v5.4/Documentation/devicetree/bindings/ata/ | 
| D | ahci-ceva.txt | 8   - ceva,p0-cominit-params: OOB timing value for COMINIT parameter for port 0. 9   - ceva,p1-cominit-params: OOB timing value for COMINIT parameter for port 1. 16   - ceva,p0-comwake-params: OOB timing value for COMWAKE parameter for port 0. 17   - ceva,p1-comwake-params: OOB timing value for COMWAKE parameter for port 1.
  | 
| /Linux-v5.4/drivers/scsi/isci/ | 
| D | phy.c | 160 	/* Hold OOB state machine in reset */  in sci_phy_link_layer_initialization() 541 		/* Release the spinup hold state and reset the OOB state machine */  in sci_phy_consume_power_handler() 550 		/* Now restart the OOB operation */  in sci_phy_consume_power_handler() 703 		       /* Start the oob/sn state machine over again */  in sci_phy_event_handler() 736 			 * continue OOB/SN as if this were a SATA PHY */  in sci_phy_event_handler() 750 		       /* Start the oob/sn state machine over again */  in sci_phy_event_handler() 767 			 * SATA PHY event continue OOB/SN as if this were a  in sci_phy_event_handler() 776 			/* Start the oob/sn state machine over again */  in sci_phy_event_handler() 783 			/* Start the oob/sn state machine over again */  in sci_phy_event_handler() 821 			/* There has been a change in the phy type before OOB/SN for the  in sci_phy_event_handler() [all …] 
 | 
| /Linux-v5.4/drivers/mtd/nand/raw/gpmi-nand/ | 
| D | gpmi-nand.c | 249  * We may have available oob space in this case. 282 			"unsupported nand chip. ecc size: %d, oob size : %d\n",  in set_geometry_by_ecc_info() 318 	 *	O : the nand chip's oob size.  in set_geometry_by_ecc_info() 319 	 *	O': the free oob.  in set_geometry_by_ecc_info() 995  * else we will use all the (page + OOB). 1023 	/* The available oob size we have. */  in gpmi_ooblayout_free() 1317 	/* Get the byte from the OOB. */  in block_mark_swapping() 1472 		 * It's time to deliver the OOB bytes. See gpmi_ecc_read_oob()  in gpmi_ecc_read_page() 1473 		 * for details about our policy for delivering the OOB.  in gpmi_ecc_read_page() 1597  * There are several places in this driver where we have to handle the OOB and [all …] 
 |