Lines Matching refs:mtd
22 static struct mtd_info *mtd; variable
45 *size = mtd->size - *off; in arg_off_size_onenand()
48 if ((*off + *size) > mtd->size) { in arg_off_size_onenand()
49 printf("total chip size (0x%llx) exceeded!\n", mtd->size); in arg_off_size_onenand()
53 if (*size == mtd->size) in arg_off_size_onenand()
64 struct onenand_chip *this = mtd->priv; in onenand_block_read()
79 ret = mtd_block_isbad(mtd, ofs); in onenand_block_read()
93 ret = mtd_read_oob(mtd, ofs, &ops); in onenand_block_read()
112 .len = mtd->writesize, in onenand_write_oneblock_withoob()
113 .ooblen = mtd->oobsize, in onenand_write_oneblock_withoob()
117 for (page = 0; page < (mtd->erasesize / mtd->writesize); page ++) { in onenand_write_oneblock_withoob()
119 buf += mtd->writesize; in onenand_write_oneblock_withoob()
121 buf += mtd->oobsize; in onenand_write_oneblock_withoob()
122 ret = mtd_write_oob(mtd, to, &ops); in onenand_write_oneblock_withoob()
125 to += mtd->writesize; in onenand_write_oneblock_withoob()
128 *retlen = (ret) ? 0 : mtd->erasesize; in onenand_write_oneblock_withoob()
135 struct onenand_chip *this = mtd->priv; in onenand_block_write()
142 if ((to & (mtd->writesize - 1)) != 0) { in onenand_block_write()
158 ret = mtd_block_isbad(mtd, ofs); in onenand_block_write()
167 ret = mtd_write(mtd, ofs, blocksize, &_retlen, buf); in onenand_block_write()
188 struct onenand_chip *this = mtd->priv; in onenand_block_erase()
197 ret = mtd_block_isbad(mtd, ofs); in onenand_block_erase()
207 instr.mtd = mtd; in onenand_block_erase()
208 ret = mtd_erase(mtd, &instr); in onenand_block_erase()
221 struct onenand_chip *this = mtd->priv; in onenand_block_test()
255 if (end_block > (mtd->size >> this->erase_shift)) in onenand_block_test()
256 end_block = mtd->size >> this->erase_shift; in onenand_block_test()
263 ret = mtd_block_isbad(mtd, ofs); in onenand_block_test()
272 ret = mtd_erase(mtd, &instr); in onenand_block_test()
278 ret = mtd_write(mtd, ofs, blocksize, &retlen, buf); in onenand_block_test()
284 ret = mtd_read(mtd, ofs, blocksize, &retlen, verify_buf); in onenand_block_test()
305 static int onenand_dump(struct mtd_info *mtd, ulong off, int only_oob) in onenand_dump() argument
312 datbuf = malloc(mtd->writesize + mtd->oobsize); in onenand_dump()
313 oobbuf = malloc(mtd->oobsize); in onenand_dump()
318 off &= ~(mtd->writesize - 1); in onenand_dump()
323 ops.len = mtd->writesize; in onenand_dump()
324 ops.ooblen = mtd->oobsize; in onenand_dump()
326 i = mtd_read_oob(mtd, addr, &ops); in onenand_dump()
334 i = mtd->writesize >> 4; in onenand_dump()
347 i = mtd->oobsize >> 3; in onenand_dump()
364 printf("%s\n", mtd->name); in do_onenand_info()
373 mtd = &onenand_mtd; in do_onenand_bad()
376 for (ofs = 0; ofs < mtd->size; ofs += mtd->erasesize) { in do_onenand_bad()
377 if (mtd_block_isbad(mtd, ofs)) in do_onenand_bad()
518 ret = onenand_dump(mtd, ofs, 1); in do_onenand_dump()
520 ret = onenand_dump(mtd, ofs, 0); in do_onenand_dump()
540 if (mtd_block_markbad(mtd, addr)) { in do_onenand_markbad()
582 mtd = &onenand_mtd; in do_onenand()