[PATCH] mtd: spi-nor: macronix: Add post bfpt fixup for mx25u51245g

Tudor.Ambarus at microchip.com Tudor.Ambarus at microchip.com
Wed Dec 2 06:14:31 EST 2020


On 12/2/20 5:59 AM, Yicong Yang wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> The 64MB MX66U51235F's BFPT_WORD(1) declares
> BFPT_DWORD1_ADDRESS_BYTES_3_OR_4 and it doesn't provide
> a 4BAIT table, so the address width will be set to
> 3-byte by default after parsing BFPT, which will make
> the upper memory region unusable.
> 
> As the MX66U51235F shares the same JEDEC ID with
> MX25U51245G and is identified to MX25U51245G, add a
> post bfpt fix hook to correct the address width in
> MX25U51245G's entry will solve this issue. It won't
> affect MX25U51245G which also use 4-byte address
> width and the address width will be valided when
> parsing its 4BAIT table.
> 

isn't this fixed by the following commit?

324f78dfb442 ("mtd: spi-nor: Fix address width on flash chips > 16MB")


> Signed-off-by: Yicong Yang <yangyicong at hisilicon.com>
> ---
>  drivers/mtd/spi-nor/macronix.c | 33 ++++++++++++++++++++++++++++++++-
>  1 file changed, 32 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/spi-nor/macronix.c b/drivers/mtd/spi-nor/macronix.c
> index 9203aba..2b9065c 100644
> --- a/drivers/mtd/spi-nor/macronix.c
> +++ b/drivers/mtd/spi-nor/macronix.c
> @@ -33,6 +33,36 @@ static struct spi_nor_fixups mx25l25635_fixups = {
>         .post_bfpt = mx25l25635_post_bfpt_fixups,
>  };
> 
> +static int
> +mx66u51235f_post_bfpt_fixups(struct spi_nor *nor,
> +                           const struct sfdp_parameter_header *bfpt_header,
> +                           const struct sfdp_bfpt *bfpt,
> +                           struct spi_nor_flash_parameter *params)
> +{
> +       /*
> +        * The 64MB MX66U51235F's BFPT_WORD(1) declares
> +        * BFPT_DWORD1_ADDRESS_BYTES_3_OR_4 and it doesn't provide
> +        * a 4BAIT table, so the address width will be set to
> +        * 3-byte by default after parsing BFPT,  which will make
> +        * the upper memory region unusable.
> +        *
> +        * As the MX66U51235F shares the same JEDEC ID with
> +        * MX25U51245G and is identified to MX25U51245G, add a
> +        * post bfpt fix hook to correct the address width in
> +        * MX25U51245G's entry will solve this issue. It won't
> +        * affect MX25U51245G which also use 4-byte address
> +        * width and the address width will be valided when
> +        * parsing its 4BAIT table.
> +        */
> +       nor->addr_width = 4;
> +
> +       return 0;
> +}
> +
> +static struct spi_nor_fixups mx66u51235f_fixups = {
> +       .post_bfpt = mx66u51235f_post_bfpt_fixups,
> +};
> +
>  static const struct flash_info macronix_parts[] = {
>         /* Macronix */
>         { "mx25l512e",   INFO(0xc22010, 0, 64 * 1024,   1, SECT_4K) },
> @@ -68,7 +98,8 @@ static const struct flash_info macronix_parts[] = {
>                               SECT_4K | SPI_NOR_4B_OPCODES) },
>         { "mx25u51245g", INFO(0xc2253a, 0, 64 * 1024, 1024,
>                               SECT_4K | SPI_NOR_DUAL_READ |
> -                             SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> +                             SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES)
> +               .fixups = &mx66u51235f_fixups },
>         { "mx25v8035f",  INFO(0xc22314, 0, 64 * 1024,  16,
>                               SECT_4K | SPI_NOR_DUAL_READ |
>                               SPI_NOR_QUAD_READ) },
> --
> 2.8.1
> 



More information about the linux-mtd mailing list