[PATCH v2 3/5] cmd: mtd: Add total length of read operation
Leo Yu
liangyanyu13 at gmail.com
Wed Nov 2 07:14:30 CET 2022
This patch bypasses the limitation of length for read operations
in MTD test module. Thus, the total length of a read operation
can be passed down to the continuous read operation in SPI NAND
layer.
Signed-off-by: Leo Yu <liangyanyu13 at gmail.com>
---
cmd/mtd.c | 2 ++
include/linux/mtd/mtd.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/cmd/mtd.c b/cmd/mtd.c
index ad5cc9827d..0b601e08a3 100644
--- a/cmd/mtd.c
+++ b/cmd/mtd.c
@@ -335,6 +335,8 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int argc,
io_op.ooblen = woob ? mtd->oobsize : 0;
io_op.datbuf = buf;
io_op.oobbuf = woob ? &buf[len] : NULL;
+ /* Total length of this read operation passed by user */
+ io_op.totallen = len;
/* Search for the first good block after the given offset */
off = start_off;
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index ff635bd716..df8a231c82 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -79,6 +79,7 @@ struct mtd_erase_region_info {
* mode = MTD_OPS_PLACE_OOB or MTD_OPS_RAW)
* @datbuf: data buffer - if NULL only oob data are read/written
* @oobbuf: oob data buffer
+ * @totallen: total number of data bytes to read in one read operation (for continuous read mode)
*/
struct mtd_oob_ops {
unsigned int mode;
@@ -89,6 +90,7 @@ struct mtd_oob_ops {
uint32_t ooboffs;
uint8_t *datbuf;
uint8_t *oobbuf;
+ size_t totallen;
};
#ifdef CONFIG_SYS_NAND_MAX_OOBFREE
--
2.17.1
More information about the U-Boot
mailing list