Dear Michael, I can confirm that your patch works perfectly with my device. Thanks a lot. BR, Marcin Gołaś
pt., 21 paź 2022 o 08:15 Michael Nazzareno Trimarchi < [email protected]> napisał(a): > Hi Marcin > > On Thu, Oct 20, 2022 at 6:32 PM Michael Nazzareno Trimarchi > <[email protected]> wrote: > > > > Hi Marcin > > > > On Thu, Oct 20, 2022 at 6:13 PM Michael Nazzareno Trimarchi > > <[email protected]> wrote: > > > > > > Hi > > > > > > On Thu, Oct 20, 2022 at 5:58 PM Marcin Gołaś <[email protected]> > wrote: > > > > > > > > Hi, > > > > > > > > after uboot update from 2022.07 to 2022.10 SAMSUNG NAND is not > recognized > > > > correctly. > > > > I use device with SAMSUNG K9K8G08U0F flash which does not support > ONFI and > > > > JEDEC. > > > > Both uboot versions read 8-byte id_data in the same way: > 0xD3ECC65A9551D3EC. > > > > However 2022.07 recognized flash correctly as: > > > > nand_base: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB > size: > > > > 64 > > > > 1024 MiB > > > > The new 2022.10 recognized flash incorrectly: > > > > nand_base: 1024 MiB, SLC, erase size: 4096 KiB, page size: 4096, OOB > size: > > > > 128 > > > > 1024 MiB > > > > > > > > This behavior is caused by not setting chip->bits_per_cell value > which is > > > > in my case equal to zero. > > > > To fix the issue we need to set it before we enter to function > > > > nand_manufacturer_detect. > > > > Following patch do this: > > > > > > > > diff --git a/drivers/mtd/nand/raw/nand_base.c > > > > b/drivers/mtd/nand/raw/nand_base.c > > > > index 4b09a11288..143d3cb755 100644 > > > > --- a/drivers/mtd/nand/raw/nand_base.c > > > > +++ b/drivers/mtd/nand/raw/nand_base.c > > > > @@ -4375,6 +4375,8 @@ struct nand_flash_dev > *nand_get_flash_type(struct > > > > nand_chip *chip, int *maf_id, > > > > > > > > chip->chipsize = (uint64_t)type->chipsize << 20; > > > > > > > > + chip->bits_per_cell = > nand_get_bits_per_cell(chip->id.data[2]); > > > > + > > > > if (!type->pagesize) { > > > > nand_manufacturer_detect(chip); > > > > } else { > > > > > > > > > > Can you please send a patch for it? I will check this regression > > > > --- a/drivers/mtd/nand/raw/nand_base.c > > +++ b/drivers/mtd/nand/raw/nand_base.c > > @@ -4171,10 +4171,13 @@ static void nand_manufacturer_detect(struct > > nand_chip *chip) > > * nand_decode_ext_id() otherwise. > > */ > > if (chip->manufacturer.desc && chip->manufacturer.desc->ops && > > - chip->manufacturer.desc->ops->detect) > > + chip->manufacturer.desc->ops->detect) { > > + /* The 3rd id byte holds MLC / multichip data */ > > + chip->bits_per_cell = > nand_get_bits_per_cell(chip->id.data[2]); > > chip->manufacturer.desc->ops->detect(chip); > > - else > > + } else { > > nand_decode_ext_id(chip); > > + } > > } > > > > Can you test this one? > > > > I have now sent a proper patch after checking linux mainline. The > patch is already applied on the tree and > will sent to Tom > > Michael > > > Michael > > > > > > Michael > > > > > > > > > > > BR, > > > > Marcin > > > > > > > > > > > > -- > > > Michael Nazzareno Trimarchi > > > Co-Founder & Chief Executive Officer > > > M. +39 347 913 2170 > > > [email protected] > > > __________________________________ > > > > > > Amarula Solutions BV > > > Joop Geesinkweg 125, 1114 AB, Amsterdam, NL > > > T. +31 (0)85 111 9172 > > > [email protected] > > > www.amarulasolutions.com > > > > > > > > -- > > Michael Nazzareno Trimarchi > > Co-Founder & Chief Executive Officer > > M. +39 347 913 2170 > > [email protected] > > __________________________________ > > > > Amarula Solutions BV > > Joop Geesinkweg 125, 1114 AB, Amsterdam, NL > > T. +31 (0)85 111 9172 > > [email protected] > > www.amarulasolutions.com > > > > -- > Michael Nazzareno Trimarchi > Co-Founder & Chief Executive Officer > M. +39 347 913 2170 > [email protected] > __________________________________ > > Amarula Solutions BV > Joop Geesinkweg 125, 1114 AB, Amsterdam, NL > T. +31 (0)85 111 9172 > [email protected] > www.amarulasolutions.com >

