From: Boris Brezillon <boris.brezillon@bootlin.com>
To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
Cc: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
Tudor Ambarus <tudor.ambarus@microchip.com>,
"marek.vasut@gmail.com" <marek.vasut@gmail.com>,
"dwmw2@infradead.org" <dwmw2@infradead.org>,
"computersforpeace@gmail.com" <computersforpeace@gmail.com>,
"richard@nod.at" <richard@nod.at>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"nicolas.ferre@microchip.com" <nicolas.ferre@microchip.com>,
"cyrille.pitchen@microchip.com" <cyrille.pitchen@microchip.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Cristian.Birsan@microchip.com" <Cristian.Birsan@microchip.com>
Subject: Re: [PATCH v3 1/2] mtd: spi-nor: add support to non-uniform SFDP SPI NOR flash memories
Date: Wed, 17 Oct 2018 09:07:24 +0200 [thread overview]
Message-ID: <20181017090724.12f2cd79@bbrezillon> (raw)
In-Reply-To: <VI1PR04MB1038AB25EABDC8507984ADC799FF0@VI1PR04MB1038.eurprd04.prod.outlook.com>
On Wed, 17 Oct 2018 02:07:43 +0000
Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com> wrote:
> >
> Actually there is no entry of s25fs512s in current spi-nor.c file.
> For my connected flash part, jedec ID read points to s25fl512s. I
> have asked my board team to confirm the name of exact connected flash
> part. When I check the data sheet of s25fs512s, it also points to the
> same Jedec ID information. { "s25fl512s", INFO(0x010220, 0x4d00, 256
> * 1024, 256, ....}
>
> But as stated earlier, if I skip reading SFDP or read using 1-1-1
> protocol then read are always correct. For 1-4-4 protocol read are
> wrong and on further debugging found that Read code of 0x6C is being
> send as opcode instead of 0xEC.
>
> If I revert this patch, reads are working fine.
Can you try with the following patch?
Also, can you add a trace to check whether you're reaching this point
[1] or not.
[1]https://elixir.bootlin.com/linux/v4.19-rc8/source/drivers/mtd/spi-nor/spi-nor.c#L2227
--->8---
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 9407ca5f9443..49278c1491a6 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2643,6 +2643,8 @@ static int spi_nor_parse_bfpt(struct spi_nor *nor,
break;
case BFPT_DWORD1_ADDRESS_BYTES_4_ONLY:
+ case BFPT_DWORD1_ADDRESS_BYTES_3_OR_4:
+ nor->flags |= SNOR_F_4B_OPCODES;
nor->addr_width = 4;
break;
@@ -3552,7 +3554,7 @@ static int spi_nor_init(struct spi_nor *nor)
if ((nor->addr_width == 4) &&
(JEDEC_MFR(nor->info) != SNOR_MFR_SPANSION) &&
- !(nor->info->flags & SPI_NOR_4B_OPCODES)) {
+ !(nor->flags & SNOR_F_4B_OPCODES)) {
/*
* If the RESET# pin isn't hooked up properly, or the system
* otherwise doesn't perform a reset command in the boot
@@ -3586,7 +3588,7 @@ void spi_nor_restore(struct spi_nor *nor)
/* restore the addressing mode */
if ((nor->addr_width == 4) &&
(JEDEC_MFR(nor->info) != SNOR_MFR_SPANSION) &&
- !(nor->info->flags & SPI_NOR_4B_OPCODES) &&
+ !(nor->flags & SNOR_F_4B_OPCODES) &&
(nor->flags & SNOR_F_BROKEN_RESET))
set_4byte(nor, nor->info, 0);
}
@@ -3724,6 +3726,9 @@ int spi_nor_scan(struct spi_nor *nor, const char *name,
if (info->flags & SPI_NOR_NO_FR)
params.hwcaps.mask &= ~SNOR_HWCAPS_READ_FAST;
+ if (info->flags & SPI_NOR_4B_OPCODES)
+ nor->flags |= SNOR_F_4B_OPCODES;
+
/*
* Configure the SPI memory:
* - select op codes for (Fast) Read, Page Program and Sector Erase.
@@ -3742,13 +3747,16 @@ int spi_nor_scan(struct spi_nor *nor, const char *name,
} else if (mtd->size > 0x1000000) {
/* enable 4-byte addressing if the device exceeds 16MiB */
nor->addr_width = 4;
- if (JEDEC_MFR(info) == SNOR_MFR_SPANSION ||
- info->flags & SPI_NOR_4B_OPCODES)
- spi_nor_set_4byte_opcodes(nor, info);
+ if (JEDEC_MFR(info) == SNOR_MFR_SPANSION)
+ nor->flags |= SNOR_F_4B_OPCODES;
} else {
nor->addr_width = 3;
}
+ if (info->addr_width == 4 &&
+ nor->flags & SNOR_F_4B_OPCODES)
+ spi_nor_set_4byte_opcodes(nor, info);
+
if (nor->addr_width > SPI_NOR_MAX_ADDR_WIDTH) {
dev_err(dev, "address width is too large: %u\n",
nor->addr_width);
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
index 7f0c7303575e..4ffb165f4f85 100644
--- a/include/linux/mtd/spi-nor.h
+++ b/include/linux/mtd/spi-nor.h
@@ -236,6 +236,7 @@ enum spi_nor_option_flags {
SNOR_F_READY_XSR_RDY = BIT(4),
SNOR_F_USE_CLSR = BIT(5),
SNOR_F_BROKEN_RESET = BIT(6),
+ SNOR_F_4B_OPCODES = BIT(7)
};
/**
next prev parent reply other threads:[~2018-10-17 7:07 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-11 15:40 [PATCH v3 0/2] add support to non-uniform SFDP SPI NOR flash memories Tudor Ambarus
2018-09-11 15:40 ` [PATCH v3 1/2] mtd: spi-nor: " Tudor Ambarus
2018-09-11 18:55 ` Marek Vasut
2018-09-17 17:03 ` Tudor Ambarus
2018-10-16 9:51 ` Yogesh Narayan Gaur
2018-10-16 12:04 ` Boris Brezillon
2018-10-16 12:17 ` Boris Brezillon
2018-10-17 1:54 ` Yogesh Narayan Gaur
2018-10-16 15:14 ` Tudor Ambarus
2018-10-16 16:34 ` Cyrille Pitchen
2018-10-17 2:07 ` Yogesh Narayan Gaur
2018-10-17 3:50 ` Yogesh Narayan Gaur
2018-10-17 7:07 ` Boris Brezillon [this message]
2018-10-17 7:10 ` Boris Brezillon
2018-10-17 7:17 ` Boris Brezillon
2018-10-17 7:29 ` Boris Brezillon
2018-10-17 7:46 ` Yogesh Narayan Gaur
2018-10-17 8:00 ` Tudor Ambarus
2018-10-17 8:20 ` Yogesh Narayan Gaur
2018-10-17 8:48 ` Boris Brezillon
2018-10-17 9:52 ` Boris Brezillon
2018-10-22 6:04 ` Yogesh Narayan Gaur
2018-10-22 7:34 ` Boris Brezillon
2018-10-22 8:01 ` Boris Brezillon
2018-10-22 8:32 ` Yogesh Narayan Gaur
2018-10-22 9:09 ` Boris Brezillon
2018-10-22 8:33 ` Tudor Ambarus
2018-10-22 9:15 ` Boris Brezillon
2018-10-22 10:03 ` Yogesh Narayan Gaur
2018-10-22 10:10 ` Boris Brezillon
2018-10-22 10:17 ` Yogesh Narayan Gaur
2018-10-22 10:25 ` Boris Brezillon
2018-10-22 10:20 ` Boris Brezillon
2018-10-22 10:26 ` Boris Brezillon
2018-10-22 10:39 ` Yogesh Narayan Gaur
2018-10-22 10:46 ` Boris Brezillon
2018-10-22 10:52 ` Boris Brezillon
2018-10-22 11:03 ` Yogesh Narayan Gaur
2018-10-22 11:43 ` Boris Brezillon
2018-10-22 11:46 ` Yogesh Narayan Gaur
2018-10-22 11:52 ` Boris Brezillon
2018-10-23 4:47 ` Yogesh Narayan Gaur
2018-10-23 5:39 ` Boris Brezillon
2018-10-23 8:18 ` Yogesh Narayan Gaur
2018-10-23 8:48 ` Boris Brezillon
2018-10-23 8:59 ` Yogesh Narayan Gaur
2018-10-23 9:09 ` Boris Brezillon
2018-10-23 9:01 ` Boris Brezillon
2018-10-23 9:05 ` Yogesh Narayan Gaur
2018-10-23 9:10 ` Boris Brezillon
2018-10-23 9:15 ` Yogesh Narayan Gaur
2018-10-17 9:06 ` Cyrille Pitchen
2018-09-11 15:40 ` [PATCH v3 2/2] mtd: spi-nor: parse SFDP Sector Map Parameter Table Tudor Ambarus
2018-09-11 18:56 ` Marek Vasut
2018-09-18 13:09 ` [PATCH v3 0/2] add support to non-uniform SFDP SPI NOR flash memories Boris Brezillon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181017090724.12f2cd79@bbrezillon \
--to=boris.brezillon@bootlin.com \
--cc=Cristian.Birsan@microchip.com \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@microchip.com \
--cc=cyrille.pitchen@wedev4u.fr \
--cc=dwmw2@infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=nicolas.ferre@microchip.com \
--cc=richard@nod.at \
--cc=tudor.ambarus@microchip.com \
--cc=yogeshnarayan.gaur@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).