[PATCH v2 3/5] cmd: mtd: Add total length of read operation
Miquel Raynal
miquel.raynal at bootlin.com
Mon Nov 7 15:51:46 CET 2022
Hi Leo,
liangyanyu13 at gmail.com wrote on Wed, 2 Nov 2022 14:14:30 +0800:
> 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;
Where is this used?
>
> /* 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
>
Thanks,
Miquèl
More information about the U-Boot
mailing list