/linux/tools/testing/selftests/net/af_unix/ |
H A D | test_unix_oob.c |
|
H A D | msg_oob.c | 384 TEST_F(msg_oob, oob) in TEST_F() argument 395 resetpair(false); /* TCP sets -ECONNRESET for ex-OOB. */ in TEST_F() 414 recvpair("", -EAGAIN, 1, 0); /* Drop OOB. */ in TEST_F() 440 resetpair(false); /* TCP sets -ECONNRESET for ex-OOB. */ in TEST_F() 450 recvpair("hell", 4, 5, 0); /* Break at OOB even with enough buffer. */ in TEST_F() 478 recvpair("hell", 4, 9, 0); /* Break at OOB even after it's recv()ed. */ in TEST_F() 499 recvpair("hell", 4, 10, 0); /* Break at OOB even with enough buffer. */ in TEST_F() 503 recvpair("world", 5, 10, 0); /* Drop OOB and recv() the next skb. */ in TEST_F() 528 recvpair("hellowo", 7, 10, 0); /* Break at OOB but not at ex-OOB. */ in TEST_F() 638 resetpair(false); /* TCP sets -ECONNRESET for ex-OOB. */ in TEST_F() [all …]
|
/linux/drivers/mtd/parsers/ |
H A 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/drivers/mtd/ |
H A 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 …]
|
H A 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 …]
|
/linux/drivers/mtd/nand/raw/ |
H A 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()
|
H A D | fsl_elbc_nand.c | 61 unsigned int oob; /* Non zero if operating on OOB data */ member 118 * ELBC may use HW ECC, so that OOB offsets, that NAND core uses for bbt, 120 * OOB {11, 5}, works for both SP and LP chips, with ECCM = 1 and ECCM = 0. 151 static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob) in set_addr() argument 170 (oob ? FPAR_LP_MS : 0) | column); in set_addr() 180 (oob ? FPAR_SP_MS : 0) | column); in set_addr() 187 /* for OOB data point to the second half of the buffer */ in set_addr() 188 if (oob) in set_addr() 275 static void fsl_elbc_do_read(struct nand_chip *chip, int oob) in fsl_elbc_do_read() argument 298 if (oob) in fsl_elbc_do_read() [all …]
|
H A D | sm_common.c | 56 /* because the 256 byte devices have page dependent 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()
|
H A D | cadence-nand-controller.c | 517 * part of oob area of NAND flash memory page. 1449 /* Set oob data to 0xFF. */ in cadence_nand_write_page() 1460 u8 *oob; in cadence_nand_write_page() local 1463 oob = chip->oob_poi; in cadence_nand_write_page() 1465 oob = cdns_ctrl->buf + mtd->writesize; in cadence_nand_write_page() 1469 page, (void *)buf, oob, in cadence_nand_write_page() 1482 /* Transfer the data to the oob area. */ in cadence_nand_write_page() 1563 const u8 *oob = chip->oob_poi; in cadence_nand_write_page_raw() local 1568 /* BBM at the beginning of the OOB area. */ in cadence_nand_write_page_raw() 1569 memcpy(tmp_buf + writesize, oob, oob_skip); in cadence_nand_write_page_raw() [all …]
|
H A D | nand_bbt.c | 31 * The table is marked in the OOB area with an ident pattern and a version 33 * controller needs the complete OOB area for the ECC information then the 36 * and the OOB area will remain untouched. 140 * The length will be 0 if the marker is located in OOB area. 186 * In case the BBT marker is not in the OOB area it in read_bbt() 286 /* BBT marker is in the first page, no OOB */ 302 * scan_read_oob - [GENERIC] Scan data+OOB region to buffer 308 * Scan read data from data+OOB. May traverse multiple pages, interleaving 309 * page,OOB,page,OOB,... in buf. Completes transfer and returns the "strongest" 352 /* Scan write data with oob to flash */ [all …]
|
H A D | lpc32xx_slc.c | 382 * Read the OOB data from the device without ECC using FIFO method 392 * Write the OOB data to the device without ECC using FIFO method 403 * Fills in the ECC fields in the OOB buffer with the hardware generated ECC 597 * Read the data and OOB data from the device, use ECC correction with the 598 * data, disable ECC for the OOB data 612 /* Read data and oob, calculate ECC */ in lpc32xx_nand_read_page_syndrome() 615 /* Get OOB data */ in lpc32xx_nand_read_page_syndrome() 644 * Read the data and OOB data from the device, no ECC correction with the 645 * data or OOB data 664 * Write the data and OOB data to the device, use ECC with the data, [all …]
|
H A D | fsl_ifc_nand.c | 50 unsigned int oob; /* Non zero if operating on OOB data */ member 139 static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob) in set_addr() argument 150 ifc_out32((oob ? IFC_NAND_COL_MS : 0) | column, &ifc->ifc_nand.col0); in set_addr() 157 /* for OOB data point to the second half of the buffer */ in set_addr() 158 if (oob) in set_addr() 251 int oob, in fsl_ifc_do_read() argument 279 if (oob) in fsl_ifc_do_read() 319 /* READOOB reads only the OOB because no ECC is performed. */ in fsl_ifc_cmdfunc() 385 ifc_nand_ctrl->oob = 0; in fsl_ifc_cmdfunc() 436 /* OOB area --> READOOB */ in fsl_ifc_cmdfunc() [all …]
|
H A D | qcom_nandc.c | 550 * 1. Both DATA and OOB need to be checked for number of 0. The 551 * top-level API can be called with only data buf or OOB buf so use 552 * chip->data_buf if data buf is null and chip->oob_poi if oob buf 555 * 3. For each CW, check the number of 0 in cw_data and usable OOB bytes. 790 dev_err(nandc->dev, "failure to read page/oob\n"); in read_page_ecc() 798 * a helper that copies the last step/codeword of a page (containing free oob) 1012 * to oob for the first n - 1 codewords since these oob regions in qcom_nandc_write_page() 1015 * write to the free oob area. in qcom_nandc_write_page() 1115 * the NAND controller cannot write only data or only OOB within a codeword 1116 * since ECC is calculated for the combined codeword. So update the OOB from [all …]
|
/linux/include/uapi/mtd/ |
H A 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 (only lower 32 bits are used) 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 118 * @ooblen: length of OOB buffer (only lower 32 bits are used) 120 * @usr_oob: user-provided OOB buffer 125 * This structure supports ioctl(MEMREAD) operations, allowing data and/or OOB 126 * reads in various modes. To read from OOB-only, set @usr_data == NULL, and to [all …]
|
/linux/include/linux/mtd/ |
H A 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
|
H A D | mtd.h | 50 * struct mtd_oob_ops - oob operation operands 57 * @ooblen: number of oob bytes to write/read 58 * @oobretlen: number of oob bytes written/read 59 * @ooboffs: offset of oob data in the oob area (only relevant when 61 * @datbuf: data buffer - if NULL only oob data are read/written 62 * @oobbuf: oob data buffer 64 * Note, some MTD drivers do not allow you to write more than one OOB area at 83 * struct mtd_oob_region - oob region definition 87 * This structure describes a region of the OOB area, and is used 89 * Each section is defined by an offset within the OOB area and a [all …]
|
/linux/drivers/media/dvb-frontends/ |
H A D | mxl692_defs.h | 88 /* OOB */ 147 /* OOB */ 232 /* Enum of MPEG Data format, used in MPEG and OOB output configuration */ 241 /* Enum of MPEG Clock format, used in MPEG and OOB output configuration */ 286 /* Enum of Demodulator IQ setup, used in QAM, OOB configuration and status */ 293 /* Enum of OOB Demodulator symbol rates, used in OOB configuration */ 458 /* OOB Demodulator parameters struct, used in OOB params configuration */ 465 /* OOB Demodulator error counters */ 472 /* OOB status */
|
/linux/drivers/mtd/devices/ |
H A 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. 889 doc_dbg("doc_read_oob(from=%lld, mode=%d, data=(%p:%zu), oob=(%p:%zu))\n", in doc_read_oob() 930 doc_dbg("OOB - INFO: %*phC\n", 7, oobbuf); in doc_read_oob() 931 doc_dbg("OOB - HAMMING: %02x\n", oobbuf[7]); in doc_read_oob() 932 doc_dbg("OOB - BCH_ECC: %*phC\n", 7, oobbuf + 8); in doc_read_oob() [all …]
|
/linux/drivers/mtd/tests/ |
H A 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()
|
/linux/drivers/usb/serial/ |
H A D | digi_acceleport.c | 59 * "OOB": can be used on the out-of-band endpoint 61 #define DIGI_CMD_SET_BAUD_RATE 0 /* INB, OOB */ 62 #define DIGI_CMD_SET_WORD_SIZE 1 /* INB, OOB */ 63 #define DIGI_CMD_SET_PARITY 2 /* INB, OOB */ 64 #define DIGI_CMD_SET_STOP_BITS 3 /* INB, OOB */ 65 #define DIGI_CMD_SET_INPUT_FLOW_CONTROL 4 /* INB, OOB */ 66 #define DIGI_CMD_SET_OUTPUT_FLOW_CONTROL 5 /* INB, OOB */ 67 #define DIGI_CMD_SET_DTR_SIGNAL 6 /* INB, OOB */ 68 #define DIGI_CMD_SET_RTS_SIGNAL 7 /* INB, OOB */ 69 #define DIGI_CMD_READ_INPUT_SIGNALS 8 /* OOB */ [all …]
|
/linux/Documentation/devicetree/bindings/ata/ |
H A D | nvidia,tegra-ahci.yaml | 34 - const: sata-oob 44 - const: sata-oob 170 clock-names = "sata", "sata-oob"; 174 reset-names = "sata", "sata-cold", "sata-oob";
|
H A D | ceva,ahci-1v84.yaml | 43 OOB timing value for COMINIT parameter for port 0. 55 OOB timing value for COMWAKE parameter for port 0. 89 OOB timing value for COMINIT parameter for port 1. 101 OOB timing value for COMWAKE parameter for port 1.
|
/linux/Documentation/devicetree/bindings/mtd/ |
H A D | raw-nand-chip.yaml | 37 but can be explicitly set to "oob", if all ECC bytes are 38 known to be stored in the OOB area, or "interleaved" if ECC 41 enum: [ oob, interleaved ] 75 providing the best strength and taking the OOB area size
|
/linux/drivers/scsi/isci/ |
H A D | phy.c | 160 /* Hold OOB state machine in reset */ in sci_phy_link_layer_initialization() 538 /* Release the spinup hold state and reset the OOB state machine */ in sci_phy_consume_power_handler() 547 /* Now restart the OOB operation */ in sci_phy_consume_power_handler() 700 /* Start the oob/sn state machine over again */ in sci_phy_event_handler() 733 * continue OOB/SN as if this were a SATA PHY */ in sci_phy_event_handler() 747 /* Start the oob/sn state machine over again */ in sci_phy_event_handler() 763 * SATA PHY event continue OOB/SN as if this were a in sci_phy_event_handler() 772 /* Start the oob/sn state machine over again */ in sci_phy_event_handler() 779 /* Start the oob/sn state machine over again */ in sci_phy_event_handler() 817 /* There has been a change in the phy type before OOB/SN for the in sci_phy_event_handler() [all …]
|
/linux/Documentation/scsi/ |
H A D | libsas.rst | 11 phy/OOB/link management, the SAS layer is concerned with: 25 phy/OOB management, and vendor specific tasks and generates 40 start OOB (at which point your driver will start calling the 84 - you set this when OOB has finished and then notify 236 *but* before you enable the phys to do OOB:: 337 - OOB went fine and oob_mode is valid 340 - Error while doing OOB, the device probably
|