[PATCH] mtd: nand: disable subpage reads

Hattink, Tjalling [FINT] T.Hattink at fugro.nl
Mon Mar 3 03:15:36 EST 2014


> -----Original Message-----
> From: Sascha Hauer [mailto:s.hauer at pengutronix.de]
> Sent: Monday, March 03, 2014 08:50
> To: barebox at lists.infradead.org
> Cc: Sascha Hauer; Hattink, Tjalling [FINT]
> Subject: [PATCH] mtd: nand: disable subpage reads
> 
> The default nand_read_subpage implementation returns -ENOSUPP, so we
> have to make sure that barebox never uses this implementation. By
> setting the NAND_SUBPAGE_READ flag to 0x0 we ensure
> NAND_HAS_SUBPAGE_READ() never returns true and also give the compiler
a
> chance to optimize away some unused code.
> 
> subpage reads are a rather exotic feature even in Linux. It is only
> used on largepage NANDs with soft ecc. Even if we have this case it
> needs non page aligned reads to actually profit from this feature.
> 
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> Cc: Hattink, Tjalling [FINT] <T.Hattink at fugro.nl>
> ---
> 
> Hi Tjalling,
> I had a closer look at the subpage read stuff and saw that this is
> really an exotic feature that even if we could support it doesn't help
> very much. So I decided to go back to a variant of your first
> patch: Fix subpage reads by disabling them completely.
> 
> 
>  include/linux/mtd/nand.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index
> 74ea0b4..3c7509f 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -162,7 +162,8 @@ typedef enum {
>  #define NAND_ROM		0x00000800
> 
>  /* Device supports subpage reads */
> -#define NAND_SUBPAGE_READ	0x00001000
> +/* Disabled in barebox for smaller binary sizes */
> +#define NAND_SUBPAGE_READ	(__BAREBOX__ ? 0x0 : 0x00001000)
> 
>  /* Options valid for Samsung large page devices */  #define
> NAND_SAMSUNG_LP_OPTIONS NAND_CACHEPRG
> --
> 1.8.5.3

Hi Sascha,

I don't think it matters much either when subpage read is disabled.
Barebox will not do heavy read operations on the nand so the subpage
support will not do much.

Thanks for resolving this bug,

Tjalling



More information about the barebox mailing list