Home
last modified time | relevance | path

Searched full:oob (Results 1 – 25 of 162) sorted by relevance

1234567

/linux/tools/testing/selftests/net/af_unix/
H A Dtest_unix_oob.c
H A Dmsg_oob.c384 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 Dsharpslpart.c35 /* 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 Dsm_ftl.c126 /* ----------------------- oob helpers -------------------------------------- */
147 static int sm_read_lba(struct sm_oob *oob)
156 if (!memcmp(oob, erased_pattern, SM_OOB_SIZE)) in sm_read_lba()
160 lba_test = *(uint16_t *)oob->lba_copy1 ^ *(uint16_t*)oob->lba_copy2; in sm_read_lba()
165 lba = sm_get_lba(oob->lba_copy1); in sm_read_lba()
168 lba = sm_get_lba(oob->lba_copy2); in sm_read_lba()
173 static void sm_write_lba(struct sm_oob *oob, uint16_t lba)
185 oob->lba_copy1[0] = oob in sm_write_lba()
148 sm_read_lba(struct sm_oob * oob) sm_read_lba() argument
174 sm_write_lba(struct sm_oob * oob,uint16_t lba) sm_write_lba() argument
217 sm_correct_sector(uint8_t * buffer,struct sm_oob * oob) sm_correct_sector() argument
239 sm_read_sector(struct sm_ftl * ftl,int zone,int block,int boffset,uint8_t * buffer,struct sm_oob * oob) sm_read_sector() argument
324 sm_write_sector(struct sm_ftl * ftl,int zone,int block,int boffset,uint8_t * buffer,struct sm_oob * oob) sm_write_sector() argument
374 struct sm_oob oob; sm_write_block() local
438 struct sm_oob oob; sm_mark_block_bad() local
504 struct sm_oob oob; sm_check_block() local
662 struct sm_oob oob; sm_read_cis() local
682 struct sm_oob oob; sm_find_cis() local
755 struct sm_oob oob; sm_init_zone() local
[all...]
H A Dinftlcore.c134 * 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 Dsm_common.h9 /* 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 Dfsl_elbc_nand.c61 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 Dcadence-nand-controller.c568 * part of oob area of NAND flash memory page. in cadence_nand_wait_for_value()
1500 /* Set oob data to 0xFF. */ in cadence_nand_write_oob()
1511 u8 *oob; in cadence_nand_write_page_raw()
1514 oob = chip->oob_poi; in cadence_nand_write_page_raw()
1516 oob = cdns_ctrl->buf + mtd->writesize; in cadence_nand_write_page_raw()
1520 page, (void *)buf, oob, in cadence_nand_write_page_raw()
1533 /* Transfer the data to the oob area. */ in cadence_nand_write_page_raw()
1614 const u8 *oob = chip->oob_poi; in cadence_nand_write_oob_raw()
1619 /* BBM at the beginning of the OOB area. */ in cadence_nand_read_page()
1620 memcpy(tmp_buf + writesize, oob, oob_ski in cadence_nand_read_page()
1460 u8 *oob; cadence_nand_write_page() local
1563 const u8 *oob = chip->oob_poi; cadence_nand_write_page_raw() local
1639 u8 *oob; cadence_nand_read_page() local
1764 u8 *oob = chip->oob_poi; cadence_nand_read_page_raw() local
[all...]
H A Dsm_common.c56 /* 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 Dnand_bbt.c31 * 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 Dlpc32xx_slc.c382 * 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 dat
[all...]
H A Dfsl_ifc_nand.c50 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 …]
/linux/include/uapi/mtd/
H A Dmtd-abi.h52 * @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 Dbbm.h24 * @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 Dmtd.h50 * 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 Dmxl692_defs.h88 /* 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 Ddocg3.c40 * - 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 Dreadtest.c63 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 Ddigi_acceleport.c59 * "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/translations/zh_CN/scsi/
H A Dlibsas.rst18 关的问题;SAS LLDD 及其序列控制器负责 PHY 层、OOB 信号以及链路
30 SAS LLDD 是一种 PCI 设备驱动程序。它负责 PHY 层和 OOB(带外)
42 以启动实际的 OOB(带外)过程;此时驱动将开始调用 notify_* 系
85 - 当 OOB(带外信号)完成后,设置此字段,然后通知 SAS 层。
221 函数的最后调用)但必须在使能 PHY 执行 OOB 之前调用::
320 - OOB 过程成功完成,oob_mode 有效。
323 - 执行 OOB 过程中出现错误,设备可能已断开。 [1]_
/linux/Documentation/devicetree/bindings/ata/
H A Dnvidia,tegra-ahci.yaml34 - const: sata-oob
44 - const: sata-oob
170 clock-names = "sata", "sata-oob";
174 reset-names = "sata", "sata-cold", "sata-oob";
/linux/Documentation/devicetree/bindings/mtd/
H A Draw-nand-chip.yaml37 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 Dphy.c160 /* 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 Dlibsas.rst11 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
/linux/drivers/mtd/nand/
H A Decc-realtek.c19 * It can run for arbitrary NAND flash chips with different block and OOB sizes. Currently there
23 * blocks and 64 bytes oob.
26 * Realtek naming conventions for the different structures in the OOB area.
28 * - BBI : Bad block indicator. The first two bytes of OOB. Protected by ECC!
169 * and 6 free bytes. In case the NAND area has been erased and all data and oob is in rtl_ecc_wait_for_engine()
315 dev_err(dev, "only flash geometry data=%d, oob=%d supported\n", in rtl_ecc_check_support()
324 dev_err(dev, "only algo=bch, strength=%d, placement=oob, step=%d supported\n", in rtl_ecc_check_support()

1234567