Hi Chris, On Mon, 18 Jun 2018 16:52:54 +1200, Chris Packham <chris.pack...@alliedtelesis.co.nz> wrote:
> Some Micron NAND chips (MT29F1G08ABAFAWP-ITE:F) report 00 00 for the > revision number field of the ONFI parameter page. Rather than rejecting > these outright assume ONFI version 1.0 if the revision number is 00 00. > Thanks for getting your hands into this. > Signed-off-by: Chris Packham <chris.pack...@alliedtelesis.co.nz> > --- > At the moment I haven't qualified this check on anything, I should > probably at least include vendor == MICRON. The more I think about it the more I convince myself that this is not needed. If the 4 first bytes are "ONFI", then the chip is ONFI... Then what you do below is simple and readable and (sadly) probably right. > > As far as I can tell revision number == 0 is not permitted by the ONFI > spec but this wouldn't be the first time a vendor has ignored a spec. On > the other hand maybe I'm reading the spec wrong and someone here will > say "oh 0 means ...". > > drivers/mtd/nand/raw/nand_base.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/mtd/nand/raw/nand_base.c > b/drivers/mtd/nand/raw/nand_base.c > index 0cd3e216b95c..1691c7005ae4 100644 > --- a/drivers/mtd/nand/raw/nand_base.c > +++ b/drivers/mtd/nand/raw/nand_base.c > @@ -5184,6 +5184,8 @@ static int nand_flash_detect_onfi(struct nand_chip > *chip) > chip->parameters.onfi.version = 20; > else if (val & (1 << 1)) > chip->parameters.onfi.version = 10; > + else if (val == 0) > + chip->parameters.onfi.version = 10; > > if (!chip->parameters.onfi.version) { > pr_info("unsupported ONFI version: %d\n", val); Regards, Miquèl