[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