
On 22 June 2016 at 15:44, Yao Yuan yao.yuan@nxp.com wrote:
On 06/22/2016 06:08 PM, Michael Trimarchi wrote:
On Wed, Jun 22, 2016 at 10:00:49AM +0000, Yao Yuan wrote:
On 06/22/2016 03:59 PM, Michael Trimarchi wrote:
The S25FS128 is part of S25FS-S family physical sectors may be configured as a hybrid combination of eight 4-kB parameter sectors at the top or bottom of the address space with all but one of the remaining sectors being uniform size. This rework a bit commit
80c1bfd2332e71dfe669cac53ba06b7435a7ca39
and add this jedec part number
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
drivers/mtd/spi/spi_flash.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index 64d4e0f..c993588 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -972,6 +972,21 @@ int spi_flash_decode_fdt(const void *blob, struct spi_flash *flash) #endif /* CONFIG_IS_ENABLED(OF_CONTROL) */
#ifdef CONFIG_SPI_FLASH_SPANSION
+inline int is_spansion_s25fss_family(u16 jedec, u16 ext_jedec) {
- switch (jedec) {
- case 0x0219:
- case 0x0220:
- case 0x2018:
if ((ext_jedec & 0xff00) == 0x4d00)
return 1;
- default:;
- }
- return 0;
+}
static int spansion_s25fss_disable_4KB_erase(struct spi_slave *spi) { u8 cmd[4]; @@ -1072,8 +1087,7 @@ int spi_flash_scan(struct spi_flash *flash)
- sector that is not overlaid by the parameter sectors.
- The uniform sector erase command has no effect on parameter
sectors. */
- if ((jedec == 0x0219 || (jedec == 0x0220)) &&
(ext_jedec & 0xff00) == 0x4d00) {
- if (is_spansion_s25fss_family(jedec, ext_jedec)) { int ret; u8 id[6];
--
Hi Michael, From some datasheet for spansion flash, it seems all the spansion S25FS family should disable 4kb. So how about just judge the idcode[0]?
I understand your point but I don't have enough part number and I can only to test on this one. I will verify this patch too and put my review and drop my personal one. Anyway can you ask if the first 0x8000 are considered by boot rom? I'm trying to boot from qspi an imx7d board and I create the parameter using the files/qspi-nor-spansion-s25fl128s-config but not sure if I need to flash from 0x400 or from 0x8400. And then I think that bootloader should go from 0x1000 or from 0x9000 correct? Then from BOOT_FROM I choose qspi but what is the DEFAULT_ADDRESS 0x1000 or 0x400?
Don't understand either does this "Disable 4-KB erase command for SPANSION S25FS-S family" (spansion_s25fss_disable_4KB_erase) is an issue workaround or something like hybrid configuration feature for spansion parts?
thanks!