lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 30 Nov 2022 10:34:15 -0500
From:   Nathan Barrett-Morrison <nathan.morrison@...esys.com>
To:     Michael Walle <michael@...le.cc>
Cc:     greg.malysa@...esys.com,
        Tudor Ambarus <tudor.ambarus@...rochip.com>,
        Pratyush Yadav <pratyush@...nel.org>,
        Miquel Raynal <miquel.raynal@...tlin.com>,
        Richard Weinberger <richard@....at>,
        Vignesh Raghavendra <vigneshr@...com>,
        linux-mtd@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mtd: spi-nor: issi: Add in support for IS25LX256 chip,
 operating in 1S-1S-8S mode.

Hi Michael,

> Does this flash have SFDP data? If possible, this should be
> derived from that. Could you dump the SFDP table and
> post it here [1].

# hexdump sfdp
0000000 4653 5044 0106 ff01 0600 1001 0030 ff00
0000010 0084 0201 0080 ff00 ffff ffff ffff ffff
0000020 ffff ffff ffff ffff ffff ffff ffff ffff
0000030 20e5 ff8a ffff 0fff 0000 0000 0000 0000
0000040 fffe ffff ffff ff00 ffff 0000 200c d811
0000050 520f ff00 2224 00a9 8e8b d103 01ac 3827
0000060 757a 757a bdfb 5cd5 0000 ff70 b081 2238
0000070 ffff ffff ffff ffff ffff ffff ffff ffff
0000080 0e43 ffff dc21 ff5c

Looking at the latest SFDP document from
https://www.jedec.org/standards-documents/docs/jesd216b, I see
1s-1s-8s would be in BFPT DWORD 17, which appears to be 0xffffffff if
I'm reading this hexdump correctly.

> why?

This was because ISSI's default_init was setting a quad_enable
function pointer which is not relevant to this part.  This probably
doesn't need to be done though, as SPI_NOR_QUAD_* isn't being set in
the flash_info table and therefore quad_enable will never be used?

Sincerely,
Nathan


On Wed, Nov 30, 2022 at 3:45 AM Michael Walle <michael@...le.cc> wrote:
>
> Am 2022-11-28 18:24, schrieb Nathan Barrett-Morrison:
> > Adds the is25lx256 entry to the nor_parts table along with the
> > additional
> > fixup logic to operate in 1S-1S-8S mode while programming.
> >
> > Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@...esys.com>
> > ---
> >  drivers/mtd/spi-nor/issi.c | 19 +++++++++++++++++++
> >  1 file changed, 19 insertions(+)
> >
> > diff --git a/drivers/mtd/spi-nor/issi.c b/drivers/mtd/spi-nor/issi.c
> > index 89a66a19d754..e9b32b726bf3 100644
> > --- a/drivers/mtd/spi-nor/issi.c
> > +++ b/drivers/mtd/spi-nor/issi.c
> > @@ -29,6 +29,21 @@ static const struct spi_nor_fixups is25lp256_fixups
> > = {
> >       .post_bfpt = is25lp256_post_bfpt_fixups,
> >  };
> >
> > +static void is25lx256_post_sfdp_fixup(struct spi_nor *nor)
> > +{
> > +     /* Fixup page program command to 1S-1S-8S */
> > +     nor->params->hwcaps.mask |= SNOR_HWCAPS_PP_1_1_8;
> > +     spi_nor_set_pp_settings(&nor->params->page_programs[SNOR_CMD_PP_1_1_8],
> > +                             SPINOR_OP_PP_1_1_8, SNOR_PROTO_1_1_8);
>
> Does this flash have SFDP data? If possible, this should be
> derived from that. Could you dump the SFDP table and
> post it here [1].
>
> > +
> > +     /* Disable quad_enable */
> > +     nor->params->quad_enable = NULL;
>
> why?
>
> > +}
> > +
> > +static struct spi_nor_fixups is25lx256_fixups = {
> > +     .post_sfdp = is25lx256_post_sfdp_fixup,
> > +};
> > +
> >  static void pm25lv_nor_late_init(struct spi_nor *nor)
> >  {
> >       struct spi_nor_erase_map *map = &nor->params->erase_map;
> > @@ -74,6 +89,10 @@ static const struct flash_info issi_nor_parts[] = {
> >               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
> >               FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
> >               .fixups = &is25lp256_fixups },
> > +     { "is25lx256",  INFO(0x9d5a19, 0, 128 * 1024, 256)
> > +             NO_SFDP_FLAGS(SECT_4K | SPI_NOR_OCTAL_READ)
> > +             FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
> > +             .fixups = &is25lx256_fixups },
> >
> >       /* PMC */
> >       { "pm25lv512",   INFO(0,        0, 32 * 1024,    2)
>
> -michael
>
> [1]
> https://lore.kernel.org/linux-mtd/4304e19f3399a0a6e856119d01ccabe0@walle.cc/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ