sf: Updates on flash detection
v5 cover sf: Updates on flash detection
Updated spi_flash_info table in sync with Linux, and removed legacy and unsupported code.
Changes for v5:
- Add dataflash fixes in this series
- Rebase to master
Changes for v4:
- Rebase to master
Changes for v3:
- New patches
- Fix checkpatch.pl
- Fix BIT positions in spi.h
- Fix ti_qspi.c mode
- Fix commit Nit: s/becuase/because
Changes for v2:
- New patches.
Testing:
$ git clone git://git.denx.de/u-boot-spi.git $ cd u-boot-spi $ git checkout -b next origin/next
Jagan Teki (21):
sf: Adopt flash table INFO macro from Linux
sf: Simplify lock ops detection code
sf: sandbox: Use JEDEC_MFR|ID in id exctract
sf: Cleanup spi_flash_info{}
sf: Cleanup sf_params
sf: nr_sectors -> n_sectors
sf: Add SPI_FLASH_MAX_ID_LEN
sf: Increase max id length by 1 byte
sf: Add INFO6 flash_info macro
sf: params: Add S25FS256S_64K spi flash support
sf: Remove legacy idcode detection code
sf: Remove non-meaningful comments
sf: Rename sf_params.c to spi_flash_ids
sf: ids: Use small letter's with flash name
sf: ids: Use small letter in ext_jedec
sf: Rename few local functions
spi: Remove dual flash code
sf: dataflash: Remove unneeded spi data
sf: dataflash: Move flash id detection into jedec_probe
sf: dataflash: Fix add_dataflash return logic
sf: dataflash: Minor cleanups
drivers/mtd/spi/Makefile | 2 +- drivers/mtd/spi/sandbox.c | 11 +- drivers/mtd/spi/sf.c | 4 - drivers/mtd/spi/sf_dataflash.c | 178 ++++++++++++++---------------- drivers/mtd/spi/sf_internal.h | 58 +++++----- drivers/mtd/spi/sf_params.c | 238 ++++++++++++++++++++++------------------ drivers/mtd/spi/spi_flash.c | 226 ++++++++++++-------------------------- drivers/mtd/spi/spi_flash_ids.c | 176 +++++++++++++++++++++++++++++ include/linux/err.h | 5 + include/spi.h | 6 - 10 files changed, 500 insertions(+), 404 deletions(-) create mode 100644 drivers/mtd/spi/spi_flash_ids.c
Signature · 1 line
2.7.4
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
INFO macro make flash table entries more adjustable like adding new flash_info attributes, update ID length bytes and so on and more over it will sync to Linux way of defining flash_info attributes.
- Add JEDEC_ID
- Add JEDEC_EXT macro
- Add JEDEC_MFR
- spi_flash_params => spi_flash_info
- params => info
--- drivers/mtd/spi/sandbox.c | 10 +- drivers/mtd/spi/sf_internal.h | 26 +++-- drivers/mtd/spi/sf_params.c | 217 ++++++++++++++++++++++-------------------- drivers/mtd/spi/spi_flash.c | 119 ++++++++++++----------- include/linux/err.h | 5 + 5 files changed, 205 insertions(+), 172 deletions(-)
drivers/mtd/spi/sandbox.c +6 -4
@@ -88,7 +88,7 @@ struct sandbox_spi_flash {/* The current flash status (see STAT_XXX defines above) */ u16 status;/* Data describing the flash we're emulating */ -const struct spi_flash_params *data; +const struct spi_flash_info *data;/* The file on disk to serv up data from */ int fd; };
@@ -112,7 +112,7 @@ static int sandbox_sf_probe(struct udevice *dev)struct sandbox_spi_flash *sbsf =dev_get_priv (dev);const char *file;size_t len, idname_len; -const struct spi_flash_params *data; +const struct spi_flash_info *data;struct sandbox_spi_flash_plat_data *pdata =dev_get_platdata (dev);struct sandbox_state *state =state_get_current ();struct udevice *bus = dev->parent;
@@ -168,7 +168,7 @@ static int sandbox_sf_probe(struct udevice *dev) }debug ("%s: device='%s'\n" , __func__, spec); -for (data = spi_flash_params_table; data->name; data++) { +for (data = spi_flash_ids; data->name; data++) { len =strlen (data->name);if (idname_len != len)continue ;
@@ -359,7 +359,9 @@ static int sandbox_sf_xfer(struct udevice *dev, unsigned int bitlen,debug (" id: off:%u tx:" , sbsf->off);if (sbsf->off <IDCODE_LEN ) {/* Extract correct byte from ID 0x00aabbcc */ - id = sbsf->data->jedec >> + id = ((((sbsf->data)->id[0 ]) <<16 ) | + (((sbsf->data)->id[1 ]) <<8 | + ((sbsf->data)->id[2 ]))) >> (8 * (IDCODE_LEN -1 - sbsf->off)); }else { id =0 ;
drivers/mtd/spi/sf_internal.h +19 -7
@@ -103,24 +103,36 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,#define CMD_SPANSION_RDAR 0x65/* Read any device register */ #define CMD_SPANSION_WRAR 0x71/* Write any device register */ #endif + +#define JEDEC_MFR (info) ((info)->id[0]) +#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2])) +#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4])) +/** -* struct spi_flash_params - SPI/QSPI flash device params structure +* struct spi_flash_info - SPI/QSPI flash device params structure * * @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO]) -* @jedec: Device jedec ID (0x[1byte_manuf_id][2byte_dev_id]) -* @ext_jedec: Device ext_jedec ID * @sector_size: Isn't necessarily a sector size from vendor, * the size listed here is what works with CMD_ERASE_64K * @nr_sectors: No.of sectors on this device * @flags: Important param, for flash specific behaviour */ -struct spi_flash_params { +struct spi_flash_info {const char *name; -u32 jedec; -u16 ext_jedec; + +/* +* This array stores the ID bytes. +* The first three bytes are the JEDIC ID. +* JEDEC ID zero means "no ID" (mostly older chips). +*/ +u8 id[5 ]; +u8 id_len; +u32 sector_size;u32 nr_sectors; +u16 page_size; +u16 flags;#define SECT_4K BIT(0)#define E_FSR BIT(1)
@@ -133,7 +145,7 @@ struct spi_flash_params {#define RD_FULL (RD_QUAD | RD_DUAL | RD_QUADIO | RD_DUALIO) }; -extern const struct spi_flash_params spi_flash_params_table[]; +extern const struct spi_flash_info spi_flash_ids[];/* Send a single-byte command to the device and read the response */ int spi_flash_cmd (struct spi_slave *spi,u8 cmd,void *response,size_t len);
drivers/mtd/spi/sf_params.c +116 -101
241 lines not on this page · raw message
drivers/mtd/spi/spi_flash.c +59 -60
230 lines not on this page · raw message
include/linux/err.h +5 -0
@@ -36,6 +36,11 @@ static inline long IS_ERR(const void *ptr)return IS_ERR_VALUE ((unsigned long )ptr); } +static inline bool IS_ERR_OR_NULL (const void *ptr) +{ +return !ptr ||IS_ERR_VALUE ((unsigned long )ptr); +} +/** * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type * @ptr: The pointer to cast.
Signature · 1 line
2.7.4
Vignesh R
maintainerPATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]
drivers/mtd/spi/sf_params.c line 87
Quoted 9 lines
drivers/mtd/spi/sf_params.c +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },
Could you change above S25FS512S and S25FL512S_256K to use INFO6 macro? Right now, S25FL512S_256K gets detected as S25FS512S and sf update fails due as erasesizes are different.
Signature · 2 lines
Regards Vignesh
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 14 lines · Vignesh R
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]drivers/mtd/spi/sf_params.c line 87
Quoted 9 lines
drivers/mtd/spi/sf_params.c +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },
Quoted 3 lines
Could you change above S25FS512S and
S25FL512S_256Kto use INFO6 macro? Right now,S25FL512S_256Kgets detected as S25FS512S and sf update fails due as erasesizes are different.
I think this seems to be an existing issue, even before these changes. after this [1] I will prepare a patch to use INFO6 for S25FS512S.
[1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=13c17cad45ad9040fd0f6ebadf76554eb6353381
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 15 lines · Jagan Teki
Quoted 14 lines · Vignesh R
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]Quoted 9 lines
drivers/mtd/spi/sf_params.c +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },
Quoted 8 lines
Quoted 3 lines
Could you change above S25FS512S and
S25FL512S_256Kto use INFO6 macro? Right now,S25FL512S_256Kgets detected as S25FS512S and sf update fails due as erasesizes are different.I think this seems to be an existing issue, even before these changes. after this [1] I will prepare a patch to use INFO6 for S25FS512S.
[1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=13c17cad45ad9040fd0f6ebadf76554eb6353381
Try u-boot-spi/next?
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
Vignesh R
maintainerPATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 20 lines · Jagan Teki
Quoted 19 lines · Jagan Teki
Quoted 17 lines · Vignesh R
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]drivers/mtd/spi/sf_params.c line 87
Quoted 9 lines
drivers/mtd/spi/sf_params.c +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },Could you change above S25FS512S and
S25FL512S_256Kto use INFO6 macro? Right now,S25FL512S_256Kgets detected as S25FS512S and sf update fails due as erasesizes are different.
Quoted 7 lines
Quoted 4 lines
I think this seems to be an existing issue, even before these changes. after this [1] I will prepare a patch to use INFO6 for S25FS512S.
[1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=13c17cad45ad9040fd0f6ebadf76554eb6353381
Try u-boot-spi/next?
Yes, that works. sf probe correctly detects S25FL512S_256K. Thanks!
Signature · 2 lines
Regards Vignesh
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 26 lines · Vignesh R
Quoted 23 lines · Jagan Teki
Quoted 22 lines · Jagan Teki
Quoted 14 lines · Vignesh R
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]drivers/mtd/spi/sf_params.c line 87
Quoted 9 lines
drivers/mtd/spi/sf_params.c +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },Quoted 3 lines
Could you change above S25FS512S and
S25FL512S_256Kto use INFO6 macro? Right now,S25FL512S_256Kgets detected as S25FS512S and sf update fails due as erasesizes are different.I think this seems to be an existing issue, even before these changes. after this [1] I will prepare a patch to use INFO6 for S25FS512S.
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
[1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=13c17cad45ad9040fd0f6ebadf76554eb6353381
Try u-boot-spi/next?
Yes, that works. sf probe correctly detects
S25FL512S_256K. Thanks!
Now it's s25fl512s_256k changed to lower-case hope you detect the same?
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
Vignesh R
maintainerPATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 27 lines · Jagan Teki
Quoted 26 lines · Vignesh R
Quoted 23 lines · Jagan Teki
Quoted 22 lines · Jagan Teki
Quoted 14 lines · Vignesh R
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]drivers/mtd/spi/sf_params.c line 87
Quoted 9 lines
drivers/mtd/spi/sf_params.c +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },Quoted 3 lines
Could you change above S25FS512S and
S25FL512S_256Kto use INFO6 macro? Right now,S25FL512S_256Kgets detected as S25FS512S and sf update fails due as erasesizes are different.I think this seems to be an existing issue, even before these changes. after this [1] I will prepare a patch to use INFO6 for S25FS512S.
Quoted 9 lines
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
[1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=13c17cad45ad9040fd0f6ebadf76554eb6353381
Try u-boot-spi/next?
Yes, that works. sf probe correctly detects
S25FL512S_256K. Thanks!Now it's
s25fl512s_256kchanged to lower-case hope you detect the same?
Yes here is the log :
U-Boot 2016.11-rc2-00220-g53b750eed351 (Oct 31 2016 - 14:57:11 +0530)
CPU: 66AK2Gx SR1.0 Model: Texas Instruments Keystone 2 Galileo EVM I2C: ready
DRAM:
Clear entire DDR3 memory to enable ECC
2 GiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
reading uboot.env
** Unable to read "uboot.env" from mmc0:1 **
Using default environment
Net:
Warning: netcp at 4000000 using MAC address from ROM
eth0: netcp at 4000000
Hit any key to stop autoboot: 0
=> sf probe 4:0
SF: Detected s25fl512s_256k with page size 512 Bytes, erase size 256 KiB, total 64 MiB
=>
Signature · 2 lines
Regards Vignesh
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 56 lines · Vignesh R
Quoted 27 lines · Jagan Teki
Quoted 26 lines · Vignesh R
Quoted 23 lines · Jagan Teki
Quoted 22 lines · Jagan Teki
Quoted 14 lines · Vignesh R
On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]Review
Quoted 9 lines
(quoted diff) +9
-0+ {"S25FL128P_64K", INFO(0x012018, 0x0301, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL032P", INFO(0x010215, 0x4d00, 64 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL064P", INFO(0x010216, 0x4d00, 64 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL128S_256K", INFO(0x012018, 0x4d00, 256 * 1024, 64, RD_FULL | WR_QPP) }, + {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, + {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, + {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) },Quoted 3 lines
Could you change above S25FS512S and
S25FL512S_256Kto use INFO6 macro? Right now,S25FL512S_256Kgets detected as S25FS512S and sf update fails due as erasesizes are different.I think this seems to be an existing issue, even before these changes. after this [1] I will prepare a patch to use INFO6 for S25FS512S.
Quoted 9 lines
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
[1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=13c17cad45ad9040fd0f6ebadf76554eb6353381
Try u-boot-spi/next?
Yes, that works. sf probe correctly detects
S25FL512S_256K. Thanks!Now it's
s25fl512s_256kchanged to lower-case hope you detect the same?Yes here is the log :
U-Boot 2016.11-rc2-00220-g53b750eed351 (Oct 31 2016 - 14:57:11 +0530)
CPU: 66AK2Gx SR1.0 Model: Texas Instruments Keystone 2 Galileo EVM I2C: readyDRAM:
Clear entire DDR3 memory to enable ECC
2 GiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
reading uboot.env** Unable to read "uboot.env" from mmc0:1 **
Using default environment
Quoted 8 lines
Net:
Warning: netcp at 4000000 using MAC address from ROM
eth0: netcp at 4000000
Hit any key to stop autoboot: 0
=> sf probe 4:0
SF: Detecteds25fl512s_256kwith page size 512 Bytes, erase size 256 KiB, total 64 MiB
=>
Perfect, thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
In reply to Jagan TekiQuoted 19 lines · Jagan Teki
INFO macro make flash table entries more adjustable like adding new
flash_infoattributes, update ID length bytes and so on and more over it will sync to Linux way of definingflash_infoattributes.- Add
JEDEC_ID
- AddJEDEC_EXTmacro
- AddJEDEC_MFR
-spi_flash_params=>spi_flash_info
- params => infoCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 8 lines
--- drivers/mtd/spi/sandbox.c | 10 +- drivers/mtd/spi/sf_internal.h | 26 +++-- drivers/mtd/spi/sf_params.c | 217 ++++++++++++++++++++++-------------------- drivers/mtd/spi/spi_flash.c | 119 ++++++++++++----------- include/linux/err.h | 5 + 5 files changed, 205 insertions(+), 172 deletions(-)
I got compiling warning on the first patch (tested on top of master branch)
02: sf: Adopt flash table INFO macro from Linux
powerpc: + T1024RDB_SPIFLASH T2080QDS_SPIFLASH T1040RDB_NAND
B4860QDS_SRIO_PCIE_BOOT T1042RDB_PI_SPIFLASH B4860QDST1040RDB_SECURE_BOOT T1024QDS_SPIFLASH B4420QDScontrolcenterd_36BIT_SDCARD T2081QDS T2080QDS T4240QDS T1040D4RDBT4240RDB_SDCARD T2080RDB_SDCARD T1024QDS_NAND T4240QDS_SRIO_PCIE_BOOTT1024RDB_NAND T2081QDS_SPIFLASH T1040QDS_SECURE_BOOT UCP1020 T4240RDBT4160QDS_NAND T1042D4RDB_SECURE_BOOT T1042RDB_SECURE_BOOT T2080RDBT4240QDS_SECURE_BOOT T1024QDS T1040RDB T1042RDB_PI_NAND T2080RDB_NANDT1042RDB_PI_SDCARD T1042D4RDB_NAND T2081QDS_NAND T4160QDS_SDCARDT2080QDS_SDCARD T1042RDB T4160QDS_SECURE_BOOT T1040RDB_SDCARDT2081QDS_SRIO_PCIE_BOOT T2080RDB_SECURE_BOOT B4860QDS_SECURE_BOOT
T1040QDS T1042D4RDB B4860QDS_NAND T1040QDS_DDR4 T2080QDS_SECURE_BOOTT2080RDB_SPIFLASH T4240QDS_SDCARD T1024QDS_DDR4 T1040D4RDB_SDCARDT1040D4RDB_SPIFLASH T1024QDS_DDR4_SECURE_BOOT T2080QDS_NANDcontrolcenterd_36BIT_SDCARD_DEVELOP T2080QDS_SRIO_PCIE_BOOTUCP1020_SPIFLASH T1040D4RDB_NAND T4160QDS T4160RDB T1024QDS_SECURE_BOOTB4860QDS_SPIFLASH T1040RDB_SPIFLASH T1024RDB T4240QDS_NAND B4420QDS_NANDT1040D4RDB_SECURE_BOOT T2080RDB_SRIO_PCIE_BOOT T1024RDB_SECURE_BOOTT1024QDS_SDCARD T1042D4RDB_SPIFLASH T1042RDB_PI_NAND_SECURE_BOOTT1042D4RDB_SDCARD T2081QDS_SDCARD T1024RDB_SDCARD T1042RDB_PIB4420QDS_SPIFLASH w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI) ../drivers/mtd/spi/spi_flash.c: In function 'spi_flash_scan':
w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI) ../drivers/mtd/spi/spi_flash.c:1043:13: warning: variable 'ext_jedec'
set but not used [-Wunused-but-set-variable] w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI) ../drivers/mtd/spi/spi_flash.c:1043:6: warning: variable 'jedec' set but
not used [-Wunused-but-set-variable]
w+(T4240RDB,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,B4860QDS,B4420QDS,T4240QDS,T4240RDB_SDCARD,T4240QDS_SRIO_PCIE_BOOT,T4160QDS_NAND,T4240QDS_SECURE_BOOT,T4160QDS_SDCARD,T4160QDS_SECURE_BOOT,B4860QDS_NAND,T4240QDS_SDCARD,T4160QDS,T4160RDB,B4860QDS_SPIFLASH,T4240QDS_NAND,B4420QDS_NAND,B4420QDS_SPIFLASH)../drivers/mtd/spi/spi_flash.c:1045:6: warning: 'ret' may be used
uninitialized in this function [-Wmaybe-uninitialized]
York
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 57 lines · york.sun at nxp.com
Quoted 19 lines · Jagan Teki
INFO macro make flash table entries more adjustable like adding new
flash_infoattributes, update ID length bytes and so on and more over it will sync to Linux way of definingflash_infoattributes.- Add
JEDEC_ID
- AddJEDEC_EXTmacro
- AddJEDEC_MFR
-spi_flash_params=>spi_flash_info
- params => infoCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>Quoted 9 lines
--- drivers/mtd/spi/sandbox.c | 10 +- drivers/mtd/spi/sf_internal.h | 26 +++-- drivers/mtd/spi/sf_params.c | 217 ++++++++++++++++++++++-------------------- drivers/mtd/spi/spi_flash.c | 119 ++++++++++++----------- include/linux/err.h | 5 + 5 files changed, 205 insertions(+), 172 deletions(-)I got compiling warning on the first patch (tested on top of master branch)
02: sf: Adopt flash table INFO macro from Linux
powerpc: +T1024RDB_SPIFLASHT2080QDS_SPIFLASHT1040RDB_NANDB4860QDS_SRIO_PCIE_BOOTT1042RDB_PI_SPIFLASHB4860QDST1040RDB_SECURE_BOOTT1024QDS_SPIFLASHB4420QDScontrolcenterd_36BIT_SDCARDT2081QDS T2080QDS T4240QDS T1040D4RDBT4240RDB_SDCARDT2080RDB_SDCARDT1024QDS_NANDT4240QDS_SRIO_PCIE_BOOTT1024RDB_NANDT2081QDS_SPIFLASHT1040QDS_SECURE_BOOTUCP1020 T4240RDBT4160QDS_NANDT1042D4RDB_SECURE_BOOTT1042RDB_SECURE_BOOTT2080RDBT4240QDS_SECURE_BOOTT1024QDS T1040RDBT1042RDB_PI_NANDT2080RDB_NANDT1042RDB_PI_SDCARDT1042D4RDB_NANDT2081QDS_NANDT4160QDS_SDCARDT2080QDS_SDCARDT1042RDBT4160QDS_SECURE_BOOTT1040RDB_SDCARDT2081QDS_SRIO_PCIE_BOOTT2080RDB_SECURE_BOOTB4860QDS_SECURE_BOOT
T1040QDS T1042D4RDBB4860QDS_NANDT1040QDS_DDR4T2080QDS_SECURE_BOOTT2080RDB_SPIFLASHT4240QDS_SDCARDT1024QDS_DDR4T1040D4RDB_SDCARDT1040D4RDB_SPIFLASHT1024QDS_DDR4_SECURE_BOOTT2080QDS_NANDcontrolcenterd_36BIT_SDCARD_DEVELOPT2080QDS_SRIO_PCIE_BOOTUCP1020_SPIFLASHT1040D4RDB_NANDT4160QDS T4160RDBT1024QDS_SECURE_BOOTB4860QDS_SPIFLASHT1040RDB_SPIFLASHT1024RDBT4240QDS_NANDB4420QDS_NANDT1040D4RDB_SECURE_BOOTT2080RDB_SRIO_PCIE_BOOTT1024RDB_SECURE_BOOTT1024QDS_SDCARDT1042D4RDB_SPIFLASHT1042RDB_PI_NAND_SECURE_BOOTT1042D4RDB_SDCARDT2081QDS_SDCARDT1024RDB_SDCARDT1042RDB_PIB4420QDS_SPIFLASHw+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI)../drivers/mtd/spi/spi_flash.c: In function 'spi_flash_scan':
w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI)
Quoted 8 lines
../drivers/mtd/spi/spi_flash.c:1043:13: warning: variable 'ext_jedec'
set but not used [-Wunused-but-set-variable] w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI)../drivers/mtd/spi/spi_flash.c:1043:6: warning: variable 'jedec' set but
not used [-Wunused-but-set-variable]
w+(T4240RDB,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,B4860QDS,B4420QDS,T4240QDS,T4240RDB_SDCARD,T4240QDS_SRIO_PCIE_BOOT,T4160QDS_NAND,T4240QDS_SECURE_BOOT,T4160QDS_SDCARD,T4160QDS_SECURE_BOOT,B4860QDS_NAND,T4240QDS_SDCARD,T4160QDS,T4160RDB,B4860QDS_SPIFLASH,T4240QDS_NAND,B4420QDS_NAND,B4420QDS_SPIFLASH)../drivers/mtd/spi/spi_flash.c:1045:6: warning: 'ret' may be used
uninitialized in this function [-Wmaybe-uninitialized]
Similar for arm
02: sf: Adopt flash table INFO macro from Linux
aarch64: + p2371-2180 ls1046aqds_sdcard_ifc
ls2080aqds_SECURE_BOOT ls1043aqds ls1043ardb p2571 xilinx_zynqmp_epls1046aqds_nand evb-rk3399 ls2080ardb_SECURE_BOOT ls1046aqdsls1043aqds_nand ls1043ardb_SECURE_BOOT ls1043aqds_lpuart ls1043ardb_nand
ls2080aqds ls2080ardb p2371-0000 ls1043aqds_nor_ddr3xilinx_zynqmp_zc1751_xm016_dc2 e2220-1170 ls1043ardb_sdcardls1043aqds_sdcard_ifc
arm: + mx6sabresd_spl vf610twr_nand mx6slevk_spinorls1021atwr_sdcard_qspi vf610twr mx6sxsabresd_spl mx6ul_14x14_evkmx6slevk_spl mx6slevk mx6sxsabreauto mx6sxsabresd mx6qsabreauto
mx6dlsabresd mx6qpsabreauto mx6dlsabreauto mx6ul_9x9_evk ls1021atwr_qspi
mx6qsabresd +(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd)
u16 jedec, ext_jedec;
+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd)
^
+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd)
^+(mx6sxsabresd_spl) int ret;
w+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd) ../drivers/mtd/spi/spi_flash.c: In function ?spi_flash_scan?:
w+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd) ../drivers/mtd/spi/spi_flash.c:1043:13: warning: variable ?ext_jedec?
set but not used [-Wunused-but-set-variable] w+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd) ../drivers/mtd/spi/spi_flash.c:1043:6: warning: variable ?jedec? set but
not used [-Wunused-but-set-variable]
w+(mx6sxsabresd_spl) ../drivers/mtd/spi/spi_flash.c:1045:6: warning:
?ret? may be used uninitialized in this function [-Wmaybe-uninitialized]
Looks like you fix it in this patch "sf: Remove legacy idcode detection code" later.
York
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
York,
Please test again?
Quoted 108 lines · york sun
Quoted 57 lines · york.sun at nxp.com
Quoted 19 lines · Jagan Teki
INFO macro make flash table entries more adjustable like adding new
flash_infoattributes, update ID length bytes and so on and more over it will sync to Linux way of definingflash_infoattributes.- Add
JEDEC_ID
- AddJEDEC_EXTmacro
- AddJEDEC_MFR
-spi_flash_params=>spi_flash_info
- params => infoCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>Quoted 9 lines
--- drivers/mtd/spi/sandbox.c | 10 +- drivers/mtd/spi/sf_internal.h | 26 +++-- drivers/mtd/spi/sf_params.c | 217 ++++++++++++++++++++++-------------------- drivers/mtd/spi/spi_flash.c | 119 ++++++++++++----------- include/linux/err.h | 5 + 5 files changed, 205 insertions(+), 172 deletions(-)I got compiling warning on the first patch (tested on top of master branch)
02: sf: Adopt flash table INFO macro from Linux
powerpc: +T1024RDB_SPIFLASHT2080QDS_SPIFLASHT1040RDB_NANDB4860QDS_SRIO_PCIE_BOOTT1042RDB_PI_SPIFLASHB4860QDST1040RDB_SECURE_BOOTT1024QDS_SPIFLASHB4420QDScontrolcenterd_36BIT_SDCARDT2081QDS T2080QDS T4240QDS T1040D4RDBT4240RDB_SDCARDT2080RDB_SDCARDT1024QDS_NANDT4240QDS_SRIO_PCIE_BOOTT1024RDB_NANDT2081QDS_SPIFLASHT1040QDS_SECURE_BOOTUCP1020 T4240RDBT4160QDS_NANDT1042D4RDB_SECURE_BOOTT1042RDB_SECURE_BOOTT2080RDBT4240QDS_SECURE_BOOTT1024QDS T1040RDBT1042RDB_PI_NANDT2080RDB_NANDT1042RDB_PI_SDCARDT1042D4RDB_NANDT2081QDS_NANDT4160QDS_SDCARDT2080QDS_SDCARDT1042RDBT4160QDS_SECURE_BOOTT1040RDB_SDCARDT2081QDS_SRIO_PCIE_BOOTT2080RDB_SECURE_BOOTB4860QDS_SECURE_BOOT
T1040QDS T1042D4RDBB4860QDS_NANDT1040QDS_DDR4T2080QDS_SECURE_BOOTT2080RDB_SPIFLASHT4240QDS_SDCARDT1024QDS_DDR4T1040D4RDB_SDCARDT1040D4RDB_SPIFLASHT1024QDS_DDR4_SECURE_BOOTT2080QDS_NANDcontrolcenterd_36BIT_SDCARD_DEVELOPT2080QDS_SRIO_PCIE_BOOTUCP1020_SPIFLASHT1040D4RDB_NANDT4160QDS T4160RDBT1024QDS_SECURE_BOOTB4860QDS_SPIFLASHT1040RDB_SPIFLASHT1024RDBT4240QDS_NANDB4420QDS_NANDT1040D4RDB_SECURE_BOOTT2080RDB_SRIO_PCIE_BOOTT1024RDB_SECURE_BOOTT1024QDS_SDCARDT1042D4RDB_SPIFLASHT1042RDB_PI_NAND_SECURE_BOOTT1042D4RDB_SDCARDT2081QDS_SDCARDT1024RDB_SDCARDT1042RDB_PIB4420QDS_SPIFLASHw+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI)../drivers/mtd/spi/spi_flash.c: In function 'spi_flash_scan':
w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI)Quoted 8 lines
../drivers/mtd/spi/spi_flash.c:1043:13: warning: variable 'ext_jedec'
set but not used [-Wunused-but-set-variable] w+(T4240RDB,T1024RDB_SPIFLASH,T2080RDB_SECURE_BOOT,T2080QDS_SPIFLASH,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,T1042RDB_PI_SPIFLASH,B4860QDS,T1024QDS_SPIFLASH,B4420QDS,controlcenterd_36BIT_SDCARD,T2081QDS,T2080QDS,T4240QDS,T1040D4RDB,T4240RDB_SDCARD,T2080RDB_SDCARD,T1024QDS_NAND,T4240QDS_SRIO_PCIE_BOOT,T1024RDB_NAND,T2081QDS_SPIFLASH,T1040QDS_SECURE_BOOT,UCP1020,T4160QDS_NAND,T1042D4RDB_SECURE_BOOT,T1042RDB_SECURE_BOOT,T2080RDB,T4240QDS_SECURE_BOOT,T2081QDS_SRIO_PCIE_BOOT,T1024QDS,T1040RDB,T1042RDB_PI_NAND,T2080RDB_NAND,T1042RDB_PI_SDCARD,T2081QDS_NAND,T4160QDS_SDCARD,T2080QDS_SDCARD,T1042RDB,T4160QDS_SECURE_BOOT,T1040RDB_SDCARD,T1040D4RDB_SPIFLASH,T1040QDS,T1042D4RDB,B4860QDS_NAND,T1040QDS_DDR4,T2080QDS_SECURE_BOOT,T2080RDB_SPIFLASH,T4240QDS_SDCARD,T1024QDS_DDR4,T1040D4RDB_SDCARD,T1024QDS_DDR4_SECURE_BOOT,T2080QDS_NAND,controlcenterd_36BIT_SDCARD_DEVELOP,T2080QDS_SRIO_PCIE_BOOT,UCP1020_SPIFLASH,T1040D4RDB_NAND,T4160QDS,T4160RDB,T1024QDS_SECURE_BOOT,B4860QDS_SPIFLASH,T1040RDB_SPIFLASH,T1024RDB,T4240QDS_NAND,B4420QDS_NAND,T1040D4RDB_SECURE_BOOT,T2080RDB_SRIO_PCIE_BOOT,T1024RDB_SECURE_BOOT,T1024QDS_SDCARD,T1042D4RDB_SPIFLASH,T1042RDB_PI_NAND_SECURE_BOOT,T1040RDB_SECURE_BOOT,T1042D4RDB_NAND,T1042D4RDB_SDCARD,T2081QDS_SDCARD,T1040RDB_NAND,T1024RDB_SDCARD,B4420QDS_SPIFLASH,T1042RDB_PI)../drivers/mtd/spi/spi_flash.c:1043:6: warning: variable 'jedec' set but
not used [-Wunused-but-set-variable]
w+(T4240RDB,B4860QDS_SECURE_BOOT,B4860QDS_SRIO_PCIE_BOOT,B4860QDS,B4420QDS,T4240QDS,T4240RDB_SDCARD,T4240QDS_SRIO_PCIE_BOOT,T4160QDS_NAND,T4240QDS_SECURE_BOOT,T4160QDS_SDCARD,T4160QDS_SECURE_BOOT,B4860QDS_NAND,T4240QDS_SDCARD,T4160QDS,T4160RDB,B4860QDS_SPIFLASH,T4240QDS_NAND,B4420QDS_NAND,B4420QDS_SPIFLASH)../drivers/mtd/spi/spi_flash.c:1045:6: warning: 'ret' may be used
uninitialized in this function [-Wmaybe-uninitialized]Similar for arm
02: sf: Adopt flash table INFO macro from Linux
aarch64: + p2371-2180 ls1046aqds_sdcard_ifc
ls2080aqds_SECURE_BOOTls1043aqds ls1043ardb p2571xilinx_zynqmp_epls1046aqds_nandevb-rk3399ls2080ardb_SECURE_BOOTls1046aqdsls1043aqds_nandls1043ardb_SECURE_BOOTls1043aqds_lpuartls1043ardb_nandls2080aqds ls2080ardb p2371-0000ls1043aqds_nor_ddr3xilinx_zynqmp_zc1751_xm016_dc2e2220-1170ls1043ardb_sdcardls1043aqds_sdcard_ifc
arm: +mx6sabresd_splvf610twr_nandmx6slevk_spinorls1021atwr_sdcard_qspivf610twrmx6sxsabresd_splmx6ul_14x14_evkmx6slevk_splmx6slevk mx6sxsabreauto mx6sxsabresd mx6qsabreauto mx6dlsabresd mx6qpsabreauto mx6dlsabreautomx6ul_9x9_evkls1021atwr_qspimx6qsabresd(quoted diff) +4
-0+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd) u16 jedec, ext_jedec; +(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd) ^ +(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd) ^ +(mx6sxsabresd_spl) int ret;w+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd)
../drivers/mtd/spi/spi_flash.c: In function ?spi_flash_scan?:
w+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd)../drivers/mtd/spi/spi_flash.c:1043:13: warning: variable ?ext_jedec?
set but not used [-Wunused-but-set-variable] w+(mx6sabresd_spl,ls1046aqds_sdcard_ifc,ls2080aqds_SECURE_BOOT,vf610twr_nand,ls1043aqds,ls1043ardb,mx6slevk_spinor,p2571,ls1021atwr_sdcard_qspi,vf610twr,xilinx_zynqmp_ep,ls1046aqds_nand,evb-rk3399,ls2080ardb_SECURE_BOOT,mx6sxsabresd_spl,mx6ul_14x14_evk,ls1046aqds,mx6slevk_spl,mx6slevk,mx6sxsabreauto,ls1043aqds_nand,ls1043ardb_SECURE_BOOT,ls1043aqds_lpuart,ls1043ardb_nand,ls2080aqds,mx6sxsabresd,ls2080ardb,mx6qsabreauto,mx6dlsabresd,mx6qpsabreauto,mx6dlsabreauto,p2371-0000,ls1043aqds_nor_ddr3,p2371-2180,xilinx_zynqmp_zc1751_xm016_dc2,mx6ul_9x9_evk,e2220-1170,ls1043ardb_sdcard,ls1021atwr_qspi,ls1043aqds_sdcard_ifc,mx6qsabresd)../drivers/mtd/spi/spi_flash.c:1043:6: warning: variable ?jedec? set but
not used [-Wunused-but-set-variable]
w+(mx6sxsabresd_spl)../drivers/mtd/spi/spi_flash.c:1045:6: warning:
?ret? may be used uninitialized in this function [-Wmaybe-uninitialized]Looks like you fix it in this patch "sf: Remove legacy idcode detection code" later.
York
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 1/21 sf: Adopt flash table INFO macro from Linux
Quoted 4 lines · Jagan Teki
York,
Please test again?
OK. It is in the queue.
York
PATCH v5 2/21 sf: Simplify lock ops detection code
In reply to Jagan TekiSimplify the flash_lock ops detection code and added meaningful comment.
--- drivers/mtd/spi/spi_flash.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/mtd/spi/spi_flash.c +4 -8
@@ -1117,19 +1117,15 @@ int spi_flash_scan(struct spi_flash *flash) flash->read = spi_flash_cmd_read_ops;#endif -/* lock hooks are flash specific - assign them based on idcode0 */ -switch (JEDEC_MFR (info)) {#if defined(CONFIG_SPI_FLASH_STMICRO ) || defined(CONFIG_SPI_FLASH_SST ) -case SPI_FLASH_CFI_MFR_STMICRO : -case SPI_FLASH_CFI_MFR_SST : +/* NOR protection support for STmicro/Micron chips and similar */ +if (JEDEC_MFR (info) ==SPI_FLASH_CFI_MFR_STMICRO || +JEDEC_MFR (info) ==SPI_FLASH_CFI_MFR_SST ) { flash->flash_lock = stm_lock; flash->flash_unlock = stm_unlock; flash->flash_is_locked = stm_is_locked; -#endif -break ; -default : -debug ("SF: Lock ops not supported for %02x flash\n" ,JEDEC_MFR (info)); } +#endif /* Compute the flash size */ flash->shift = (flash->dual_flash &SF_DUAL_PARALLEL_FLASH ) ?1 :0 ;
Signature · 1 line
2.7.4
PATCH v5 2/21 sf: Simplify lock ops detection code
Hi Jagan,
Quoted 11 lines · Jagan Teki
Simplify the
flash_lockops detection code and added meaningful comment.Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 3 lines
--- drivers/mtd/spi/spi_flash.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
Quoted 14 lines
drivers/mtd/spi/spi_flash.c +0
-4@@ -1117,19 +1117,15 @@ int spi_flash_scan(struct spi_flash *flash) flash->read = spi_flash_cmd_read_ops;#endif -/* lock hooks are flash specific - assign them based on idcode0 */ -switch (JEDEC_MFR (info)) {#if defined(CONFIG_SPI_FLASH_STMICRO ) || defined(CONFIG_SPI_FLASH_SST ) -case SPI_FLASH_CFI_MFR_STMICRO : -case SPI_FLASH_CFI_MFR_SST :
drivers/mtd/spi/spi_flash.c int spi_flash_scan(struct spi_flash *flash) · line 1131
Quoted 10 lines
drivers/mtd/spi/spi_flash.c +3
-4+/* NOR protection support for STmicro/Micron chips and similar */ +if (JEDEC_MFR (info) ==SPI_FLASH_CFI_MFR_STMICRO || +JEDEC_MFR (info) ==SPI_FLASH_CFI_MFR_SST ) { flash->flash_lock = stm_lock; flash->flash_unlock = stm_unlock; flash->flash_is_locked = stm_is_locked; -#endif -break ; -default : -debug ("SF: Lock ops not supported for %02x flash\n" ,JEDEC_MFR (info));
Did you intentionally drop this?
Quoted 8 lines
drivers/mtd/spi/spi_flash.c +1
-1} +#endif /* Compute the flash size */ flash->shift = (flash->dual_flash &SF_DUAL_PARALLEL_FLASH ) ?1 :0 ; --2.7.4
Regards,
Simon
PATCH v5 2/21 sf: Simplify lock ops detection code
Quoted 38 lines · Simon Glass
Hi Jagan,
Quoted 11 lines · Jagan Teki
Simplify the
flash_lockops detection code and added meaningful comment.Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>Quoted 3 lines
--- drivers/mtd/spi/spi_flash.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)Reviewed-by Simon Glass <[email protected]>Quoted 18 lines
drivers/mtd/spi/spi_flash.c +3
-4@@ -1117,19 +1117,15 @@ int spi_flash_scan(struct spi_flash *flash) flash->read = spi_flash_cmd_read_ops;#endif -/* lock hooks are flash specific - assign them based on idcode0 */ -switch (JEDEC_MFR (info)) {#if defined(CONFIG_SPI_FLASH_STMICRO ) || defined(CONFIG_SPI_FLASH_SST ) -case SPI_FLASH_CFI_MFR_STMICRO : -case SPI_FLASH_CFI_MFR_SST : +/* NOR protection support for STmicro/Micron chips and similar */ +if (JEDEC_MFR (info) ==SPI_FLASH_CFI_MFR_STMICRO || +JEDEC_MFR (info) ==SPI_FLASH_CFI_MFR_SST ) { flash->flash_lock = stm_lock;
Quoted 8 lines
drivers/mtd/spi/spi_flash.c int spi_flash_scan(struct spi_flash *flash) · line 1131
Quoted 6 lines
drivers/mtd/spi/spi_flash.c +0
-4flash->flash_unlock = stm_unlock; flash->flash_is_locked = stm_is_locked; -#endif -break ; -default : -debug ("SF: Lock ops not supported for %02x flash\n" ,JEDEC_MFR (info));Did you intentionally drop this?
Since spi_flash_protect returns -EOPNOTSUPP, this extra debug not need.
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 3/21 sf: sandbox: Use JEDEC_MFR|ID in id exctract
In reply to Jagan TekiInstead of extracting id's separately better to use JEDEC_MFR|ID for code simplicity.
--- drivers/mtd/spi/sandbox.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
drivers/mtd/spi/sandbox.c +2 -3
@@ -359,9 +359,8 @@ static int sandbox_sf_xfer(struct udevice *dev, unsigned int bitlen,debug (" id: off:%u tx:" , sbsf->off);if (sbsf->off <IDCODE_LEN ) {/* Extract correct byte from ID 0x00aabbcc */ - id = ((((sbsf->data)->id[0 ]) <<16 ) | - (((sbsf->data)->id[1 ]) <<8 | - ((sbsf->data)->id[2 ]))) >> + id = ((JEDEC_MFR (sbsf->data) <<16 ) | +JEDEC_ID (sbsf->data)) >> (8 * (IDCODE_LEN -1 - sbsf->off)); }else { id =0 ;
Signature · 1 line
2.7.4
PATCH v5 3/21 sf: sandbox: Use JEDEC_MFR|ID in id exctract
Quoted 9 lines · Jagan Teki
Instead of extracting id's separately better to use JEDEC_MFR|ID for code simplicity.
Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sandbox.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
PATCH v5 4/21 sf: Cleanup spi_flash_info{}
In reply to Jagan Teki- Proper tabs spaces
- Removed unnecessary
- Added meaningful comments?
--- drivers/mtd/spi/sf_internal.h | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)
drivers/mtd/spi/sf_internal.h +8 -14
@@ -108,17 +108,8 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2]))#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4])) -/** -* struct spi_flash_info - SPI/QSPI flash device params structure -* -* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO]) -* @sector_size: Isn't necessarily a sector size from vendor, -* the size listed here is what works with CMD_ERASE_64K -* @nr_sectors: No.of sectors on this device -* @flags: Important param, for flash specific behaviour -*/ struct spi_flash_info { -const char *name; +const char *name;/* * This array stores the ID bytes.
@@ -128,12 +119,15 @@ struct spi_flash_info {u8 id[5 ];u8 id_len; -u32 sector_size; -u32 nr_sectors; +/* The size listed here is what works with SPINOR_OP_SE, which isn't +* necessarily called a "sector" by the vendor. +*/ +u32 sector_size; +u32 nr_sectors; -u16 page_size; +u16 page_size; -u16 flags; +u16 flags;#define SECT_4K BIT(0)#define E_FSR BIT(1)#define SST_WR BIT(2)
Signature · 1 line
2.7.4
PATCH v5 4/21 sf: Cleanup spi_flash_info{}
Hi Jagan,
Quoted 22 lines · Jagan Teki
- Proper tabs spaces
- Removed unnecessary
- Added meaningful commentsCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_internal.h | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)drivers/mtd/spi/sf_internal.h +0
-0@@ -108,17 +108,8 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2]))
drivers/mtd/spi/sf_internal.h int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len, · line 118
Quoted 10 lines
drivers/mtd/spi/sf_internal.h +0
-8#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4])) -/** -* struct spi_flash_info - SPI/QSPI flash device params structure -* -* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO]) -* @sector_size: Isn't necessarily a sector size from vendor, -* the size listed here is what works with CMD_ERASE_64K -* @nr_sectors: No.of sectors on this device -* @flags: Important param, for flash specific behaviour
Why remove these comments? For 'flags' it would be good to point to the enum / #define that describes its values.
Quoted 8 lines
drivers/mtd/spi/sf_internal.h +1
-2-*/ struct spi_flash_info { -const char *name; +const char *name;/* * This array stores the ID bytes.
drivers/mtd/spi/sf_internal.h struct spi_flash_info { · line 122
Quoted 6 lines
drivers/mtd/spi/sf_internal.h +1
-2@@ -128,12 +119,15 @@ struct spi_flash_info {u8 id[5 ];u8 id_len; -u32 sector_size; -u32 nr_sectors; +/* The size listed here is what works with SPINOR_OP_SE, which isn't
/*
* The size
Quoted 14 lines
drivers/mtd/spi/sf_internal.h +6
-3+* necessarily called a "sector" by the vendor. +*/ +u32 sector_size; +u32 nr_sectors; -u16 page_size; +u16 page_size; -u16 flags; +u16 flags;#define SECT_4K BIT(0)#define E_FSR BIT(1)#define SST_WR BIT(2) --
Quoted 2 lines
2.7.4
Regards,
Simon
PATCH v5 4/21 sf: Cleanup spi_flash_info{}
Quoted 27 lines · Simon Glass
Hi Jagan,
Quoted 24 lines · Jagan Teki
- Proper tabs spaces
- Removed unnecessary
- Added meaningful commentsCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_internal.h | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)drivers/mtd/spi/sf_internal.h +0
-0@@ -108,17 +108,8 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2]))#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4]))
Quoted 11 lines
drivers/mtd/spi/sf_internal.h int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len, · line 118
Quoted 8 lines
drivers/mtd/spi/sf_internal.h +0
-8-/** -* struct spi_flash_info - SPI/QSPI flash device params structure -* -* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO]) -* @sector_size: Isn't necessarily a sector size from vendor, -* the size listed here is what works with CMD_ERASE_64K -* @nr_sectors: No.of sectors on this device -* @flags: Important param, for flash specific behaviour Why remove these comments? For 'flags' it would be good to point to the enum / #define that describes its values.
Added comments inside the structure in-place where members defined and will update comment for name.
For flags will add the comments for respective macros in future patch.
Quoted 12 lines
Quoted 12 lines
drivers/mtd/spi/sf_internal.h +1
-2-*/ struct spi_flash_info { -const char *name; +const char *name;/* * This array stores the ID bytes. @@ -128,12 +119,15 @@ struct spi_flash_info {u8 id[5 ];u8 id_len;
Quoted 6 lines
drivers/mtd/spi/sf_internal.h struct spi_flash_info { · line 122
Quoted 3 lines
drivers/mtd/spi/sf_internal.h +1
-2-u32 sector_size; -u32 nr_sectors; +/* The size listed here is what works with SPINOR_OP_SE, which isn't /*
* The size
Will fix this.
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 5/21 sf: Cleanup sf_params
In reply to Jagan Teki- Move headers froms sf_params to common header file
- Removed unnecessary comment
--- drivers/mtd/spi/sf_internal.h | 5 +++-- drivers/mtd/spi/sf_params.c | 5 ----- 2 files changed, 3 insertions(+), 7 deletions(-)
drivers/mtd/spi/sf_internal.h +3 -2
@@ -10,8 +10,9 @@#ifndef _SF_INTERNAL_H_#define _SF_INTERNAL_H_ -#include <linux/types.h> -#include <linux/compiler.h> +#include <common.h> +#include <spi.h> +#include <spi_flash.h> /* Dual SPI flash memories - see SPI_COMM_DUAL_... */ enum spi_dual_flash {
drivers/mtd/spi/sf_params.c +0 -5
@@ -6,10 +6,6 @@* SPDX-License-Identifier: GPL-2.0+ */ -#include <common.h> -#include <spi.h> -#include <spi_flash.h> -#include "sf_internal.h" /* Used when the "_ext_id" is two bytes at most */
@@ -27,7 +23,6 @@ .page_size = 256, \ .flags = (_flags), -/* SPI/QSPI flash device params structure */ const struct spi_flash_info spi_flash_ids[] = {#ifdef CONFIG_SPI_FLASH_ATMEL /* ATMEL */ {"AT45DB011D", INFO(0x1f2200, 0x0, 64 * 1024, 4, SECT_4K) },
Signature · 1 line
2.7.4
PATCH v5 5/21 sf: Cleanup sf_params
Hi Jagan,
Quoted 21 lines · Jagan Teki
- Move headers froms
sf_paramsto common header file
- Removed unnecessary commentCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_internal.h | 5 +++-- drivers/mtd/spi/sf_params.c | 5 ----- 2 files changed, 3 insertions(+), 7 deletions(-)drivers/mtd/spi/sf_internal.h +0
-0
drivers/mtd/spi/sf_internal.h line 15
Quoted 8 lines
drivers/mtd/spi/sf_internal.h +3
-2@@ -10,8 +10,9 @@#ifndef _SF_INTERNAL_H_#define _SF_INTERNAL_H_ -#include <linux/types.h> -#include <linux/compiler.h> +#include <common.h> +#include <spi.h> +#include <spi_flash.h>
No, these headers should remain in the C file that needs them. Transitive include should be minimised.
Quoted 27 lines
drivers/mtd/spi/sf_internal.h +0
-0/* Dual SPI flash memories - see SPI_COMM_DUAL_... */ enum spi_dual_flash {drivers/mtd/spi/sf_params.c +0
-6@@ -6,10 +6,6 @@* SPDX-License-Identifier: GPL-2.0+ */ -#include <common.h> -#include <spi.h> -#include <spi_flash.h> -#include "sf_internal.h" /* Used when the "_ext_id" is two bytes at most */ @@ -27,7 +23,6 @@ .page_size = 256, \ .flags = (_flags), -/* SPI/QSPI flash device params structure */ const struct spi_flash_info spi_flash_ids[] = {#ifdef CONFIG_SPI_FLASH_ATMEL /* ATMEL */ {"AT45DB011D", INFO(0x1f2200, 0x0, 64 * 1024, 4, SECT_4K) }, --
Quoted 2 lines
2.7.4
Regards,
Simon
PATCH v5 5/21 sf: Cleanup sf_params
Quoted 27 lines · Simon Glass
Hi Jagan,
Quoted 24 lines · Jagan Teki
- Move headers froms
sf_paramsto common header file
- Removed unnecessary commentCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_internal.h | 5 +++-- drivers/mtd/spi/sf_params.c | 5 ----- 2 files changed, 3 insertions(+), 7 deletions(-)drivers/mtd/spi/sf_internal.h +0
-0@@ -10,8 +10,9 @@#ifndef _SF_INTERNAL_H_#define _SF_INTERNAL_H_
Quoted 8 lines
drivers/mtd/spi/sf_internal.h line 15
Quoted 5 lines
drivers/mtd/spi/sf_internal.h +3
-2-#include <linux/types.h> -#include <linux/compiler.h> +#include <common.h> +#include <spi.h> +#include <spi_flash.h> No, these headers should remain in the C file that needs them. Transitive include should be minimised.
OK, will skip this patch.
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 6/21 sf: nr_sectors -> n_sectors
In reply to Jagan TekiRename nr_sectors as n_sectors to sync with Linux.
--- drivers/mtd/spi/sandbox.c | 2 +- drivers/mtd/spi/sf_internal.h | 2 +- drivers/mtd/spi/sf_params.c | 2 +- drivers/mtd/spi/spi_flash.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
drivers/mtd/spi/sandbox.c +1 -1
@@ -289,7 +289,7 @@ static int sandbox_sf_process_cmd(struct sandbox_spi_flash *sbsf, const u8 *rx,/* we only support erase here */ if (sbsf->cmd ==CMD_ERASE_CHIP ) { sbsf->erase_size = sbsf->data->sector_size * - sbsf->data->nr_sectors; + sbsf->data->n_sectors; }else if (sbsf->cmd ==CMD_ERASE_4K && (flags &SECT_4K )) { sbsf->erase_size =4 <<10 ; }else if (sbsf->cmd ==CMD_ERASE_64K && !(flags &SECT_4K )) {
drivers/mtd/spi/sf_internal.h +1 -1
@@ -124,7 +124,7 @@ struct spi_flash_info {* necessarily called a "sector" by the vendor. */ u32 sector_size; -u32 nr_sectors; +u32 n_sectors;u16 page_size;
drivers/mtd/spi/sf_params.c +1 -1
@@ -19,7 +19,7 @@ }, \ .id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0))), \ .sector_size = (_sector_size), \ - .nr_sectors = (_n_sectors), \ + .n_sectors = (_n_sectors), \ .page_size = 256, \ .flags = (_flags),
drivers/mtd/spi/spi_flash.c +1 -1
@@ -1143,7 +1143,7 @@ int spi_flash_scan(struct spi_flash *flash) } flash->page_size <<= flash->shift; flash->sector_size = info->sector_size << flash->shift; - flash->size = flash->sector_size * info->nr_sectors << flash->shift; + flash->size = flash->sector_size * info->n_sectors << flash->shift;#ifdef CONFIG_SF_DUAL_FLASH if (flash->dual_flash &SF_DUAL_STACKED_FLASH ) flash->size <<=1 ;
Signature · 1 line
2.7.4
PATCH v5 6/21 sf: nr_sectors -> n_sectors
Quoted 10 lines · Jagan Teki
Rename
nr_sectorsasn_sectorsto sync with Linux.Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 6 lines
--- drivers/mtd/spi/sandbox.c | 2 +- drivers/mtd/spi/sf_internal.h | 2 +- drivers/mtd/spi/sf_params.c | 2 +- drivers/mtd/spi/spi_flash.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
PATCH v5 7/21 sf: Add SPI_FLASH_MAX_ID_LEN
In reply to Jagan TekiAdd id length of 5 bytes numerical value to macro.
--- drivers/mtd/spi/sf_internal.h | 3 ++- drivers/mtd/spi/spi_flash.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-)
drivers/mtd/spi/sf_internal.h +2 -1
@@ -108,6 +108,7 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,#define JEDEC_MFR (info) ((info)->id[0])#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2]))#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4])) +#define SPI_FLASH_MAX_ID_LEN 5struct spi_flash_info {const char *name;
@@ -117,7 +118,7 @@ struct spi_flash_info {* The first three bytes are the JEDIC ID. * JEDEC ID zero means "no ID" (mostly older chips). */ -u8 id[5 ]; +u8 id[SPI_FLASH_MAX_ID_LEN ];u8 id_len;/* The size listed here is what works with SPINOR_OP_SE, which isn't
drivers/mtd/spi/spi_flash.c +2 -2
@@ -928,10 +928,10 @@ static int micron_quad_enable(struct spi_flash *flash)static const struct spi_flash_info *spi_flash_read_id (struct spi_flash *flash) {int tmp; -u8 id[5 ]; +u8 id[SPI_FLASH_MAX_ID_LEN ];const struct spi_flash_info *info; - tmp =spi_flash_cmd (flash->spi,CMD_READ_ID , id,5 ); + tmp =spi_flash_cmd (flash->spi,CMD_READ_ID , id,SPI_FLASH_MAX_ID_LEN );if (tmp <0 ) {printf ("SF: error %d reading JEDEC ID\n" , tmp);return ERR_PTR (tmp);
Signature · 1 line
2.7.4
PATCH v5 7/21 sf: Add SPI_FLASH_MAX_ID_LEN
Quoted 10 lines · Jagan Teki
Add id length of 5 bytes numerical value to macro.
Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 4 lines
--- drivers/mtd/spi/sf_internal.h | 3 ++- drivers/mtd/spi/spi_flash.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-)
PATCH v5 8/21 sf: Increase max id length by 1 byte
In reply to Jagan TekiSo, now SPI_FLASH_ID_MAX_LEN is 6 bytes useful for few spansion flash families S25FS-S
--- drivers/mtd/spi/sf_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/mtd/spi/sf_internal.h +1 -1
@@ -108,7 +108,7 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,#define JEDEC_MFR (info) ((info)->id[0])#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2]))#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4])) -#define SPI_FLASH_MAX_ID_LEN 5 +#define SPI_FLASH_MAX_ID_LEN 6struct spi_flash_info {const char *name;
Signature · 1 line
2.7.4
PATCH v5 8/21 sf: Increase max id length by 1 byte
Quoted 11 lines · Jagan Teki
So, now
SPI_FLASH_ID_MAX_LENis 6 bytes useful for few spansion flash families S25FS-SCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 3 lines
--- drivers/mtd/spi/sf_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
PATCH v5 9/21 sf: Add INFO6 flash_info macro
In reply to Jagan TekiINFO6 is for tabulating 6 byte flash parts, Ex: S25FS256S_64K
--- drivers/mtd/spi/sf_params.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
drivers/mtd/spi/sf_params.c +15 -0
@@ -23,6 +23,21 @@ .page_size = 256, \ .flags = (_flags), +#define INFO6 (_jedec_id, _ext_id, _sector_size, _n_sectors, _flags) \ + .id = { \ + ((_jedec_id) >> 16) & 0xff, \ + ((_jedec_id) >> 8) & 0xff, \ + (_jedec_id) & 0xff, \ + ((_ext_id) >> 16) & 0xff, \ + ((_ext_id) >> 8) & 0xff, \ + (_ext_id) & 0xff, \ + }, \ + .id_len = 6, \ + .sector_size = (_sector_size), \ + .n_sectors = (_n_sectors), \ + .page_size = 256, \ + .flags = (_flags), +const struct spi_flash_info spi_flash_ids[] = { #ifdef CONFIG_SPI_FLASH_ATMEL /* ATMEL */ {"AT45DB011D", INFO(0x1f2200, 0x0, 64 * 1024, 4, SECT_4K) },
Signature · 1 line
2.7.4
PATCH v5 9/21 sf: Add INFO6 flash_info macro
Quoted 10 lines · Jagan Teki
INFO6 is for tabulating 6 byte flash parts, Ex:
S25FS256S_64KCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 3 lines
--- drivers/mtd/spi/sf_params.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
PATCH v5 10/21 sf: params: Add S25FS256S_64K spi flash support
In reply to Jagan TekiAdd Spansion S25FS256S_64K spi flash to the list of spi_flash_ids.
In spansion S25FS-S family the physical sectors are grouped as normal and parameter sectors. Parameter sectors are 4kB in size with 8 set located at the bottom or top address of a device. Normal sectors are similar to other flash family with sizes of 64kB or 32 kB.
To erase whole flash using sector erase(D8h or DCh) won't effect the parameter sectors, so in order to erase these we must use 4K sector erase commands (20h or 21h) separately.
So better to erase the whole flash using 4K sector erase instead of detecting these family parts again and do two different erase operations.
--- drivers/mtd/spi/sf_params.c | 1 + 1 file changed, 1 insertion(+)
drivers/mtd/spi/sf_params.c +1 -0
@@ -93,6 +93,7 @@ const struct spi_flash_info spi_flash_ids[] = { {"S25FL128S_64K", INFO(0x012018, 0x4d01, 64 * 1024, 256, RD_FULL | WR_QPP) }, {"S25FL256S_256K", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, {"S25FL256S_64K", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, + {"S25FS256S_64K", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, RD_FULL | WR_QPP | SECT_4K) }, {"S25FS512S", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, {"S25FL512S_256K", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) }, {"S25FL512S_64K", INFO(0x010220, 0x4d01, 64 * 1024, 1024, RD_FULL | WR_QPP) },
Signature · 1 line
2.7.4
PATCH v5 10/21 sf: params: Add S25FS256S_64K spi flash support
Quoted 26 lines · Jagan Teki
Add Spansion
S25FS256S_64Kspi flash to the list ofspi_flash_ids.In spansion S25FS-S family the physical sectors are grouped as normal and parameter sectors. Parameter sectors are 4kB in size with 8 set located at the bottom or top address of a device. Normal sectors are similar to other flash family with sizes of 64kB or 32 kB.
To erase whole flash using sector erase(D8h or DCh) won't effect the parameter sectors, so in order to erase these we must use 4K sector erase commands (20h or 21h) separately.
So better to erase the whole flash using 4K sector erase instead of detecting these family parts again and do two different erase operations.
Cc Yunhui Cui <[email protected]>Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Michael Trimarchi <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 3 lines
--- drivers/mtd/spi/sf_params.c | 1 + 1 file changed, 1 insertion(+)
PATCH v5 11/21 sf: Remove legacy idcode detection code
In reply to Jagan TekiSince flash detection code is more mature to
detect even with 6 bytes id length devices
removed old code and related references.
--- drivers/mtd/spi/sf_internal.h | 6 ---- drivers/mtd/spi/spi_flash.c | 78 ------------------------------------------- 2 files changed, 84 deletions(-)
drivers/mtd/spi/sf_internal.h +0 -6
@@ -99,12 +99,6 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len, const void *buf);#endif -#ifdef CONFIG_SPI_FLASH_SPANSION -/* Used for Spansion S25FS-S family flash only. */ -#define CMD_SPANSION_RDAR 0x65/* Read any device register */ -#define CMD_SPANSION_WRAR 0x71/* Write any device register */ -#endif -#define JEDEC_MFR (info) ((info)->id[0])#define JEDEC_ID (info) (((info)->id[1]) << 8 | ((info)->id[2]))#define JEDEC_EXT (info) (((info)->id[3]) << 8 | ((info)->id[4]))
drivers/mtd/spi/spi_flash.c +0 -78
94 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH v5 11/21 sf: Remove legacy idcode detection code
Quoted 14 lines · Jagan Teki
Since flash detection code is more mature to
detect even with 6 bytes id length devices
removed old code and related references.Cc Yunhui Cui <[email protected]>Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Michael Trimarchi <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 4 lines
--- drivers/mtd/spi/sf_internal.h | 6 ---- drivers/mtd/spi/spi_flash.c | 78 ------------------------------------------- 2 files changed, 84 deletions(-)
PATCH v5 12/21 sf: Remove non-meaningful comments
In reply to Jagan Teki--- drivers/mtd/spi/spi_flash.c | 3 --- 1 file changed, 3 deletions(-)
drivers/mtd/spi/spi_flash.c +0 -3
@@ -1015,16 +1015,13 @@ int spi_flash_scan(struct spi_flash *flash) JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_SST)write_sr (flash,0 ); -/* Assign spi data */ flash->name = info->name; flash->memory_map = spi->memory_map; flash->dual_flash = spi->option; -/* Assign spi flash flags */ if (info->flags &SST_WR ) flash->flags |=SNOR_F_SST_WR ; -/* Assign spi_flash ops */ #ifndef CONFIG_DM_SPI_FLASH flash->write = spi_flash_cmd_write_ops;#if defined(CONFIG_SPI_FLASH_SST )
Signature · 1 line
2.7.4
PATCH v5 12/21 sf: Remove non-meaningful comments
Quoted 11 lines · Jagan Teki
Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/spi_flash.c | 3 --- 1 file changed, 3 deletions(-)
Good to have a commit message.
PATCH v5 13/21 sf: Rename sf_params.c to spi_flash_ids
In reply to Jagan Tekispi_flash_ids.c is more meaningful name as the flash_info table structure spi_flash_info has spi_flash_ids instance.
--- drivers/mtd/spi/Makefile | 2 +- drivers/mtd/spi/spi_flash_ids.c | 176 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 drivers/mtd/spi/spi_flash_ids.c
drivers/mtd/spi/Makefile +1 -1
@@ -12,7 +12,7 @@ obj-$(CONFIG_SPL_SPI_BOOT) += fsl_espi_spl.o obj-$(CONFIG_SPL_SPI_SUNXI) += sunxi_spi_spl.o endif -obj-$(CONFIG_SPI_FLASH) += sf_probe.o spi_flash.o sf_params.o sf.o +obj-$(CONFIG_SPI_FLASH) += sf_probe.o spi_flash.o spi_flash_ids.o sf.o obj-$(CONFIG_SPI_FLASH_DATAFLASH) += sf_dataflash.o obj-$(CONFIG_SPI_FLASH_MTD) += sf_mtd.o obj-$(CONFIG_SPI_FLASH_SANDBOX) += sandbox.o
drivers/mtd/spi/spi_flash_ids.c new file +176 -0
176 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH v5 13/21 sf: Rename sf_params.c to spi_flash_ids
Hi Jagan,
Quoted 11 lines · Jagan Teki
spi_flash_ids.cis more meaningful name as theflash_infotable structurespi_flash_infohasspi_flash_idsinstance.Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 5 lines
--- drivers/mtd/spi/Makefile | 2 +- drivers/mtd/spi/spi_flash_ids.c | 176 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 drivers/mtd/spi/spi_flash_ids.c
Where did this code come from? Is it a rename of an existing file?
Regards,
Simon
PATCH v5 13/21 sf: Rename sf_params.c to spi_flash_ids
Hi Simon,
Quoted 20 lines · Simon Glass
Hi Jagan,
Quoted 11 lines · Jagan Teki
spi_flash_ids.cis more meaningful name as theflash_infotable structurespi_flash_infohasspi_flash_idsinstance.Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>Quoted 5 lines
--- drivers/mtd/spi/Makefile | 2 +- drivers/mtd/spi/spi_flash_ids.c | 176 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 drivers/mtd/spi/spi_flash_ids.c
Quoted 1 line
Where did this code come from? Is it a rename of an existing file?
Yes, the existing sf_params.c and will update the patch by removing the same.
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 14/21 sf: ids: Use small letter's with flash name
In reply to Jagan TekiFor readability use small letter's with flash name.
--- drivers/mtd/spi/spi_flash_ids.c | 220 ++++++++++++++++++++-------------------- 1 file changed, 110 insertions(+), 110 deletions(-)
drivers/mtd/spi/spi_flash_ids.c +110 -110
@@ -41,136 +41,136 @@const struct spi_flash_info spi_flash_ids[] = { #ifdef CONFIG_SPI_FLASH_ATMEL /* ATMEL */ - {"AT45DB011D" ,INFO (0x1f2200 ,0x0 ,64 *1024 ,4 ,SECT_4K ) }, - {"AT45DB021D" ,INFO (0x1f2300 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, - {"AT45DB041D" ,INFO (0x1f2400 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, - {"AT45DB081D" ,INFO (0x1f2500 ,0x0 ,64 *1024 ,16 ,SECT_4K ) }, - {"AT45DB161D" ,INFO (0x1f2600 ,0x0 ,64 *1024 ,32 ,SECT_4K ) }, - {"AT45DB321D" ,INFO (0x1f2700 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, - {"AT45DB641D" ,INFO (0x1f2800 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, - {"AT25DF321A" ,INFO (0x1f4701 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, - {"AT25DF321" ,INFO (0x1f4700 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, - {"AT26DF081A" ,INFO (0x1f4501 ,0x0 ,64 *1024 ,16 ,SECT_4K ) }, + {"at45db011d" ,INFO (0x1f2200 ,0x0 ,64 *1024 ,4 ,SECT_4K ) }, + {"at45db021d" ,INFO (0x1f2300 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, + {"at45db041d" ,INFO (0x1f2400 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, + {"at45db081d" ,INFO (0x1f2500 ,0x0 ,64 *1024 ,16 ,SECT_4K ) }, + {"at45db161d" ,INFO (0x1f2600 ,0x0 ,64 *1024 ,32 ,SECT_4K ) }, + {"at45db321d" ,INFO (0x1f2700 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, + {"at45db641d" ,INFO (0x1f2800 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, + {"at25df321a" ,INFO (0x1f4701 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, + {"at25df321" ,INFO (0x1f4700 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, + {"at26df081a" ,INFO (0x1f4501 ,0x0 ,64 *1024 ,16 ,SECT_4K ) }, #endif #ifdef CONFIG_SPI_FLASH_EON /* EON */ - {"EN25Q32B" ,INFO (0x1c3016 ,0x0 ,64 *1024 ,64 ,0 ) }, - {"EN25Q64" ,INFO (0x1c3017 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, - {"EN25Q128B" ,INFO (0x1c3018 ,0x0 ,64 *1024 ,256 ,0 ) }, - {"EN25S64" ,INFO (0x1c3817 ,0x0 ,64 *1024 ,128 ,0 ) }, + {"en25q32b" ,INFO (0x1c3016 ,0x0 ,64 *1024 ,64 ,0 ) }, + {"en25q64" ,INFO (0x1c3017 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, + {"en25q128b" ,INFO (0x1c3018 ,0x0 ,64 *1024 ,256 ,0 ) }, + {"en25s64" ,INFO (0x1c3817 ,0x0 ,64 *1024 ,128 ,0 ) }, #endif #ifdef CONFIG_SPI_FLASH_GIGADEVICE /* GIGADEVICE */ - {"GD25Q64B" ,INFO (0xc84017 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, - {"GD25LQ32" ,INFO (0xc86016 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, + {"gd25q64b" ,INFO (0xc84017 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, + {"gd25lq32" ,INFO (0xc86016 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, #endif #ifdef CONFIG_SPI_FLASH_ISSI /* ISSI */ - {"IS25LP032" ,INFO (0x9d6016 ,0x0 ,64 *1024 ,64 ,0 ) }, - {"IS25LP064" ,INFO (0x9d6017 ,0x0 ,64 *1024 ,128 ,0 ) }, - {"IS25LP128" ,INFO (0x9d6018 ,0x0 ,64 *1024 ,256 ,0 ) }, + {"is25lp032" ,INFO (0x9d6016 ,0x0 ,64 *1024 ,64 ,0 ) }, + {"is25lp064" ,INFO (0x9d6017 ,0x0 ,64 *1024 ,128 ,0 ) }, + {"is25lp128" ,INFO (0x9d6018 ,0x0 ,64 *1024 ,256 ,0 ) }, #endif #ifdef CONFIG_SPI_FLASH_MACRONIX /* MACRONIX */ - {"MX25L2006E" ,INFO (0xc22012 ,0x0 ,64 *1024 ,4 ,0 ) }, - {"MX25L4005" ,INFO (0xc22013 ,0x0 ,64 *1024 ,8 ,0 ) }, - {"MX25L8005" ,INFO (0xc22014 ,0x0 ,64 *1024 ,16 ,0 ) }, - {"MX25L1605D" ,INFO (0xc22015 ,0x0 ,64 *1024 ,32 ,0 ) }, - {"MX25L3205D" ,INFO (0xc22016 ,0x0 ,64 *1024 ,64 ,0 ) }, - {"MX25L6405D" ,INFO (0xc22017 ,0x0 ,64 *1024 ,128 ,0 ) }, - {"MX25L12805" ,INFO (0xc22018 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, - {"MX25L25635F" ,INFO (0xc22019 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP ) }, - {"MX25L51235F" ,INFO (0xc2201a ,0x0 ,64 *1024 ,1024 ,RD_FULL |WR_QPP ) }, - {"MX25L12855E" ,INFO (0xc22618 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"mx25l2006e" ,INFO (0xc22012 ,0x0 ,64 *1024 ,4 ,0 ) }, + {"mx25l4005" ,INFO (0xc22013 ,0x0 ,64 *1024 ,8 ,0 ) }, + {"mx25l8005" ,INFO (0xc22014 ,0x0 ,64 *1024 ,16 ,0 ) }, + {"mx25l1605d" ,INFO (0xc22015 ,0x0 ,64 *1024 ,32 ,0 ) }, + {"mx25l3205d" ,INFO (0xc22016 ,0x0 ,64 *1024 ,64 ,0 ) }, + {"mx25l6405d" ,INFO (0xc22017 ,0x0 ,64 *1024 ,128 ,0 ) }, + {"mx25l12805" ,INFO (0xc22018 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"mx25l25635f" ,INFO (0xc22019 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP ) }, + {"mx25l51235f" ,INFO (0xc2201a ,0x0 ,64 *1024 ,1024 ,RD_FULL |WR_QPP ) }, + {"mx25l12855e" ,INFO (0xc22618 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, #endif #ifdef CONFIG_SPI_FLASH_SPANSION /* SPANSION */ - {"S25FL008A" ,INFO (0x010213 ,0x0 ,64 *1024 ,16 ,0 ) }, - {"S25FL016A" ,INFO (0x010214 ,0x0 ,64 *1024 ,32 ,0 ) }, - {"S25FL032A" ,INFO (0x010215 ,0x0 ,64 *1024 ,64 ,0 ) }, - {"S25FL064A" ,INFO (0x010216 ,0x0 ,64 *1024 ,128 ,0 ) }, - {"S25FL116K" ,INFO (0x014015 ,0x0 ,64 *1024 ,128 ,0 ) }, - {"S25FL164K" ,INFO (0x014017 ,0x0140 ,64 *1024 ,128 ,0 ) }, - {"S25FL128P_256K" ,INFO (0x012018 ,0x0300 ,256 *1024 ,64 ,RD_FULL |WR_QPP ) }, - {"S25FL128P_64K" ,INFO (0x012018 ,0x0301 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, - {"S25FL032P" ,INFO (0x010215 ,0x4d00 ,64 *1024 ,64 ,RD_FULL |WR_QPP ) }, - {"S25FL064P" ,INFO (0x010216 ,0x4d00 ,64 *1024 ,128 ,RD_FULL |WR_QPP ) }, - {"S25FL128S_256K" ,INFO (0x012018 ,0x4d00 ,256 *1024 ,64 ,RD_FULL |WR_QPP ) }, - {"S25FL128S_64K" ,INFO (0x012018 ,0x4d01 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, - {"S25FL256S_256K" ,INFO (0x010219 ,0x4d00 ,256 *1024 ,128 ,RD_FULL |WR_QPP ) }, - {"S25FL256S_64K" ,INFO (0x010219 ,0x4d01 ,64 *1024 ,512 ,RD_FULL |WR_QPP ) }, - {"S25FS256S_64K" ,INFO6 (0x010219 ,0x4d0181 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"S25FS512S" ,INFO (0x010220 ,0x4D00 ,128 *1024 ,512 ,RD_FULL |WR_QPP ) }, - {"S25FL512S_256K" ,INFO (0x010220 ,0x4d00 ,256 *1024 ,256 ,RD_FULL |WR_QPP ) }, - {"S25FL512S_64K" ,INFO (0x010220 ,0x4d01 ,64 *1024 ,1024 ,RD_FULL |WR_QPP ) }, - {"S25FL512S_512K" ,INFO (0x010220 ,0x4f00 ,256 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"s25fl008a" ,INFO (0x010213 ,0x0 ,64 *1024 ,16 ,0 ) }, + {"s25fl016a" ,INFO (0x010214 ,0x0 ,64 *1024 ,32 ,0 ) }, + {"s25fl032a" ,INFO (0x010215 ,0x0 ,64 *1024 ,64 ,0 ) }, + {"s25fl064a" ,INFO (0x010216 ,0x0 ,64 *1024 ,128 ,0 ) }, + {"s25fl116k" ,INFO (0x014015 ,0x0 ,64 *1024 ,128 ,0 ) }, + {"s25fl164k" ,INFO (0x014017 ,0x0140 ,64 *1024 ,128 ,0 ) }, + {"s25fl128p_256k" ,INFO (0x012018 ,0x0300 ,256 *1024 ,64 ,RD_FULL |WR_QPP ) }, + {"s25fl128p_64k" ,INFO (0x012018 ,0x0301 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"s25fl032p" ,INFO (0x010215 ,0x4d00 ,64 *1024 ,64 ,RD_FULL |WR_QPP ) }, + {"s25fl064p" ,INFO (0x010216 ,0x4d00 ,64 *1024 ,128 ,RD_FULL |WR_QPP ) }, + {"s25fl128s_256k" ,INFO (0x012018 ,0x4d00 ,256 *1024 ,64 ,RD_FULL |WR_QPP ) }, + {"s25fl128s_64k" ,INFO (0x012018 ,0x4d01 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"s25fl256s_256k" ,INFO (0x010219 ,0x4d00 ,256 *1024 ,128 ,RD_FULL |WR_QPP ) }, + {"s25fl256s_64k" ,INFO (0x010219 ,0x4d01 ,64 *1024 ,512 ,RD_FULL |WR_QPP ) }, + {"s25s256s_64k" ,INFO6 (0x010219 ,0x4d0181 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"s25s512s" ,INFO (0x010220 ,0x4D00 ,128 *1024 ,512 ,RD_FULL |WR_QPP ) }, + {"s25fl512s_256k" ,INFO (0x010220 ,0x4d00 ,256 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"s25fl512s_64k" ,INFO (0x010220 ,0x4d01 ,64 *1024 ,1024 ,RD_FULL |WR_QPP ) }, + {"s25fl512s_512k" ,INFO (0x010220 ,0x4f00 ,256 *1024 ,256 ,RD_FULL |WR_QPP ) }, #endif #ifdef CONFIG_SPI_FLASH_STMICRO /* STMICRO */ - {"M25P10" ,INFO (0x202011 ,0x0 ,32 *1024 ,4 ,0 ) }, - {"M25P20" ,INFO (0x202012 ,0x0 ,64 *1024 ,4 ,0 ) }, - {"M25P40" ,INFO (0x202013 ,0x0 ,64 *1024 ,8 ,0 ) }, - {"M25P80" ,INFO (0x202014 ,0x0 ,64 *1024 ,16 ,0 ) }, - {"M25P16" ,INFO (0x202015 ,0x0 ,64 *1024 ,32 ,0 ) }, - {"M25PE16" ,INFO (0x208015 ,0x1000 ,64 *1024 ,32 ,0 ) }, - {"M25PX16" ,INFO (0x207115 ,0x1000 ,64 *1024 ,32 ,RD_QUAD |RD_DUAL ) }, - {"M25P32" ,INFO (0x202016 ,0x0 ,64 *1024 ,64 ,0 ) }, - {"M25P64" ,INFO (0x202017 ,0x0 ,64 *1024 ,128 ,0 ) }, - {"M25P128" ,INFO (0x202018 ,0x0 ,256 *1024 ,64 ,0 ) }, - {"M25PX64" ,INFO (0x207117 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, - {"N25Q016A" ,INFO (0x20bb15 ,0x0 ,64 *1024 ,32 ,SECT_4K ) }, - {"N25Q32" ,INFO (0x20ba16 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"N25Q32A" ,INFO (0x20bb16 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"N25Q64" ,INFO (0x20ba17 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"N25Q64A" ,INFO (0x20bb17 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"N25Q128" ,INFO (0x20ba18 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, - {"N25Q128A" ,INFO (0x20bb18 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, - {"N25Q256" ,INFO (0x20ba19 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"N25Q256A" ,INFO (0x20bb19 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"N25Q512" ,INFO (0x20ba20 ,0x0 ,64 *1024 ,1024 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, - {"N25Q512A" ,INFO (0x20bb20 ,0x0 ,64 *1024 ,1024 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, - {"N25Q1024" ,INFO (0x20ba21 ,0x0 ,64 *1024 ,2048 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, - {"N25Q1024A" ,INFO (0x20bb21 ,0x0 ,64 *1024 ,2048 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, + {"m25p10" ,INFO (0x202011 ,0x0 ,32 *1024 ,4 ,0 ) }, + {"m25p20" ,INFO (0x202012 ,0x0 ,64 *1024 ,4 ,0 ) }, + {"m25p40" ,INFO (0x202013 ,0x0 ,64 *1024 ,8 ,0 ) }, + {"m25p80" ,INFO (0x202014 ,0x0 ,64 *1024 ,16 ,0 ) }, + {"m25p16" ,INFO (0x202015 ,0x0 ,64 *1024 ,32 ,0 ) }, + {"m25pE16" ,INFO (0x208015 ,0x1000 ,64 *1024 ,32 ,0 ) }, + {"m25pX16" ,INFO (0x207115 ,0x1000 ,64 *1024 ,32 ,RD_QUAD |RD_DUAL ) }, + {"m25p32" ,INFO (0x202016 ,0x0 ,64 *1024 ,64 ,0 ) }, + {"m25p64" ,INFO (0x202017 ,0x0 ,64 *1024 ,128 ,0 ) }, + {"m25p128" ,INFO (0x202018 ,0x0 ,256 *1024 ,64 ,0 ) }, + {"m25pX64" ,INFO (0x207117 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, + {"n25q016a" ,INFO (0x20bb15 ,0x0 ,64 *1024 ,32 ,SECT_4K ) }, + {"n25q32" ,INFO (0x20ba16 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"n25q32a" ,INFO (0x20bb16 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"n25q64" ,INFO (0x20ba17 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"n25q64a" ,INFO (0x20bb17 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"n25q128" ,INFO (0x20ba18 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"n25q128a" ,INFO (0x20bb18 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP ) }, + {"n25q256" ,INFO (0x20ba19 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"n25q256a" ,INFO (0x20bb19 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"n25q512" ,INFO (0x20ba20 ,0x0 ,64 *1024 ,1024 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, + {"n25q512a" ,INFO (0x20bb20 ,0x0 ,64 *1024 ,1024 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, + {"n25q1024" ,INFO (0x20ba21 ,0x0 ,64 *1024 ,2048 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, + {"n25q1024a" ,INFO (0x20bb21 ,0x0 ,64 *1024 ,2048 ,RD_FULL |WR_QPP |E_FSR |SECT_4K ) }, #endif #ifdef CONFIG_SPI_FLASH_SST /* SST */ - {"SST25VF040B" ,INFO (0xbf258d ,0x0 ,64 *1024 ,8 ,SECT_4K |SST_WR ) }, - {"SST25VF080B" ,INFO (0xbf258e ,0x0 ,64 *1024 ,16 ,SECT_4K |SST_WR ) }, - {"SST25VF016B" ,INFO (0xbf2541 ,0x0 ,64 *1024 ,32 ,SECT_4K |SST_WR ) }, - {"SST25VF032B" ,INFO (0xbf254a ,0x0 ,64 *1024 ,64 ,SECT_4K |SST_WR ) }, - {"SST25VF064C" ,INFO (0xbf254b ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, - {"SST25WF512" ,INFO (0xbf2501 ,0x0 ,64 *1024 ,1 ,SECT_4K |SST_WR ) }, - {"SST25WF010" ,INFO (0xbf2502 ,0x0 ,64 *1024 ,2 ,SECT_4K |SST_WR ) }, - {"SST25WF020" ,INFO (0xbf2503 ,0x0 ,64 *1024 ,4 ,SECT_4K |SST_WR ) }, - {"SST25WF040" ,INFO (0xbf2504 ,0x0 ,64 *1024 ,8 ,SECT_4K |SST_WR ) }, - {"SST25WF040B" ,INFO (0x621613 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, - {"SST25WF080" ,INFO (0xbf2505 ,0x0 ,64 *1024 ,16 ,SECT_4K |SST_WR ) }, + {"sst25vf040b" ,INFO (0xbf258d ,0x0 ,64 *1024 ,8 ,SECT_4K |SST_WR ) }, + {"sst25vf080b" ,INFO (0xbf258e ,0x0 ,64 *1024 ,16 ,SECT_4K |SST_WR ) }, + {"sst25vf016b" ,INFO (0xbf2541 ,0x0 ,64 *1024 ,32 ,SECT_4K |SST_WR ) }, + {"sst25vf032b" ,INFO (0xbf254a ,0x0 ,64 *1024 ,64 ,SECT_4K |SST_WR ) }, + {"sst25vf064c" ,INFO (0xbf254b ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, + {"sst25wf512" ,INFO (0xbf2501 ,0x0 ,64 *1024 ,1 ,SECT_4K |SST_WR ) }, + {"sst25wf010" ,INFO (0xbf2502 ,0x0 ,64 *1024 ,2 ,SECT_4K |SST_WR ) }, + {"sst25wf020" ,INFO (0xbf2503 ,0x0 ,64 *1024 ,4 ,SECT_4K |SST_WR ) }, + {"sst25wf040" ,INFO (0xbf2504 ,0x0 ,64 *1024 ,8 ,SECT_4K |SST_WR ) }, + {"sst25wf040b" ,INFO (0x621613 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, + {"sst25wf080" ,INFO (0xbf2505 ,0x0 ,64 *1024 ,16 ,SECT_4K |SST_WR ) }, #endif #ifdef CONFIG_SPI_FLASH_WINBOND /* WINBOND */ - {"W25P80" ,INFO (0xef2014 ,0x0 ,64 *1024 ,16 ,0 ) }, - {"W25P16" ,INFO (0xef2015 ,0x0 ,64 *1024 ,32 ,0 ) }, - {"W25P32" ,INFO (0xef2016 ,0x0 ,64 *1024 ,64 ,0 ) }, - {"W25X40" ,INFO (0xef3013 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, - {"W25X16" ,INFO (0xef3015 ,0x0 ,64 *1024 ,32 ,SECT_4K ) }, - {"W25X32" ,INFO (0xef3016 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, - {"W25X64" ,INFO (0xef3017 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, - {"W25Q80BL" ,INFO (0xef4014 ,0x0 ,64 *1024 ,16 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q16CL" ,INFO (0xef4015 ,0x0 ,64 *1024 ,32 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q32BV" ,INFO (0xef4016 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q64CV" ,INFO (0xef4017 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q128BV" ,INFO (0xef4018 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q256" ,INFO (0xef4019 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q80BW" ,INFO (0xef5014 ,0x0 ,64 *1024 ,16 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q16DW" ,INFO (0xef6015 ,0x0 ,64 *1024 ,32 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q32DW" ,INFO (0xef6016 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q64DW" ,INFO (0xef6017 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, - {"W25Q128FW" ,INFO (0xef6018 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25p80" ,INFO (0xef2014 ,0x0 ,64 *1024 ,16 ,0 ) }, + {"w25p16" ,INFO (0xef2015 ,0x0 ,64 *1024 ,32 ,0 ) }, + {"w25p32" ,INFO (0xef2016 ,0x0 ,64 *1024 ,64 ,0 ) }, + {"w25x40" ,INFO (0xef3013 ,0x0 ,64 *1024 ,8 ,SECT_4K ) }, + {"w25x16" ,INFO (0xef3015 ,0x0 ,64 *1024 ,32 ,SECT_4K ) }, + {"w25x32" ,INFO (0xef3016 ,0x0 ,64 *1024 ,64 ,SECT_4K ) }, + {"w25x64" ,INFO (0xef3017 ,0x0 ,64 *1024 ,128 ,SECT_4K ) }, + {"w25q80bl" ,INFO (0xef4014 ,0x0 ,64 *1024 ,16 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q16cl" ,INFO (0xef4015 ,0x0 ,64 *1024 ,32 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q32bv" ,INFO (0xef4016 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q64cv" ,INFO (0xef4017 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q128bv" ,INFO (0xef4018 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q256" ,INFO (0xef4019 ,0x0 ,64 *1024 ,512 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q80bw" ,INFO (0xef5014 ,0x0 ,64 *1024 ,16 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q16dw" ,INFO (0xef6015 ,0x0 ,64 *1024 ,32 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q32dw" ,INFO (0xef6016 ,0x0 ,64 *1024 ,64 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q64dw" ,INFO (0xef6017 ,0x0 ,64 *1024 ,128 ,RD_FULL |WR_QPP |SECT_4K ) }, + {"w25q128fw" ,INFO (0xef6018 ,0x0 ,64 *1024 ,256 ,RD_FULL |WR_QPP |SECT_4K ) }, #endif {},/* Empty entry to terminate the list */ /* * Note: * Below paired flash devices has similar spi_flash params. -* (S25FL129P_64K, S25FL128S_64K) -* (W25Q80BL, W25Q80BV) -* (W25Q16CL, W25Q16DV) -* (W25Q32BV, W25Q32FV_SPI) -* (W25Q64CV, W25Q64FV_SPI) -* (W25Q128BV, W25Q128FV_SPI) -* (W25Q32DW, W25Q32FV_QPI) -* (W25Q64DW, W25Q64FV_QPI) -* (W25Q128FW, W25Q128FV_QPI) +* (s25fl129p_64k, s25fl128s_64k) +* (w25q80bl, w25q80bv) +* (w25q16cl, w25q16dv) +* (w25q32bv, w25q32fv_spi) +* (w25q64cv, w25q64fv_spi) +* (w25q128bv, w25q128fv_spi) +* (w25q32dw, w25q32fv_qpi) +* (w25q64dw, w25q64fv_qpi) +* (w25q128fw, w25q128fv_qpi) */ };
Signature · 1 line
2.7.4
PATCH v5 14/21 sf: ids: Use small letter's with flash name
Quoted 10 lines · Jagan Teki
For readability use small letter's with flash name.
Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 3 lines
--- drivers/mtd/spi/spi_flash_ids.c | 220 ++++++++++++++++++++-------------------- 1 file changed, 110 insertions(+), 110 deletions(-)
PATCH v5 15/21 sf: ids: Use small letter in ext_jedec
In reply to Jagan TekiUse small 'd' in s25s512s ext_jedec
--- drivers/mtd/spi/spi_flash_ids.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/mtd/spi/spi_flash_ids.c +1 -1
@@ -95,7 +95,7 @@ const struct spi_flash_info spi_flash_ids[] = { {"s25fl256s_256k", INFO(0x010219, 0x4d00, 256 * 1024, 128, RD_FULL | WR_QPP) }, {"s25fl256s_64k", INFO(0x010219, 0x4d01, 64 * 1024, 512, RD_FULL | WR_QPP) }, {"s25s256s_64k", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, RD_FULL | WR_QPP | SECT_4K) }, - {"s25s512s", INFO(0x010220, 0x4D00, 128 * 1024, 512, RD_FULL | WR_QPP) }, + {"s25s512s", INFO(0x010220, 0x4d00, 128 * 1024, 512, RD_FULL | WR_QPP) }, {"s25fl512s_256k", INFO(0x010220, 0x4d00, 256 * 1024, 256, RD_FULL | WR_QPP) }, {"s25fl512s_64k", INFO(0x010220, 0x4d01, 64 * 1024, 1024, RD_FULL | WR_QPP) }, {"s25fl512s_512k", INFO(0x010220, 0x4f00, 256 * 1024, 256, RD_FULL | WR_QPP) },
Signature · 1 line
2.7.4
PATCH v5 15/21 sf: ids: Use small letter in ext_jedec
Quoted 10 lines · Jagan Teki
Use small 'd' in s25s512s
ext_jedecCc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 3 lines
--- drivers/mtd/spi/spi_flash_ids.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
PATCH v5 16/21 sf: Rename few local functions
In reply to Jagan Tekispi_flash_write_bar-> write_bar spi_flash_write_bar -> read_bar spi_flash_cmd_wait_ready -> spi_flash_wait_till_ready
--- drivers/mtd/spi/sf_internal.h | 2 +- drivers/mtd/spi/spi_flash.c | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-)
drivers/mtd/spi/sf_internal.h +1 -1
@@ -184,7 +184,7 @@ static inline int spi_flash_cmd_write_disable(struct spi_flash *flash)* - SPI claim * - spi_flash_cmd_write_enable * - spi_flash_cmd_write -* - spi_flash_cmd_wait_ready +* - spi_flash_wait_till_ready * - SPI release */ int spi_flash_write_common(struct spi_flash *flash, const u8 *cmd,
drivers/mtd/spi/spi_flash.c +11 -12
@@ -144,7 +144,7 @@ static int write_evcr(struct spi_flash *flash, u8 evcr)#endif #ifdef CONFIG_SPI_FLASH_BAR -static int spi_flash_write_bar (struct spi_flash *flash,u32 offset) +static int write_bar (struct spi_flash *flash,u32 offset) {u8 cmd, bank_sel;int ret;
@@ -165,8 +165,7 @@ bar_end:return flash->bank_curr; } -static int spi_flash_read_bar (struct spi_flash *flash, -const struct spi_flash_info *info) +static int read_bar (struct spi_flash *flash,const struct spi_flash_info *info) {u8 curr_bank =0 ;int ret;
@@ -263,8 +262,8 @@ static int spi_flash_ready(struct spi_flash *flash)return sr && fsr; } -static int spi_flash_cmd_wait_ready (struct spi_flash *flash, -unsigned long timeout) +static int spi_flash_wait_till_ready (struct spi_flash *flash, +unsigned long timeout) {unsigned long timebase;int ret;
@@ -312,7 +311,7 @@ int spi_flash_write_common(struct spi_flash *flash, const u8 *cmd,return ret; } - ret =spi_flash_cmd_wait_ready (flash, timeout); + ret =spi_flash_wait_till_ready (flash, timeout);if (ret <0 ) { debug("SF: write %s timed out\n", timeout == SPI_FLASH_PROG_TIMEOUT ?
@@ -354,7 +353,7 @@ int spi_flash_cmd_erase_ops(struct spi_flash *flash, u32 offset, size_t len)spi_flash_dual (flash, &erase_addr);#endif #ifdef CONFIG_SPI_FLASH_BAR - ret =spi_flash_write_bar (flash, erase_addr); + ret =write_bar (flash, erase_addr);if (ret <0 )return ret;#endif
@@ -405,7 +404,7 @@ int spi_flash_cmd_write_ops(struct spi_flash *flash, u32 offset,spi_flash_dual (flash, &write_addr);#endif #ifdef CONFIG_SPI_FLASH_BAR - ret =spi_flash_write_bar (flash, write_addr); + ret =write_bar (flash, write_addr);if (ret <0 )return ret;#endif
@@ -509,7 +508,7 @@ int spi_flash_cmd_read_ops(struct spi_flash *flash, u32 offset,spi_flash_dual (flash, &read_addr);#endif #ifdef CONFIG_SPI_FLASH_BAR - ret =spi_flash_write_bar (flash, read_addr); + ret =write_bar (flash, read_addr);if (ret <0 )return ret; bank_sel = flash->bank_curr;
@@ -561,7 +560,7 @@ static int sst_byte_write(struct spi_flash *flash, u32 offset, const void *buf)if (ret)return ret; -return spi_flash_cmd_wait_ready (flash,SPI_FLASH_PROG_TIMEOUT ); +return spi_flash_wait_till_ready (flash,SPI_FLASH_PROG_TIMEOUT ); } int sst_write_wp(struct spi_flash *flash, u32 offset, size_t len,
@@ -609,7 +608,7 @@ int sst_write_wp(struct spi_flash *flash, u32 offset, size_t len,break ; } - ret =spi_flash_cmd_wait_ready (flash,SPI_FLASH_PROG_TIMEOUT ); + ret =spi_flash_wait_till_ready (flash,SPI_FLASH_PROG_TIMEOUT );if (ret)break ;
@@ -1137,7 +1136,7 @@ int spi_flash_scan(struct spi_flash *flash)/* Configure the BAR - discover bank cmds and read current bank */ #ifdef CONFIG_SPI_FLASH_BAR - ret =spi_flash_read_bar (flash, info); + ret =read_bar (flash, info);if (ret <0 )return ret;#endif
Signature · 1 line
2.7.4
PATCH v5 16/21 sf: Rename few local functions
Quoted 3 lines · Jagan Teki
spi_flash_write_bar->
write_barspi_flash_write_bar->read_barspi_flash_cmd_wait_ready->spi_flash_wait_till_ready
nit: how about wait_until_ready or wait_ready? 'till' is an abreviation
Quoted 9 lines
Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 4 lines
--- drivers/mtd/spi/sf_internal.h | 2 +- drivers/mtd/spi/spi_flash.c | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-)
PATCH v5 17/21 spi: Remove dual flash code
In reply to Jagan TekiDual flash code in spi are usually take the spi controller to work with dual connected flash devices. Usually these dual connection operation's are referred to flash controller protocol rather with spi controller protocol, these are still present in flash side for the usage of spi-nor controllers.
--- drivers/mtd/spi/sf.c | 4 ---- drivers/mtd/spi/spi_flash.c | 1 - include/spi.h | 6 ------ 3 files changed, 11 deletions(-)
drivers/mtd/spi/sf.c +0 -4
@@ -18,10 +18,6 @@ static int spi_flash_read_write(struct spi_slave *spi,unsigned long flags =SPI_XFER_BEGIN ;int ret; -#ifdef CONFIG_SF_DUAL_FLASH -if (spi->flags &SPI_XFER_U_PAGE ) - flags |=SPI_XFER_U_PAGE ; -#endif if (data_len ==0 ) flags |=SPI_XFER_END ;
drivers/mtd/spi/spi_flash.c +0 -1
@@ -1016,7 +1016,6 @@ int spi_flash_scan(struct spi_flash *flash) flash->name = info->name; flash->memory_map = spi->memory_map; - flash->dual_flash = spi->option;if (info->flags &SST_WR ) flash->flags |=SNOR_F_SST_WR ;
include/spi.h +0 -6
@@ -30,10 +30,6 @@#define SPI_RX_DUAL BIT(12)/* receive with 2 wires */ #define SPI_RX_QUAD BIT(13)/* receive with 4 wires */ -/* SPI bus connection options - see enum spi_dual_flash */ -#define SPI_CONN_DUAL_SHARED (1 << 0) -#define SPI_CONN_DUAL_SEPARATED (1 << 1) -/* Header byte that marks the start of the message */ #define SPI_PREAMBLE_END_BYTE 0xec
@@ -93,7 +89,6 @@ struct dm_spi_slave_platdata {* @max_write_size: If non-zero, the maximum number of bytes which can * be written@once, excluding command bytes. * @memory_map: Address of read-only SPI flash access. -* @option: Varies SPI bus options - separate, shared bus. * @flags: Indication of SPI flags. */ struct spi_slave {
@@ -117,7 +112,6 @@ struct spi_slave {#define SPI_XFER_ONCE (SPI_XFER_BEGIN | SPI_XFER_END)#define SPI_XFER_MMAP BIT(2)/* Memory Mapped start */ #define SPI_XFER_MMAP_END BIT(3)/* Memory Mapped End */ -#define SPI_XFER_U_PAGE BIT(4) };/**
Signature · 1 line
2.7.4
PATCH v5 17/21 spi: Remove dual flash code
Hi Jagan,
Quoted 5 lines · Jagan Teki
Dual flash code in spi are usually take the spi controller to work with dual connected flash devices. Usually these dual connection operation's are referred to flash controller protocol rather with spi controller protocol, these are still present in flash side for the usage of spi-nor controllers.
That seems like good background information.
But after that you should write what this patch does. It seems like we are missing the purpose of this patch, or are left to infer it.
Quoted 9 lines
Cc Simon Glass <[email protected]>Cc Bin Meng <[email protected]>Cc York Sun <[email protected]>Cc Vignesh R <[email protected]>Cc Mugunthan V N <[email protected]>Cc Michal Simek <[email protected]>Cc Siva Durga Prasad Paladugu <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Quoted 6 lines
--- drivers/mtd/spi/sf.c | 4 ---- drivers/mtd/spi/spi_flash.c | 1 - include/spi.h | 6 ------ 3 files changed, 11 deletions(-)
Quoted 61 lines
drivers/mtd/spi/sf.c +0
-4@@ -18,10 +18,6 @@ static int spi_flash_read_write(struct spi_slave *spi,unsigned long flags =SPI_XFER_BEGIN ;int ret; -#ifdef CONFIG_SF_DUAL_FLASH -if (spi->flags &SPI_XFER_U_PAGE ) - flags |=SPI_XFER_U_PAGE ; -#endif if (data_len ==0 ) flags |=SPI_XFER_END ;drivers/mtd/spi/spi_flash.c +0
-1@@ -1016,7 +1016,6 @@ int spi_flash_scan(struct spi_flash *flash) flash->name = info->name; flash->memory_map = spi->memory_map; - flash->dual_flash = spi->option;if (info->flags &SST_WR ) flash->flags |=SNOR_F_SST_WR ;include/spi.h +0
-7@@ -30,10 +30,6 @@#define SPI_RX_DUAL BIT(12)/* receive with 2 wires */ #define SPI_RX_QUAD BIT(13)/* receive with 4 wires */ -/* SPI bus connection options - see enum spi_dual_flash */ -#define SPI_CONN_DUAL_SHARED (1 << 0) -#define SPI_CONN_DUAL_SEPARATED (1 << 1) -/* Header byte that marks the start of the message */ #define SPI_PREAMBLE_END_BYTE 0xec@@ -93,7 +89,6 @@ struct dm_spi_slave_platdata {* @max_write_size: If non-zero, the maximum number of bytes which can * be written at once, excluding command bytes. * @memory_map: Address of read-only SPI flash access. -* @option: Varies SPI bus options - separate, shared bus. * @flags: Indication of SPI flags. */ struct spi_slave {@@ -117,7 +112,6 @@ struct spi_slave {#define SPI_XFER_ONCE (SPI_XFER_BEGIN | SPI_XFER_END)#define SPI_XFER_MMAP BIT(2)/* Memory Mapped start */ #define SPI_XFER_MMAP_END BIT(3)/* Memory Mapped End */ -#define SPI_XFER_U_PAGE BIT(4) };/** -- 2.7.4
PATCH v5 17/21 spi: Remove dual flash code
Quoted 9 lines · Simon Glass
Hi Jagan,
Quoted 5 lines · Jagan Teki
Dual flash code in spi are usually take the spi controller to work with dual connected flash devices. Usually these dual connection operation's are referred to flash controller protocol rather with spi controller protocol, these are still present in flash side for the usage of spi-nor controllers.
Quoted 4 lines
That seems like good background information.
But after that you should write what this patch does. It seems like we are missing the purpose of this patch, or are left to infer it.
OK, will append the required commit message.
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH v5 18/21 sf: dataflash: Remove unneeded spi data
In reply to Jagan Tekidataflash doesn't require options, memory_map from spi.
--- drivers/mtd/spi/sf_dataflash.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
drivers/mtd/spi/sf_dataflash.c +1 -5
@@ -584,6 +584,7 @@ static int spi_dataflash_probe(struct udevice *dev)int ret, status =0 ; spi_flash =dev_get_uclass_priv (dev); + spi_flash->spi = spi; spi_flash->dev = dev; ret =spi_claim_bus (spi);
@@ -664,11 +665,6 @@ static int spi_dataflash_probe(struct udevice *dev) } } -/* Assign spi data */ - spi_flash->spi = spi; - spi_flash->memory_map = spi->memory_map; - spi_flash->dual_flash = spi->option; -spi_release_bus (spi);return 0 ;
Signature · 1 line
2.7.4
PATCH v5 18/21 sf: dataflash: Remove unneeded spi data
Hi Jagan,
Quoted 10 lines · Jagan Teki
dataflash doesn't require options,
memory_mapfrom spi.Cc Bin Meng <[email protected]>Cc Simon Glass <[email protected]>Cc York Sun <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_dataflash.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
PATCH v5 19/21 sf: dataflash: Move flash id detection into jedec_probe
In reply to Jagan TekiFlash id detection should be the first step to enumerate the connected flash on the board, once ie done checking with respective id codes locally in the driver all this should be part of jedec_probe instead of id detection and validated through flash_info{} table separatly.
--- drivers/mtd/spi/sf_dataflash.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
drivers/mtd/spi/sf_dataflash.c +10 -9
@@ -501,9 +501,10 @@ static struct flash_info dataflash_data[] = { { "at45db642d", 0x1f2800, 8192, 1024, 10, SUP_POW2PS | IS_POW2PS}, }; -static struct flash_info *jedec_probe (struct spi_slave *spi,u8 *id) +static struct flash_info *jedec_probe (struct spi_slave *spi) {int tmp; +uint8_t id[5 ];uint32_t jedec;struct flash_info *info;int status;
@@ -517,6 +518,11 @@ static struct flash_info *jedec_probe(struct spi_slave *spi, u8 *id)* That's not an error; only rev C and newer chips handle it, and * only Atmel sells these chips. */ + tmp =spi_flash_cmd (spi,CMD_READ_ID , id,sizeof (id)); +if (tmp <0 ) { +printf ("dataflash: error %d reading JEDEC ID\n" , tmp); +return ERR_PTR (tmp); + }if (id[0 ] !=0x1f )return NULL ;
@@ -580,7 +586,6 @@ static int spi_dataflash_probe(struct udevice *dev)struct spi_slave *spi =dev_get_parent_priv (dev);struct spi_flash *spi_flash;struct flash_info *info; -u8 idcode[5 ];int ret, status =0 ; spi_flash =dev_get_uclass_priv (dev);
@@ -591,12 +596,6 @@ static int spi_dataflash_probe(struct udevice *dev)if (ret)return ret; - ret =spi_flash_cmd (spi,CMD_READ_ID , idcode,sizeof (idcode)); -if (ret) { -printf ("SPI DataFlash: Failed to get idcodes\n" ); - goto err_read_cmd; - } -/* * Try to detect dataflash by JEDEC ID. * If it succeeds we know we have either a C or D part.
@@ -604,7 +603,9 @@ static int spi_dataflash_probe(struct udevice *dev)* Both support the security register, though with different * write procedures. */ - info =jedec_probe (spi, idcode); + info =jedec_probe (spi); +if (IS_ERR (info)) +return PTR_ERR (info);if (info !=NULL ) add_dataflash(dev, info->name, info->nr_pages, info->pagesize, info->pageoffset,
Signature · 1 line
2.7.4
PATCH v5 19/21 sf: dataflash: Move flash id detection into jedec_probe
Quoted 6 lines · Jagan Teki
Flash id detection should be the first step to enumerate the connected flash on the board, once ie done checking with respective id codes locally in the driver all this should be part of
jedec_probeinstead of id detection and validated through flash_info{} table separatly.
Quoted 7 lines
Cc Bin Meng <[email protected]>Cc Simon Glass <[email protected]>Cc York Sun <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_dataflash.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
PATCH v5 20/21 sf: dataflash: Fix add_dataflash return logic
In reply to Jagan TekiThis patch fixed the add_dataflash return logic,
so-that it can handle both jedec and older chips
same as Linux.
--- drivers/mtd/spi/sf_dataflash.c | 127 ++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 66 deletions(-)
drivers/mtd/spi/sf_dataflash.c +61 -66
@@ -586,15 +586,15 @@ static int spi_dataflash_probe(struct udevice *dev)struct spi_slave *spi =dev_get_parent_priv (dev);struct spi_flash *spi_flash;struct flash_info *info; -int ret, status =0 ; +int status; spi_flash =dev_get_uclass_priv (dev); spi_flash->spi = spi; spi_flash->dev = dev; - ret =spi_claim_bus (spi); -if (ret) -return ret; + status =spi_claim_bus (spi); +if (status) +return status;/* * Try to detect dataflash by JEDEC ID.
@@ -605,74 +605,69 @@ static int spi_dataflash_probe(struct udevice *dev)*/ info =jedec_probe (spi);if (IS_ERR (info)) -return PTR_ERR (info); -if (info !=NULL ) -add_dataflash (dev, info->name, info->nr_pages, - info->pagesize, info->pageoffset, - (info->flags &SUP_POW2PS ) ?'d' :'c' ); -else { -/* -* Older chips support only legacy commands, identifing -* capacity using bits in the status byte. -*/ - status =dataflash_status (spi); -if (status <=0 || status ==0xff ) { -printf ("SPI DataFlash: read status error %d\n" , status); -if (status ==0 || status ==0xff ) - status = -ENODEV ; - goto err_read_cmd; - } -/* -* if there's a device there, assume it's dataflash. -* board setup should have set spi->max_speed_max to -* match f(car) for continuous reads, mode 0 or 3. -*/ -switch (status &0x3c ) { -case 0x0c :/* 0 0 1 1 x x */ - status =add_dataflash (dev,"AT45DB011B" , -512 ,264 ,9 ,0 ); -break ; -case 0x14 :/* 0 1 0 1 x x */ - status =add_dataflash (dev,"AT45DB021B" , -1024 ,264 ,9 ,0 ); -break ; -case 0x1c :/* 0 1 1 1 x x */ - status =add_dataflash (dev,"AT45DB041x" , -2048 ,264 ,9 ,0 ); -break ; -case 0x24 :/* 1 0 0 1 x x */ - status =add_dataflash (dev,"AT45DB081B" , -4096 ,264 ,9 ,0 ); -break ; -case 0x2c :/* 1 0 1 1 x x */ - status =add_dataflash (dev,"AT45DB161x" , -4096 ,528 ,10 ,0 ); -break ; -case 0x34 :/* 1 1 0 1 x x */ - status =add_dataflash (dev,"AT45DB321x" , -8192 ,528 ,10 ,0 ); -break ; -case 0x38 :/* 1 1 1 x x x */ -case 0x3c : - status =add_dataflash (dev,"AT45DB642x" , -8192 ,1056 ,11 ,0 ); -break ; -/* obsolete AT45DB1282 not (yet?) supported */ -default : -dev_info (&spi->dev,"unsupported device (%x)\n" , - status &0x3c ); + goto err_jedec_probe; +if (info !=NULL ) { + status =add_dataflash (dev, info->name, info->nr_pages, + info->pagesize, info->pageoffset, + (info->flags &SUP_POW2PS ) ?'d' :'c' ); +if (status <0 ) + goto err_status; + } + +/* +* Older chips support only legacy commands, identifing +* capacity using bits in the status byte. +*/ + status =dataflash_status (spi); +if (status <=0 || status ==0xff ) { +printf ("SPI DataFlash: read status error %d\n" , status); +if (status ==0 || status ==0xff ) status = -ENODEV ; - goto err_read_cmd; - } + goto err_jedec_probe; } -spi_release_bus (spi); +/* +* if there's a device there, assume it's dataflash. +* board setup should have set spi->max_speed_max to +* match f(car) for continuous reads, mode 0 or 3. +*/ +switch (status &0x3c ) { +case 0x0c :/* 0 0 1 1 x x */ + status =add_dataflash (dev,"AT45DB011B" ,512 ,264 ,9 ,0 ); +break ; +case 0x14 :/* 0 1 0 1 x x */ + status =add_dataflash (dev,"AT45DB021B" ,1024 ,264 ,9 ,0 ); +break ; +case 0x1c :/* 0 1 1 1 x x */ + status =add_dataflash (dev,"AT45DB041x" ,2048 ,264 ,9 ,0 ); +break ; +case 0x24 :/* 1 0 0 1 x x */ + status =add_dataflash (dev,"AT45DB081B" ,4096 ,264 ,9 ,0 ); +break ; +case 0x2c :/* 1 0 1 1 x x */ + status =add_dataflash (dev,"AT45DB161x" ,4096 ,528 ,10 ,0 ); +break ; +case 0x34 :/* 1 1 0 1 x x */ + status =add_dataflash (dev,"AT45DB321x" ,8192 ,528 ,10 ,0 ); +break ; +case 0x38 :/* 1 1 1 x x x */ +case 0x3c : + status =add_dataflash (dev,"AT45DB642x" ,8192 ,1056 ,11 ,0 ); +break ; +/* obsolete AT45DB1282 not (yet?) supported */ +default : +dev_info (&spi->dev,"unsupported device (%x)\n" , + status &0x3c ); + status = -ENODEV ; + goto err_status; + } -return 0 ; +return status; -err_read_cmd: +err_status: +spi_free_slave (spi); +err_jedec_probe:spi_release_bus (spi); -return status; }
Signature · 1 line
2.7.4
PATCH v5 20/21 sf: dataflash: Fix add_dataflash return logic
Quoted 11 lines · Jagan Teki
This patch fixed the
add_dataflashreturn logic,
so-that it can handle both jedec and older chips
same as Linux.Cc Bin Meng <[email protected]>Cc Simon Glass <[email protected]>Cc York Sun <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_dataflash.c | 127 ++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 66 deletions(-)
PATCH v5 21/21 sf: dataflash: Minor cleanups
In reply to Jagan Teki- fix single line comments
- remove unneeded spaces
- ascending order of include files
- rename SPI DATAFLASH to dataflash
- rename SPI DataFlash to dataflash
- return NULL replaced with error code
--- drivers/mtd/spi/sf_dataflash.c | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-)
drivers/mtd/spi/sf_dataflash.c +15 -23
@@ -1,12 +1,12 @@/* -* * Atmel DataFlash probing * * Copyright (C) 2004-2009, 2015 Freescale Semiconductor, Inc. * Haikun Wang (haikun.wang at freescale.com) * * SPDX-License-Identifier: GPL-2.0+ -*/ +*/ +#include <common.h> #include <dm.h> #include <errno.h>
@@ -67,15 +67,12 @@#define OP_WRITE_SECURITY_REVC 0x9A#define OP_WRITE_SECURITY 0x9B/* revision D */ -struct dataflash {uint8_t command[16 ];unsigned short page_offset;/* offset in flash address */ }; -/* -* Return the status of the DataFlash device. -*/ +/* Return the status of the DataFlash device */ static inline int dataflash_status (struct spi_slave *spi) {int ret;
@@ -114,9 +111,7 @@ static int dataflash_waitready(struct spi_slave *spi)return -ETIME ; } -/* -* Erase pages of flash. -*/ +/* Erase pages of flash */ static int spi_dataflash_erase (struct udevice *dev,u32 offset,size_t len) {struct dataflash *dataflash;
@@ -147,7 +142,7 @@ static int spi_dataflash_erase(struct udevice *dev, u32 offset, size_t len) status =spi_claim_bus (spi);if (status) { -debug ("SPI DATAFLASH: unable to claim SPI bus\n" ); +debug ("dataflash: unable to claim SPI bus\n" );return status; }
@@ -232,7 +227,7 @@ static int spi_dataflash_read(struct udevice *dev, u32 offset, size_t len, status =spi_claim_bus (spi);if (status) { -debug ("SPI DATAFLASH: unable to claim SPI bus\n" ); +debug ("dataflash: unable to claim SPI bus\n" );return status; }
@@ -290,7 +285,7 @@ int spi_dataflash_write(struct udevice *dev, u32 offset, size_t len, status =spi_claim_bus (spi);if (status) { -debug ("SPI DATAFLASH: unable to claim SPI bus\n" ); +debug ("dataflash: unable to claim SPI bus\n" );return status; }
@@ -387,7 +382,7 @@ int spi_dataflash_write(struct udevice *dev, u32 offset, size_t len,/* Check result of the compare operation */ if (status & (1 <<6 )) { -printf ("SPI DataFlash: write compare page %u, err %d\n" , +printf ("dataflash: write compare page %u, err %d\n" , pageaddr, status); remaining =0 ; status = -EIO ;
@@ -539,7 +534,7 @@ static struct flash_info *jedec_probe(struct spi_slave *spi)if (info->flags &SUP_POW2PS ) { status =dataflash_status (spi);if (status <0 ) { -debug ("SPI DataFlash: status error %d\n" , +debug ("dataflash: status error %d\n" , status);return NULL ; }
@@ -561,10 +556,8 @@ static struct flash_info *jedec_probe(struct spi_slave *spi)* size (it might be binary) even when we can tell which density * class is involved (legacy chip id scheme). */ -printf ("SPI DataFlash: Unsupported flash IDs: " ); -printf ("manuf %02x, jedec %04x, ext_jedec %04x\n" , - id[0 ], jedec, id[3 ] <<8 | id[4 ]); -return NULL ; +printf ("dataflash: JEDEC id %06x not handled\n" , jedec); +return ERR_PTR (-ENODEV ); }/*
@@ -614,19 +607,19 @@ static int spi_dataflash_probe(struct udevice *dev) goto err_status; } -/* +/* * Older chips support only legacy commands, identifing * capacity using bits in the status byte. */ status =dataflash_status (spi);if (status <=0 || status ==0xff ) { -printf ("SPI DataFlash: read status error %d\n" , status); +printf ("dataflash: read status error %d\n" , status);if (status ==0 || status ==0xff ) status = -ENODEV ; goto err_jedec_probe; } -/* +/* * if there's a device there, assume it's dataflash. * board setup should have set spi->max_speed_max to * match f(car) for continuous reads, mode 0 or 3.
@@ -656,8 +649,7 @@ static int spi_dataflash_probe(struct udevice *dev)break ;/* obsolete AT45DB1282 not (yet?) supported */ default : -dev_info (&spi->dev,"unsupported device (%x)\n" , - status &0x3c ); +printf ("dataflash: unsupported device (%x)\n" , status &0x3c ); status = -ENODEV ; goto err_status; }
Signature · 1 line
2.7.4
PATCH v5 21/21 sf: dataflash: Minor cleanups
Quoted 7 lines · Jagan Teki
- fix single line comments
- remove unneeded spaces
- ascending order of include files
- rename SPI DATAFLASH to dataflash
- rename SPI DataFlash to dataflash
- return NULL replaced with error code
Quoted 7 lines
Cc Bin Meng <[email protected]>Cc Simon Glass <[email protected]>Cc York Sun <[email protected]>Signed-off-by Jagan Teki <[email protected]>--- drivers/mtd/spi/sf_dataflash.c | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-)
v5 cover sf: Updates on flash detection
In reply to Jagan TekiQuoted 39 lines · Jagan Teki
Updated
spi_flash_infotable in sync with Linux, and removed legacy and unsupported code.Changes for v5:
- Add dataflash fixes in this series
- Rebase to masterChanges for v4:
- Rebase to masterChanges for v3:
- New patches
- Fix checkpatch.pl
- Fix BIT positions inspi.h
- Fixti_qspi.cmode
- Fix commit Nit: s/becuase/becauseChanges for v2:
- New patches.Testing:
$ git clone git://git.denx.de/u-boot-spi.git $ cd u-boot-spi $ git checkout -b next origin/nextJagan Teki (21):
sf: Adopt flash table INFO macro from Linux
sf: Simplify lock ops detection code
sf: sandbox: Use JEDEC_MFR|ID in id exctract
sf: Cleanup spi_flash_info{}
sf: Cleanupsf_params
sf:nr_sectors->n_sectors
sf: AddSPI_FLASH_MAX_ID_LEN
sf: Increase max id length by 1 byte
sf: Add INFO6flash_infomacro
sf: params: AddS25FS256S_64Kspi flash support
sf: Remove legacy idcode detection code
sf: Remove non-meaningful comments
sf: Renamesf_params.ctospi_flash_ids
Quoted 8 lines
sf: ids: Use small letter's with flash name
sf: ids: Use small letter inext_jedec
sf: Rename few local functions
spi: Remove dual flash code
sf: dataflash: Remove unneeded spi data
sf: dataflash: Move flash id detection intojedec_probe
sf: dataflash: Fixadd_dataflashreturn logic
sf: dataflash: Minor cleanups
York, can you test this with dataflash?
thanks!
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
v5 cover sf: Updates on flash detection
I am out for a conference. Will take a look when I get back.
York
Quoted 58 lines · Jagan Teki
Quoted 39 lines · Jagan Teki
Updated
spi_flash_infotable in sync with Linux, and removed legacy and unsupported code.Changes for v5:
- Add dataflash fixes in this series
- Rebase to masterChanges for v4:
- Rebase to masterChanges for v3:
- New patches
- Fix checkpatch.pl
- Fix BIT positions inspi.h
- Fixti_qspi.cmode
- Fix commit Nit: s/becuase/becauseChanges for v2:
- New patches.Testing:
$ git clone git://git.denx.de/u-boot-spi.git $ cd u-boot-spi $ git checkout -b next origin/nextJagan Teki (21):
sf: Adopt flash table INFO macro from Linux
sf: Simplify lock ops detection code
sf: sandbox: Use JEDEC_MFR|ID in id exctract
sf: Cleanup spi_flash_info{}
sf: Cleanupsf_params
sf:nr_sectors->n_sectors
sf: AddSPI_FLASH_MAX_ID_LEN
sf: Increase max id length by 1 byte
sf: Add INFO6flash_infomacro
sf: params: AddS25FS256S_64Kspi flash support
sf: Remove legacy idcode detection code
sf: Remove non-meaningful comments
sf: Renamesf_params.ctospi_flash_idsQuoted 8 lines
sf: ids: Use small letter's with flash name
sf: ids: Use small letter inext_jedec
sf: Rename few local functions
spi: Remove dual flash code
sf: dataflash: Remove unneeded spi data
sf: dataflash: Move flash id detection intojedec_probe
sf: dataflash: Fixadd_dataflashreturn logic
sf: dataflash: Minor cleanupsYork, can you test this with dataflash?
thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.