/openbmc/u-boot/fs/yaffs2/ |
H A D | yaffs_mtdif.c | 28 static inline void translate_spare2oob(const struct yaffs_spare *spare, u8 *oob) in translate_spare2oob() argument 30 oob[0] = spare->tb0; in translate_spare2oob() 31 oob[1] = spare->tb1; in translate_spare2oob() 32 oob[2] = spare->tb2; in translate_spare2oob() 33 oob[3] = spare->tb3; in translate_spare2oob() 34 oob[4] = spare->tb4; in translate_spare2oob() 35 oob[5] = spare->tb5 & 0x3f; in translate_spare2oob() 36 oob[5] |= spare->block_status == 'Y' ? 0 : 0x80; in translate_spare2oob() 37 oob[5] |= spare->page_status == 0 ? 0 : 0x40; in translate_spare2oob() 38 oob[6] = spare->tb6; in translate_spare2oob() [all …]
|
/openbmc/linux/tools/testing/selftests/net/af_unix/ |
H A D | test_unix_oob.c | 134 /* Test 1: Test for SIGURG and OOB */ in producer() 142 /* Test 2: Test for OOB being overwitten */ in producer() 167 /* Test 4: Test for 1byte OOB msg */ in producer() 182 char oob; in main() local 222 * read, oob is '@', and POLLPRI works. in main() 225 read_oob(pfd, &oob); in main() 227 if (!signal_recvd || len != 63 || oob != '@') { in main() 229 signal_recvd, len, oob); in main() 237 * Verify that the first OOB is over written by in main() 238 * the 2nd one and the first OOB is returned as in main() [all …]
|
/openbmc/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 …]
|
/openbmc/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 | nand_base.c | 379 * nand_fill_oob - [INTERN] Transfer client buffer to oob 381 * @oob: oob data buffer 382 * @len: oob data write length 383 * @ops: oob ops structure 385 static uint8_t *nand_fill_oob(struct nand_chip *chip, uint8_t *oob, size_t len, in nand_fill_oob() argument 392 * Initialise to all 0xFF, to avoid the possibility of left over OOB in nand_fill_oob() 393 * data from a previous OOB read. in nand_fill_oob() 401 memcpy(chip->oob_poi + ops->ooboffs, oob, len); in nand_fill_oob() 402 return oob + len; in nand_fill_oob() 405 ret = mtd_ooblayout_set_databytes(mtd, oob, chip->oob_poi, in nand_fill_oob() [all …]
|
/openbmc/u-boot/drivers/mtd/nand/raw/ |
H A D | lpc32xx_nand_mlc.c | 92 * OOB data in each small page are 6 'free' then 10 ECC bytes. 94 * 'free' OOB bytes are grouped in the first 24 bytes of the OOB buffer, 97 * The struct below represents how free vs ecc oob bytes are stored 100 * Note: the OOB bytes contain the bad block marker at offsets 0 and 1. 196 * To make U-Boot's life easier, we pack 'useable' OOB at the 221 * @oob_required: caller requires OOB data read to chip->oob_poi 238 struct lpc32xx_oob *oob = (struct lpc32xx_oob *)chip->oob_poi; in lpc32xx_read_page_hwecc() local 262 /* copy next 6 bytes at front of OOB buffer */ in lpc32xx_read_page_hwecc() 263 memcpy(&oob->free[i], lpc32xx_nand_mlc_registers->buff, 6); in lpc32xx_read_page_hwecc() 264 /* copy last 10 bytes (R/S ECC) at back of OOB buffer */ in lpc32xx_read_page_hwecc() [all …]
|
H A D | mxc_nand.c | 48 /* OOB placement block for use with hardware ecc generation */ 394 pr_debug("%s: Reading OOB area of page %u to oob %p\n", 445 uint8_t *oob = chip->oob_poi; local 459 chip->read_buf(mtd, oob, chip->ecc.prepad); 460 oob += chip->ecc.prepad; 463 chip->read_buf(mtd, oob, eccbytes); 464 oob += eccbytes; 467 chip->read_buf(mtd, oob, chip->ecc.postpad); 468 oob += chip->ecc.postpad; 472 size = mtd->oobsize - (oob - chip->oob_poi); [all …]
|
H A D | nand_base.c | 49 /* Define default oob placement schemes for large and small page devices */ 435 * specify how to write bad block markers to OOB (chip->block_markbad). 438 * (1) erase the affected block, to allow OOB marker to be written cleanly 439 * (2) write bad block marker to OOB area of affected block (unless flag 453 /* Attempt erase before marking OOB */ in nand_block_markbad_lowlevel() 460 /* Write bad block marker to OOB */ in nand_block_markbad_lowlevel() 609 /* OOB area */ in nand_command() 1140 * @extraoob: extra OOB buffer 1141 * @extraooblen: extra OOB length 1144 * Check if a data buffer and its associated ECC and OOB data contains only [all …]
|
/openbmc/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 | 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 …]
|
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 …]
|
/openbmc/qemu/tests/qapi-schema/ |
H A D | qapi-schema-test.out | 35 gen=True success_response=True boxed=False oob=False preconfig=False 178 gen=True success_response=True boxed=False oob=False preconfig=False 182 gen=True success_response=True boxed=False oob=False preconfig=False 187 gen=True success_response=True boxed=False oob=False preconfig=False 189 gen=True success_response=False boxed=False oob=False preconfig=False 191 gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True 196 gen=True success_response=True boxed=False oob=False preconfig=False 200 gen=True success_response=True boxed=False oob=False preconfig=False 202 gen=True success_response=True boxed=True oob=False preconfig=False 204 gen=True success_response=True boxed=True oob=False preconfig=False [all …]
|
H A D | oob-coroutine.err | 1 oob-coroutine.json: In command 'oob-command-1': 2 oob-coroutine.json:2: flags 'allow-oob' and 'coroutine' are incompatible
|
H A D | oob-test.err | 1 oob-test.json: In command 'oob-command-1': 2 oob-test.json:2: flag 'allow-oob' may only use true value
|
H A D | oob-test.json | 1 # Check against oob illegal value 2 { 'command': 'oob-command-1', 'allow-oob': 'some-string' }
|
/openbmc/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 …]
|
/openbmc/u-boot/include/linux/mtd/ |
H A D | bbm.h | 29 * @offs: offset of the pattern in the oob area of the page 30 * @veroffs: offset of the bbt version counter in the oob are of the page 43 * that the pattern and the version count are always located in the oob area 78 * unavailable, for example, if the NAND controller has a different data and OOB 92 * Use a flash based bad block table. By default, OOB identifier is saved in 93 * OOB area. This option is passed to the default bad block table function. 97 * Do not store flash based bad block table marker in the OOB area; store it 102 * Do not write new bad block markers to OOB; useful, e.g., when ECC covers 118 * Constants for oob configuration 134 * @badblockpos: [INTERN] position of the bad block marker in the oob area
|
/openbmc/qemu/qapi/ |
H A D | qmp-dispatch.c | 58 || (!strcmp(arg_name, "exec-oob") && allow_oob)) { in qmp_dispatch_check_obj() 109 return qdict_haskey(dict, "exec-oob") in qmp_is_oob() 134 * Runs outside of coroutine context for OOB commands, but in coroutine 141 bool oob; in qmp_dispatch() local 164 oob = false; in qmp_dispatch() 167 command = qdict_get_str(dict, "exec-oob"); in qmp_dispatch() 168 oob = true; in qmp_dispatch() 189 if (oob && !(cmd->options & QCO_ALLOW_OOB)) { in qmp_dispatch() 190 error_setg(&err, "The command %s does not support OOB", in qmp_dispatch() 206 assert(!(oob && qemu_in_coroutine())); in qmp_dispatch() [all …]
|
/openbmc/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
|
/openbmc/u-boot/doc/ |
H A D | README.mediatek | 111 nandinfo: Desired NAND device type, a combination of page size, oob size and 113 2k+64 : for Serial NAND, 2KiB page size + 64B oob size 114 2k+120 : for Serial NAND, 2KiB page size + 120B oob size 115 2k+128 : for Serial NAND, 2KiB page size + 128B oob size 116 4k+256 : for Serial NAND, 4KiB page size + 256B oob size 117 1g:2k+64 : for Parallel NAND, 2KiB page size + 64B oob size, total 1Gbit size 118 2g:2k+64 : for Parallel NAND, 2KiB page size + 64B oob size, total 2Gbit size 119 4g:2k+64 : for Parallel NAND, 2KiB page size + 64B oob size, total 4Gbit size 120 2g:2k+128: for Parallel NAND, 2KiB page size + 128B oob size, total 2Gbit size 121 4g:2k+128: for Parallel NAND, 2KiB page size + 128B oob size, total 4Gbit size
|
/openbmc/u-boot/include/mtd/ |
H A D | mtd-abi.h | 42 * @MTD_OPS_PLACE_OOB: OOB data are placed at the given offset (default) 43 * @MTD_OPS_AUTO_OOB: OOB data are automatically placed at the free areas 63 * @ooblen: length of OOB buffer 65 * @usr_oob: user-provided OOB buffer 69 * This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB 70 * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to 122 __u32 oobsize; /* Amount of OOB data per block (e.g. 16) */ 162 /* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */ 184 /* Write data to OOB (64-bit version) */ 186 /* Read data from OOB (64-bit version) */ [all …]
|
/openbmc/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 */
|
/openbmc/qemu/tests/qtest/ |
H A D | qmp-test.c | 207 qtest_qmp_send(s, "{ 'exec-oob': 'migrate-pause', 'id': %s }", id); in send_oob_cmd_that_fails() 238 g_assert_cmpstr(qstring_get_str(qstr), ==, "oob"); in test_qmp_oob() 248 /* Now, enable OOB in current QMP session, it should succeed. */ in test_qmp_oob() 251 " 'arguments': { 'enable': [ 'oob' ] } }"); in test_qmp_oob() 256 * Try any command that does not support OOB but with OOB flag. We in test_qmp_oob() 259 resp = qtest_qmp(qts, "{ 'exec-oob': 'query-cpus-fast' }"); in test_qmp_oob() 263 /* OOB command overtakes slow in-band command */ in test_qmp_oob() 267 send_oob_cmd_that_fails(qts, "oob-1"); in test_qmp_oob() 268 recv_cmd_id(qts, "oob-1"); in test_qmp_oob() 347 qtest_add_func("qmp/oob", test_qmp_oob); in main()
|
/openbmc/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()
|
/openbmc/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 …]
|