All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection
@ 2016-10-30 17:46 Jagan Teki
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux Jagan Teki
                   ` (21 more replies)
  0 siblings, 22 replies; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

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

-- 
2.7.4

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-10-31  3:18   ` Vignesh R
                     ` (2 more replies)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code Jagan Teki
                   ` (20 subsequent siblings)
  21 siblings, 3 replies; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

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

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 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(-)

diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c
index f59134f..d68ee4a 100644
--- a/drivers/mtd/spi/sandbox.c
+++ b/drivers/mtd/spi/sandbox.c
@@ -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;
diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index cde4cfb..a9455ac 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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);
diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index 5b50114..7fcc3bc 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -12,125 +12,140 @@
 
 #include "sf_internal.h"
 
+/* Used when the "_ext_id" is two bytes at most */
+#define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags)	\
+		.id = {							\
+			((_jedec_id) >> 16) & 0xff,			\
+			((_jedec_id) >> 8) & 0xff,			\
+			(_jedec_id) & 0xff,				\
+			((_ext_id) >> 8) & 0xff,			\
+			(_ext_id) & 0xff,				\
+			},						\
+		.id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0))),	\
+		.sector_size = (_sector_size),				\
+		.nr_sectors = (_n_sectors),				\
+		.page_size = 256,					\
+		.flags = (_flags),
+
 /* SPI/QSPI flash device params structure */
-const struct spi_flash_params spi_flash_params_table[] = {
+const struct spi_flash_info spi_flash_ids[] = {
 #ifdef CONFIG_SPI_FLASH_ATMEL		/* ATMEL */
-	{"AT45DB011D",	   0x1f2200, 0x0,	64 * 1024,     4, SECT_4K},
-	{"AT45DB021D",	   0x1f2300, 0x0,	64 * 1024,     8, SECT_4K},
-	{"AT45DB041D",	   0x1f2400, 0x0,	64 * 1024,     8, SECT_4K},
-	{"AT45DB081D",	   0x1f2500, 0x0,	64 * 1024,    16, SECT_4K},
-	{"AT45DB161D",	   0x1f2600, 0x0,	64 * 1024,    32, SECT_4K},
-	{"AT45DB321D",	   0x1f2700, 0x0,	64 * 1024,    64, SECT_4K},
-	{"AT45DB641D",	   0x1f2800, 0x0,	64 * 1024,   128, SECT_4K},
-	{"AT25DF321A",     0x1f4701, 0x0,	64 * 1024,    64, SECT_4K},
-	{"AT25DF321",      0x1f4700, 0x0,	64 * 1024,    64, SECT_4K},
-	{"AT26DF081A",     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",	   0x1c3016, 0x0,	64 * 1024,    64, 0},
-	{"EN25Q64",	   0x1c3017, 0x0,	64 * 1024,   128, SECT_4K},
-	{"EN25Q128B",	   0x1c3018, 0x0,       64 * 1024,   256, 0},
-	{"EN25S64",	   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",	   0xc84017, 0x0,	64 * 1024,   128, SECT_4K},
-	{"GD25LQ32",	   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",	   0x9d6016, 0x0,	64 * 1024,    64, 0},
-	{"IS25LP064",	   0x9d6017, 0x0,	64 * 1024,   128, 0},
-	{"IS25LP128",	   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",	   0xc22012, 0x0,	64 * 1024,     4, 0},
-	{"MX25L4005",	   0xc22013, 0x0,	64 * 1024,     8, 0},
-	{"MX25L8005",	   0xc22014, 0x0,	64 * 1024,    16, 0},
-	{"MX25L1605D",	   0xc22015, 0x0,	64 * 1024,    32, 0},
-	{"MX25L3205D",	   0xc22016, 0x0,	64 * 1024,    64, 0},
-	{"MX25L6405D",	   0xc22017, 0x0,	64 * 1024,   128, 0},
-	{"MX25L12805",	   0xc22018, 0x0,	64 * 1024,   256, RD_FULL | WR_QPP},
-	{"MX25L25635F",	   0xc22019, 0x0,	64 * 1024,   512, RD_FULL | WR_QPP},
-	{"MX25L51235F",	   0xc2201a, 0x0,	64 * 1024,  1024, RD_FULL | WR_QPP},
-	{"MX25L12855E",	   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",	   0x010213, 0x0,	64 * 1024,    16, 0},
-	{"S25FL016A",	   0x010214, 0x0,	64 * 1024,    32, 0},
-	{"S25FL032A",	   0x010215, 0x0,	64 * 1024,    64, 0},
-	{"S25FL064A",	   0x010216, 0x0,	64 * 1024,   128, 0},
-	{"S25FL116K",	   0x014015, 0x0,	64 * 1024,   128, 0},
-	{"S25FL164K",	   0x014017, 0x0140,	64 * 1024,   128, 0},
-	{"S25FL128P_256K", 0x012018, 0x0300,   256 * 1024,    64, RD_FULL | WR_QPP},
-	{"S25FL128P_64K",  0x012018, 0x0301,    64 * 1024,   256, RD_FULL | WR_QPP},
-	{"S25FL032P",	   0x010215, 0x4d00,    64 * 1024,    64, RD_FULL | WR_QPP},
-	{"S25FL064P",	   0x010216, 0x4d00,    64 * 1024,   128, RD_FULL | WR_QPP},
-	{"S25FL128S_256K", 0x012018, 0x4d00,   256 * 1024,    64, RD_FULL | WR_QPP},
-	{"S25FL128S_64K",  0x012018, 0x4d01,    64 * 1024,   256, RD_FULL | WR_QPP},
-	{"S25FL256S_256K", 0x010219, 0x4d00,   256 * 1024,   128, RD_FULL | WR_QPP},
-	{"S25FL256S_64K",  0x010219, 0x4d01,	64 * 1024,   512, RD_FULL | WR_QPP},
-	{"S25FS512S",      0x010220, 0x4D00,   128 * 1024,   512, RD_FULL | WR_QPP},
-	{"S25FL512S_256K", 0x010220, 0x4d00,   256 * 1024,   256, RD_FULL | WR_QPP},
-	{"S25FL512S_64K",  0x010220, 0x4d01,    64 * 1024,  1024, RD_FULL | WR_QPP},
-	{"S25FL512S_512K", 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) },
+	{"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) },
 #endif
 #ifdef CONFIG_SPI_FLASH_STMICRO		/* STMICRO */
-	{"M25P10",	   0x202011, 0x0,	32 * 1024,     4, 0},
-	{"M25P20",	   0x202012, 0x0,       64 * 1024,     4, 0},
-	{"M25P40",	   0x202013, 0x0,       64 * 1024,     8, 0},
-	{"M25P80",	   0x202014, 0x0,       64 * 1024,    16, 0},
-	{"M25P16",	   0x202015, 0x0,       64 * 1024,    32, 0},
-	{"M25PE16",	   0x208015, 0x1000,    64 * 1024,    32, 0},
-	{"M25PX16",	   0x207115, 0x1000,    64 * 1024,    32, RD_QUAD | RD_DUAL},
-	{"M25P32",	   0x202016, 0x0,       64 * 1024,    64, 0},
-	{"M25P64",	   0x202017, 0x0,       64 * 1024,   128, 0},
-	{"M25P128",	   0x202018, 0x0,      256 * 1024,    64, 0},
-	{"M25PX64",	   0x207117, 0x0,       64 * 1024,   128, SECT_4K},
-	{"N25Q016A",       0x20bb15, 0x0,	64 * 1024,    32, SECT_4K},
-	{"N25Q32",	   0x20ba16, 0x0,       64 * 1024,    64, RD_FULL | WR_QPP | SECT_4K},
-	{"N25Q32A",	   0x20bb16, 0x0,       64 * 1024,    64, RD_FULL | WR_QPP | SECT_4K},
-	{"N25Q64",	   0x20ba17, 0x0,       64 * 1024,   128, RD_FULL | WR_QPP | SECT_4K},
-	{"N25Q64A",	   0x20bb17, 0x0,       64 * 1024,   128, RD_FULL | WR_QPP | SECT_4K},
-	{"N25Q128",	   0x20ba18, 0x0,       64 * 1024,   256, RD_FULL | WR_QPP},
-	{"N25Q128A",	   0x20bb18, 0x0,       64 * 1024,   256, RD_FULL | WR_QPP},
-	{"N25Q256",	   0x20ba19, 0x0,       64 * 1024,   512, RD_FULL | WR_QPP | SECT_4K},
-	{"N25Q256A",	   0x20bb19, 0x0,       64 * 1024,   512, RD_FULL | WR_QPP | SECT_4K},
-	{"N25Q512",	   0x20ba20, 0x0,       64 * 1024,  1024, RD_FULL | WR_QPP | E_FSR | SECT_4K},
-	{"N25Q512A",	   0x20bb20, 0x0,       64 * 1024,  1024, RD_FULL | WR_QPP | E_FSR | SECT_4K},
-	{"N25Q1024",	   0x20ba21, 0x0,       64 * 1024,  2048, RD_FULL | WR_QPP | E_FSR | SECT_4K},
-	{"N25Q1024A",	   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",	   0xbf258d, 0x0,	64 * 1024,     8, SECT_4K | SST_WR},
-	{"SST25VF080B",	   0xbf258e, 0x0,	64 * 1024,    16, SECT_4K | SST_WR},
-	{"SST25VF016B",	   0xbf2541, 0x0,	64 * 1024,    32, SECT_4K | SST_WR},
-	{"SST25VF032B",	   0xbf254a, 0x0,	64 * 1024,    64, SECT_4K | SST_WR},
-	{"SST25VF064C",	   0xbf254b, 0x0,	64 * 1024,   128, SECT_4K},
-	{"SST25WF512",	   0xbf2501, 0x0,	64 * 1024,     1, SECT_4K | SST_WR},
-	{"SST25WF010",	   0xbf2502, 0x0,	64 * 1024,     2, SECT_4K | SST_WR},
-	{"SST25WF020",	   0xbf2503, 0x0,	64 * 1024,     4, SECT_4K | SST_WR},
-	{"SST25WF040",	   0xbf2504, 0x0,	64 * 1024,     8, SECT_4K | SST_WR},
-	{"SST25WF040B",	   0x621613, 0x0,	64 * 1024,     8, SECT_4K},
-	{"SST25WF080",	   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",	   0xef2014, 0x0,	64 * 1024,    16, 0},
-	{"W25P16",	   0xef2015, 0x0,	64 * 1024,    32, 0},
-	{"W25P32",	   0xef2016, 0x0,	64 * 1024,    64, 0},
-	{"W25X40",	   0xef3013, 0x0,	64 * 1024,     8, SECT_4K},
-	{"W25X16",	   0xef3015, 0x0,	64 * 1024,    32, SECT_4K},
-	{"W25X32",	   0xef3016, 0x0,	64 * 1024,    64, SECT_4K},
-	{"W25X64",	   0xef3017, 0x0,	64 * 1024,   128, SECT_4K},
-	{"W25Q80BL",	   0xef4014, 0x0,	64 * 1024,    16, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q16CL",	   0xef4015, 0x0,	64 * 1024,    32, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q32BV",	   0xef4016, 0x0,	64 * 1024,    64, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q64CV",	   0xef4017, 0x0,	64 * 1024,   128, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q128BV",	   0xef4018, 0x0,	64 * 1024,   256, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q256",	   0xef4019, 0x0,	64 * 1024,   512, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q80BW",	   0xef5014, 0x0,	64 * 1024,    16, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q16DW",	   0xef6015, 0x0,	64 * 1024,    32, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q32DW",	   0xef6016, 0x0,	64 * 1024,    64, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q64DW",	   0xef6017, 0x0,	64 * 1024,   128, RD_FULL | WR_QPP | SECT_4K},
-	{"W25Q128FW",	   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 */
 	/*
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 7f6e9ae..daa9014 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -165,7 +165,8 @@ bar_end:
 	return flash->bank_curr;
 }
 
-static int spi_flash_read_bar(struct spi_flash *flash, u8 idcode0)
+static int spi_flash_read_bar(struct spi_flash *flash,
+			      const struct spi_flash_info *info)
 {
 	u8 curr_bank = 0;
 	int ret;
@@ -173,7 +174,7 @@ static int spi_flash_read_bar(struct spi_flash *flash, u8 idcode0)
 	if (flash->size <= SPI_FLASH_16MB_BOUN)
 		goto bar_end;
 
-	switch (idcode0) {
+	switch (JEDEC_MFR(info)) {
 	case SPI_FLASH_CFI_MFR_SPANSION:
 		flash->bank_read_cmd = CMD_BANKADDR_BRRD;
 		flash->bank_write_cmd = CMD_BANKADDR_BRWR;
@@ -924,9 +925,35 @@ static int micron_quad_enable(struct spi_flash *flash)
 }
 #endif
 
-static int set_quad_mode(struct spi_flash *flash, u8 idcode0)
+static const struct spi_flash_info *spi_flash_read_id(struct spi_flash *flash)
 {
-	switch (idcode0) {
+	int				tmp;
+	u8				id[5];
+	const struct spi_flash_info	*info;
+
+	tmp = spi_flash_cmd(flash->spi, CMD_READ_ID, id, 5);
+	if (tmp < 0) {
+		printf("SF: error %d reading JEDEC ID\n", tmp);
+		return ERR_PTR(tmp);
+	}
+
+	info = spi_flash_ids;
+	for (; info->name != NULL; info++) {
+		if (info->id_len) {
+			if (!memcmp(info->id, id, info->id_len))
+				return info;
+		}
+	}
+
+	printf("SF: unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
+	       id[0], id[1], id[2]);
+	return ERR_PTR(-ENODEV);
+}
+
+static int set_quad_mode(struct spi_flash *flash,
+			 const struct spi_flash_info *info)
+{
+	switch (JEDEC_MFR(info)) {
 #ifdef CONFIG_SPI_FLASH_MACRONIX
 	case SPI_FLASH_CFI_MFR_MACRONIX:
 		return macronix_quad_enable(flash);
@@ -941,7 +968,8 @@ static int set_quad_mode(struct spi_flash *flash, u8 idcode0)
 		return micron_quad_enable(flash);
 #endif
 	default:
-		printf("SF: Need set QEB func for %02x flash\n", idcode0);
+		printf("SF: Need set QEB func for %02x flash\n",
+		       JEDEC_MFR(info));
 		return -1;
 	}
 }
@@ -1011,46 +1039,18 @@ static int spansion_s25fss_disable_4KB_erase(struct spi_slave *spi)
 int spi_flash_scan(struct spi_flash *flash)
 {
 	struct spi_slave *spi = flash->spi;
-	const struct spi_flash_params *params;
+	const struct spi_flash_info *info = NULL;
 	u16 jedec, ext_jedec;
 	u8 idcode[5];
 	int ret;
 
-	/* Read the ID codes */
-	ret = spi_flash_cmd(spi, CMD_READ_ID, idcode, sizeof(idcode));
-	if (ret) {
-		printf("SF: Failed to get idcodes\n");
-		return ret;
-	}
-
-#ifdef DEBUG
-	printf("SF: Got idcodes\n");
-	print_buffer(0, idcode, 1, sizeof(idcode), 0);
-#endif
+	info = spi_flash_read_id(flash);
+	if (IS_ERR_OR_NULL(info))
+		return -ENOENT;
 
 	jedec = idcode[1] << 8 | idcode[2];
 	ext_jedec = idcode[3] << 8 | idcode[4];
 
-	/* Validate params from spi_flash_params table */
-	params = spi_flash_params_table;
-	for (; params->name != NULL; params++) {
-		if ((params->jedec >> 16) == idcode[0]) {
-			if ((params->jedec & 0xFFFF) == jedec) {
-				if (params->ext_jedec == 0)
-					break;
-				else if (params->ext_jedec == ext_jedec)
-					break;
-			}
-		}
-	}
-
-	if (!params->name) {
-		printf("SF: Unsupported flash IDs: ");
-		printf("manuf %02x, jedec %04x, ext_jedec %04x\n",
-		       idcode[0], jedec, ext_jedec);
-		return -EPROTONOSUPPORT;
-	}
-
 #ifdef CONFIG_SPI_FLASH_SPANSION
 	/*
 	 * The S25FS-S family physical sectors may be configured as a
@@ -1088,18 +1088,18 @@ int spi_flash_scan(struct spi_flash *flash)
 	}
 #endif
 	/* Flash powers up read-only, so clear BP# bits */
-	if (idcode[0] == SPI_FLASH_CFI_MFR_ATMEL ||
-	    idcode[0] == SPI_FLASH_CFI_MFR_MACRONIX ||
-	    idcode[0] == SPI_FLASH_CFI_MFR_SST)
+	if (JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_ATMEL ||
+	    JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_MACRONIX ||
+	    JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_SST)
 		write_sr(flash, 0);
 
 	/* Assign spi data */
-	flash->name = params->name;
+	flash->name = info->name;
 	flash->memory_map = spi->memory_map;
 	flash->dual_flash = spi->option;
 
 	/* Assign spi flash flags */
-	if (params->flags & SST_WR)
+	if (info->flags & SST_WR)
 		flash->flags |= SNOR_F_SST_WR;
 
 	/* Assign spi_flash ops */
@@ -1118,7 +1118,7 @@ int spi_flash_scan(struct spi_flash *flash)
 #endif
 
 	/* lock hooks are flash specific - assign them based on idcode0 */
-	switch (idcode[0]) {
+	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:
@@ -1128,28 +1128,26 @@ int spi_flash_scan(struct spi_flash *flash)
 #endif
 		break;
 	default:
-		debug("SF: Lock ops not supported for %02x flash\n", idcode[0]);
+		debug("SF: Lock ops not supported for %02x flash\n", JEDEC_MFR(info));
 	}
 
 	/* Compute the flash size */
 	flash->shift = (flash->dual_flash & SF_DUAL_PARALLEL_FLASH) ? 1 : 0;
+	flash->page_size = info->page_size;
 	/*
 	 * The Spansion S25FL032P and S25FL064P have 256b pages, yet use the
 	 * 0x4d00 Extended JEDEC code. The rest of the Spansion flashes with
 	 * the 0x4d00 Extended JEDEC code have 512b pages. All of the others
 	 * have 256b pages.
 	 */
-	if (ext_jedec == 0x4d00) {
-		if ((jedec == 0x0215) || (jedec == 0x216) || (jedec == 0x220))
-			flash->page_size = 256;
-		else
+	if (JEDEC_EXT(info) == 0x4d00) {
+		if ((JEDEC_ID(info) != 0x0215) &&
+		    (JEDEC_ID(info) != 0x0216))
 			flash->page_size = 512;
-	} else {
-		flash->page_size = 256;
 	}
 	flash->page_size <<= flash->shift;
-	flash->sector_size = params->sector_size << flash->shift;
-	flash->size = flash->sector_size * params->nr_sectors << flash->shift;
+	flash->sector_size = info->sector_size << flash->shift;
+	flash->size = flash->sector_size * info->nr_sectors << flash->shift;
 #ifdef CONFIG_SF_DUAL_FLASH
 	if (flash->dual_flash & SF_DUAL_STACKED_FLASH)
 		flash->size <<= 1;
@@ -1157,7 +1155,7 @@ int spi_flash_scan(struct spi_flash *flash)
 
 #ifdef CONFIG_SPI_FLASH_USE_4K_SECTORS
 	/* Compute erase sector and command */
-	if (params->flags & SECT_4K) {
+	if (info->flags & SECT_4K) {
 		flash->erase_cmd = CMD_ERASE_4K;
 		flash->erase_size = 4096 << flash->shift;
 	} else
@@ -1174,13 +1172,13 @@ int spi_flash_scan(struct spi_flash *flash)
 	flash->read_cmd = CMD_READ_ARRAY_FAST;
 	if (spi->mode & SPI_RX_SLOW)
 		flash->read_cmd = CMD_READ_ARRAY_SLOW;
-	else if (spi->mode & SPI_RX_QUAD && params->flags & RD_QUAD)
+	else if (spi->mode & SPI_RX_QUAD && info->flags & RD_QUAD)
 		flash->read_cmd = CMD_READ_QUAD_OUTPUT_FAST;
-	else if (spi->mode & SPI_RX_DUAL && params->flags & RD_DUAL)
+	else if (spi->mode & SPI_RX_DUAL && info->flags & RD_DUAL)
 		flash->read_cmd = CMD_READ_DUAL_OUTPUT_FAST;
 
 	/* Look for write commands */
-	if (params->flags & WR_QPP && spi->mode & SPI_TX_QUAD)
+	if (info->flags & WR_QPP && spi->mode & SPI_TX_QUAD)
 		flash->write_cmd = CMD_QUAD_PAGE_PROGRAM;
 	else
 		/* Go for default supported write cmd */
@@ -1190,9 +1188,10 @@ int spi_flash_scan(struct spi_flash *flash)
 	if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) ||
 	    (flash->read_cmd == CMD_READ_QUAD_IO_FAST) ||
 	    (flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {
-		ret = set_quad_mode(flash, idcode[0]);
+		ret = set_quad_mode(flash, info);
 		if (ret) {
-			debug("SF: Fail to set QEB for %02x\n", idcode[0]);
+			debug("SF: Fail to set QEB for %02x\n",
+			      JEDEC_MFR(info));
 			return -EINVAL;
 		}
 	}
@@ -1217,13 +1216,13 @@ int spi_flash_scan(struct spi_flash *flash)
 	}
 
 #ifdef CONFIG_SPI_FLASH_STMICRO
-	if (params->flags & E_FSR)
+	if (info->flags & E_FSR)
 		flash->flags |= SNOR_F_USE_FSR;
 #endif
 
 	/* Configure the BAR - discover bank cmds and read current bank */
 #ifdef CONFIG_SPI_FLASH_BAR
-	ret = spi_flash_read_bar(flash, idcode[0]);
+	ret = spi_flash_read_bar(flash, info);
 	if (ret < 0)
 		return ret;
 #endif
diff --git a/include/linux/err.h b/include/linux/err.h
index e4d22d5..22e5756 100644
--- a/include/linux/err.h
+++ b/include/linux/err.h
@@ -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.
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 03/21] sf: sandbox: Use JEDEC_MFR|ID in id exctract Jagan Teki
                   ` (19 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Simplify the flash_lock ops detection code and added
meaningful comment.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/spi_flash.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index daa9014..b92b0bf 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -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;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 03/21] sf: sandbox: Use JEDEC_MFR|ID in id exctract
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux Jagan Teki
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{} Jagan Teki
                   ` (18 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Instead of extracting id's separately better
to use JEDEC_MFR|ID for code simplicity.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sandbox.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c
index d68ee4a..09ce783 100644
--- a/drivers/mtd/spi/sandbox.c
+++ b/drivers/mtd/spi/sandbox.c
@@ -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;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{}
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (2 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 03/21] sf: sandbox: Use JEDEC_MFR|ID in id exctract Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params Jagan Teki
                   ` (17 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

- Proper tabs spaces
- Removed unnecessary
- Added meaningful comments?

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_internal.h | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index a9455ac..71feba9 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (3 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{} Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 06/21] sf: nr_sectors -> n_sectors Jagan Teki
                   ` (16 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

- Move headers froms sf_params to common header file
- Removed unnecessary comment

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_internal.h | 5 +++--
 drivers/mtd/spi/sf_params.c   | 5 -----
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index 71feba9..4a88cf7 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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 {
diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index 7fcc3bc..7314455 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -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) },
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 06/21] sf: nr_sectors -> n_sectors
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (4 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 07/21] sf: Add SPI_FLASH_MAX_ID_LEN Jagan Teki
                   ` (15 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Rename nr_sectors as n_sectors to sync with Linux.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 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(-)

diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c
index 09ce783..4944059 100644
--- a/drivers/mtd/spi/sandbox.c
+++ b/drivers/mtd/spi/sandbox.c
@@ -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)) {
diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index 4a88cf7..527c252 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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;
 
diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index 7314455..8a2a6b2 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -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),
 
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index b92b0bf..0777bb5 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -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;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 07/21] sf: Add SPI_FLASH_MAX_ID_LEN
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (5 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 06/21] sf: nr_sectors -> n_sectors Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 08/21] sf: Increase max id length by 1 byte Jagan Teki
                   ` (14 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Add id length of 5 bytes numerical value to macro.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_internal.h | 3 ++-
 drivers/mtd/spi/spi_flash.c   | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index 527c252..437ac8a 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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	5
 
 struct 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
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 0777bb5..ba884d7 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -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);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 08/21] sf: Increase max id length by 1 byte
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (6 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 07/21] sf: Add SPI_FLASH_MAX_ID_LEN Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:07   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 09/21] sf: Add INFO6 flash_info macro Jagan Teki
                   ` (13 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

So, now SPI_FLASH_ID_MAX_LEN is 6 bytes useful for
few spansion flash families S25FS-S

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_internal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index 437ac8a..f2ea368 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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	6
 
 struct spi_flash_info {
 	const char	*name;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 09/21] sf: Add INFO6 flash_info macro
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (7 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 08/21] sf: Increase max id length by 1 byte Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 10/21] sf: params: Add S25FS256S_64K spi flash support Jagan Teki
                   ` (12 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

INFO6 is for tabulating 6 byte flash parts, Ex: S25FS256S_64K

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_params.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index 8a2a6b2..344d9c9 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -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) },
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 10/21] sf: params: Add S25FS256S_64K spi flash support
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (8 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 09/21] sf: Add INFO6 flash_info macro Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 11/21] sf: Remove legacy idcode detection code Jagan Teki
                   ` (11 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Add 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.

Cc: Yunhui Cui <yunhui.cui@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_params.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index 344d9c9..b029c76 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -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) },
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 11/21] sf: Remove legacy idcode detection code
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (9 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 10/21] sf: params: Add S25FS256S_64K spi flash support Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 12/21] sf: Remove non-meaningful comments Jagan Teki
                   ` (10 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

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 <yunhui.cui@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_internal.h |  6 ----
 drivers/mtd/spi/spi_flash.c   | 78 -------------------------------------------
 2 files changed, 84 deletions(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index f2ea368..d50fb9a 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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]))
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index ba884d7..27b85ba 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -999,94 +999,16 @@ int spi_flash_decode_fdt(const void *blob, struct spi_flash *flash)
 }
 #endif /* CONFIG_IS_ENABLED(OF_CONTROL) */
 
-#ifdef CONFIG_SPI_FLASH_SPANSION
-static int spansion_s25fss_disable_4KB_erase(struct spi_slave *spi)
-{
-	u8 cmd[4];
-	u32 offset = 0x800004; /* CR3V register offset */
-	u8 cr3v;
-	int ret;
-
-	cmd[0] = CMD_SPANSION_RDAR;
-	cmd[1] = offset >> 16;
-	cmd[2] = offset >> 8;
-	cmd[3] = offset >> 0;
-
-	ret = spi_flash_cmd_read(spi, cmd, 4, &cr3v, 1);
-	if (ret)
-		return -EIO;
-	/* CR3V bit3: 4-KB Erase */
-	if (cr3v & 0x8)
-		return 0;
-
-	cmd[0] = CMD_SPANSION_WRAR;
-	cr3v |= 0x8;
-	ret = spi_flash_cmd_write(spi, cmd, 4, &cr3v, 1);
-	if (ret)
-		return -EIO;
-
-	cmd[0] = CMD_SPANSION_RDAR;
-	ret = spi_flash_cmd_read(spi, cmd, 4, &cr3v, 1);
-	if (ret)
-		return -EIO;
-	if (!(cr3v & 0x8))
-		return -EFAULT;
-
-	return 0;
-}
-#endif
-
 int spi_flash_scan(struct spi_flash *flash)
 {
 	struct spi_slave *spi = flash->spi;
 	const struct spi_flash_info *info = NULL;
-	u16 jedec, ext_jedec;
-	u8 idcode[5];
 	int ret;
 
 	info = spi_flash_read_id(flash);
 	if (IS_ERR_OR_NULL(info))
 		return -ENOENT;
 
-	jedec = idcode[1] << 8 | idcode[2];
-	ext_jedec = idcode[3] << 8 | idcode[4];
-
-#ifdef CONFIG_SPI_FLASH_SPANSION
-	/*
-	 * The S25FS-S family physical sectors may be configured as a
-	 * hybrid combination of eight 4-kB parameter sectors
-	 *@the top or bottom of the address space with all
-	 * but one of the remaining sectors being uniform size.
-	 * The Parameter Sector Erase commands (20h or 21h) must
-	 * be used to erase the 4-kB parameter sectors individually.
-	 * The Sector (uniform sector) Erase commands (D8h or DCh)
-	 * must be used to erase any of the remaining
-	 * sectors, including the portion of highest or lowest address
-	 * sector that is not overlaid by the parameter sectors.
-	 * The uniform sector erase command has no effect on parameter sectors.
-	 */
-	if ((jedec == 0x0219 || (jedec == 0x0220)) &&
-	    (ext_jedec & 0xff00) == 0x4d00) {
-		int ret;
-		u8 id[6];
-
-		/* Read the ID codes again, 6 bytes */
-		ret = spi_flash_cmd(flash->spi, CMD_READ_ID, id, sizeof(id));
-		if (ret)
-			return -EIO;
-
-		ret = memcmp(id, idcode, 5);
-		if (ret)
-			return -EIO;
-
-		/* 0x81: S25FS-S family 0x80: S25FL-S family */
-		if (id[5] == 0x81) {
-			ret = spansion_s25fss_disable_4KB_erase(spi);
-			if (ret)
-				return ret;
-		}
-	}
-#endif
 	/* Flash powers up read-only, so clear BP# bits */
 	if (JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_ATMEL ||
 	    JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_MACRONIX ||
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 12/21] sf: Remove non-meaningful comments
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (10 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 11/21] sf: Remove legacy idcode detection code Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids Jagan Teki
                   ` (9 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/spi_flash.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 27b85ba..c1025c9 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -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)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (11 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 12/21] sf: Remove non-meaningful comments Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 14/21] sf: ids: Use small letter's with flash name Jagan Teki
                   ` (8 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

spi_flash_ids.c is more meaningful name as the flash_info
table structure spi_flash_info has spi_flash_ids instance.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 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

diff --git a/drivers/mtd/spi/Makefile b/drivers/mtd/spi/Makefile
index f3dc409..fcda023 100644
--- a/drivers/mtd/spi/Makefile
+++ b/drivers/mtd/spi/Makefile
@@ -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
diff --git a/drivers/mtd/spi/spi_flash_ids.c b/drivers/mtd/spi/spi_flash_ids.c
new file mode 100644
index 0000000..3648608
--- /dev/null
+++ b/drivers/mtd/spi/spi_flash_ids.c
@@ -0,0 +1,176 @@
+/*
+ * SPI Flash ID's.
+ *
+ * Copyright (C) 2016 Jagan Teki <jagan@openedev.com>
+ * Copyright (C) 2013 Jagannadha Sutradharudu Teki, Xilinx Inc.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include "sf_internal.h"
+
+/* Used when the "_ext_id" is two bytes at most */
+#define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags)	\
+		.id = {							\
+			((_jedec_id) >> 16) & 0xff,			\
+			((_jedec_id) >> 8) & 0xff,			\
+			(_jedec_id) & 0xff,				\
+			((_ext_id) >> 8) & 0xff,			\
+			(_ext_id) & 0xff,				\
+			},						\
+		.id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0))),	\
+		.sector_size = (_sector_size),				\
+		.n_sectors = (_n_sectors),				\
+		.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) },
+	{"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) },
+#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) },
+#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) },
+#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) },
+#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) },
+#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) },
+#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) },
+#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) },
+#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)
+	 */
+};
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 14/21] sf: ids: Use small letter's with flash name
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (12 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 15/21] sf: ids: Use small letter in ext_jedec Jagan Teki
                   ` (7 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

For readability use small letter's with flash name.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/spi_flash_ids.c | 220 ++++++++++++++++++++--------------------
 1 file changed, 110 insertions(+), 110 deletions(-)

diff --git a/drivers/mtd/spi/spi_flash_ids.c b/drivers/mtd/spi/spi_flash_ids.c
index 3648608..bdc6244 100644
--- a/drivers/mtd/spi/spi_flash_ids.c
+++ b/drivers/mtd/spi/spi_flash_ids.c
@@ -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)
 	 */
 };
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 15/21] sf: ids: Use small letter in ext_jedec
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (13 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 14/21] sf: ids: Use small letter's with flash name Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 16/21] sf: Rename few local functions Jagan Teki
                   ` (6 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

Use small 'd' in s25s512s ext_jedec

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/spi_flash_ids.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/spi/spi_flash_ids.c b/drivers/mtd/spi/spi_flash_ids.c
index bdc6244..77fe3dd 100644
--- a/drivers/mtd/spi/spi_flash_ids.c
+++ b/drivers/mtd/spi/spi_flash_ids.c
@@ -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) },
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 16/21] sf: Rename few local functions
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (14 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 15/21] sf: ids: Use small letter in ext_jedec Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code Jagan Teki
                   ` (5 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

spi_flash_write_bar-> write_bar
spi_flash_write_bar -> read_bar
spi_flash_cmd_wait_ready -> spi_flash_wait_till_ready

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_internal.h |  2 +-
 drivers/mtd/spi/spi_flash.c   | 23 +++++++++++------------
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index d50fb9a..2feb3b8 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -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,
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index c1025c9..b4001a5 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -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
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (15 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 16/21] sf: Rename few local functions Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 18/21] sf: dataflash: Remove unneeded spi data Jagan Teki
                   ` (4 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

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.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf.c        | 4 ----
 drivers/mtd/spi/spi_flash.c | 1 -
 include/spi.h               | 6 ------
 3 files changed, 11 deletions(-)

diff --git a/drivers/mtd/spi/sf.c b/drivers/mtd/spi/sf.c
index 664e860..d5e175c 100644
--- a/drivers/mtd/spi/sf.c
+++ b/drivers/mtd/spi/sf.c
@@ -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;
 
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index b4001a5..708991c 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -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;
diff --git a/include/spi.h b/include/spi.h
index 4c17983..deb65ef 100644
--- a/include/spi.h
+++ b/include/spi.h
@@ -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)
 };
 
 /**
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 18/21] sf: dataflash: Remove unneeded spi data
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (16 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 19/21] sf: dataflash: Move flash id detection into jedec_probe Jagan Teki
                   ` (3 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

dataflash doesn't require options, memory_map from spi.

Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: York Sun <york.sun@nxp.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_dataflash.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/mtd/spi/sf_dataflash.c b/drivers/mtd/spi/sf_dataflash.c
index b2a56da..6a9dfef 100644
--- a/drivers/mtd/spi/sf_dataflash.c
+++ b/drivers/mtd/spi/sf_dataflash.c
@@ -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;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 19/21] sf: dataflash: Move flash id detection into jedec_probe
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (17 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 18/21] sf: dataflash: Remove unneeded spi data Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:08   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 20/21] sf: dataflash: Fix add_dataflash return logic Jagan Teki
                   ` (2 subsequent siblings)
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

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_probe instead of id detection and
validated through flash_info{} table separatly.

Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: York Sun <york.sun@nxp.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_dataflash.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/mtd/spi/sf_dataflash.c b/drivers/mtd/spi/sf_dataflash.c
index 6a9dfef..7c6c8d2 100644
--- a/drivers/mtd/spi/sf_dataflash.c
+++ b/drivers/mtd/spi/sf_dataflash.c
@@ -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,
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 20/21] sf: dataflash: Fix add_dataflash return logic
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (18 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 19/21] sf: dataflash: Move flash id detection into jedec_probe Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:09   ` Simon Glass
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 21/21] sf: dataflash: Minor cleanups Jagan Teki
  2016-11-01 19:07 ` [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

This patch fixed the add_dataflash return logic,
so-that it can handle both jedec and older chips
same as Linux.

Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: York Sun <york.sun@nxp.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_dataflash.c | 127 ++++++++++++++++++++---------------------
 1 file changed, 61 insertions(+), 66 deletions(-)

diff --git a/drivers/mtd/spi/sf_dataflash.c b/drivers/mtd/spi/sf_dataflash.c
index 7c6c8d2..212aa69 100644
--- a/drivers/mtd/spi/sf_dataflash.c
+++ b/drivers/mtd/spi/sf_dataflash.c
@@ -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;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 21/21] sf: dataflash: Minor cleanups
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (19 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 20/21] sf: dataflash: Fix add_dataflash return logic Jagan Teki
@ 2016-10-30 17:46 ` Jagan Teki
  2016-11-05 16:10   ` Simon Glass
  2016-11-01 19:07 ` [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-30 17:46 UTC (permalink / raw)
  To: u-boot

- 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

Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: York Sun <york.sun@nxp.com>
Signed-off-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_dataflash.c | 38 +++++++++++++++-----------------------
 1 file changed, 15 insertions(+), 23 deletions(-)

diff --git a/drivers/mtd/spi/sf_dataflash.c b/drivers/mtd/spi/sf_dataflash.c
index 212aa69..bcddfa0 100644
--- a/drivers/mtd/spi/sf_dataflash.c
+++ b/drivers/mtd/spi/sf_dataflash.c
@@ -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;
 	}
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux Jagan Teki
@ 2016-10-31  3:18   ` Vignesh R
  2016-10-31  8:54     ` Jagan Teki
  2016-11-08  4:52   ` york sun
       [not found]   ` <f9c01ab9-6792-8e29-995c-10c2b3bae0c0@nxp.com>
  2 siblings, 1 reply; 60+ messages in thread
From: Vignesh R @ 2016-10-31  3:18 UTC (permalink / raw)
  To: u-boot



On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
[...]
> +	{"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.

-- 
Regards
Vignesh

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-31  3:18   ` Vignesh R
@ 2016-10-31  8:54     ` Jagan Teki
  2016-10-31  9:20       ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-31  8:54 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 31, 2016 at 8:48 AM, Vignesh R <vigneshr@ti.com> wrote:
>
>
> On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
> [...]
>> +     {"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.

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!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-31  8:54     ` Jagan Teki
@ 2016-10-31  9:20       ` Jagan Teki
  2016-10-31  9:32         ` Vignesh R
  0 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-31  9:20 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 31, 2016 at 2:24 PM, Jagan Teki <jagan@openedev.com> wrote:
> On Mon, Oct 31, 2016 at 8:48 AM, Vignesh R <vigneshr@ti.com> wrote:
>>
>>
>> On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
>> [...]
>>> +     {"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.
>
> 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!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-31  9:20       ` Jagan Teki
@ 2016-10-31  9:32         ` Vignesh R
  2016-10-31  9:35           ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Vignesh R @ 2016-10-31  9:32 UTC (permalink / raw)
  To: u-boot



On Monday 31 October 2016 02:50 PM, Jagan Teki wrote:
> On Mon, Oct 31, 2016 at 2:24 PM, Jagan Teki <jagan@openedev.com> wrote:
>> On Mon, Oct 31, 2016 at 8:48 AM, Vignesh R <vigneshr@ti.com> wrote:
>>>
>>>
>>> On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
>>> [...]
>>>> +     {"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.
>>
>> 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!


-- 
Regards
Vignesh

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-31  9:32         ` Vignesh R
@ 2016-10-31  9:35           ` Jagan Teki
  2016-10-31  9:43             ` Vignesh R
  0 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-10-31  9:35 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 31, 2016 at 3:02 PM, Vignesh R <vigneshr@ti.com> wrote:
>
>
> On Monday 31 October 2016 02:50 PM, Jagan Teki wrote:
>> On Mon, Oct 31, 2016 at 2:24 PM, Jagan Teki <jagan@openedev.com> wrote:
>>> On Mon, Oct 31, 2016 at 8:48 AM, Vignesh R <vigneshr@ti.com> wrote:
>>>>
>>>>
>>>> On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
>>>> [...]
>>>>> +     {"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.
>>>
>>> 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!

Now it's s25fl512s_256k changed to lower-case hope you detect the same?

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-31  9:35           ` Jagan Teki
@ 2016-10-31  9:43             ` Vignesh R
  2016-10-31  9:51               ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Vignesh R @ 2016-10-31  9:43 UTC (permalink / raw)
  To: u-boot



On Monday 31 October 2016 03:05 PM, Jagan Teki wrote:
> On Mon, Oct 31, 2016 at 3:02 PM, Vignesh R <vigneshr@ti.com> wrote:
>>
>>
>> On Monday 31 October 2016 02:50 PM, Jagan Teki wrote:
>>> On Mon, Oct 31, 2016 at 2:24 PM, Jagan Teki <jagan@openedev.com> wrote:
>>>> On Mon, Oct 31, 2016 at 8:48 AM, Vignesh R <vigneshr@ti.com> wrote:
>>>>>
>>>>>
>>>>> On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
>>>>> [...]
>>>>>> +     {"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.
>>>>
>>>> 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!
> 
> Now it's s25fl512s_256k changed 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
=>


-- 
Regards
Vignesh

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-31  9:43             ` Vignesh R
@ 2016-10-31  9:51               ` Jagan Teki
  0 siblings, 0 replies; 60+ messages in thread
From: Jagan Teki @ 2016-10-31  9:51 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 31, 2016 at 3:13 PM, Vignesh R <vigneshr@ti.com> wrote:
>
>
> On Monday 31 October 2016 03:05 PM, Jagan Teki wrote:
>> On Mon, Oct 31, 2016 at 3:02 PM, Vignesh R <vigneshr@ti.com> wrote:
>>>
>>>
>>> On Monday 31 October 2016 02:50 PM, Jagan Teki wrote:
>>>> On Mon, Oct 31, 2016 at 2:24 PM, Jagan Teki <jagan@openedev.com> wrote:
>>>>> On Mon, Oct 31, 2016 at 8:48 AM, Vignesh R <vigneshr@ti.com> wrote:
>>>>>>
>>>>>>
>>>>>> On Sunday 30 October 2016 11:16 PM, Jagan Teki wrote:
>>>>>> [...]
>>>>>>> +     {"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.
>>>>>
>>>>> 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!
>>
>> Now it's s25fl512s_256k changed 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
> =>

Perfect, thanks!

-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection
  2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
                   ` (20 preceding siblings ...)
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 21/21] sf: dataflash: Minor cleanups Jagan Teki
@ 2016-11-01 19:07 ` Jagan Teki
  2016-11-01 20:36   ` York
  21 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-11-01 19:07 UTC (permalink / raw)
  To: u-boot

On Sun, Oct 30, 2016 at 11:16 PM, Jagan Teki <jagan@openedev.com> wrote:
> 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

York, can you test this with dataflash?

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection
  2016-11-01 19:07 ` [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
@ 2016-11-01 20:36   ` York
  0 siblings, 0 replies; 60+ messages in thread
From: York @ 2016-11-01 20:36 UTC (permalink / raw)
  To: u-boot

I am out for a conference. Will take a look when I get back.

York

On Nov 1, 2016 13:07, "Jagan Teki" <jagan@openedev.com> wrote:

> On Sun, Oct 30, 2016 at 11:16 PM, Jagan Teki <jagan@openedev.com> wrote:
> > 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
>
> York, can you test this with dataflash?
>
> thanks!
> --
> Jagan Teki
> Free Software Engineer | www.openedev.com
> U-Boot, Linux | Upstream Maintainer
> Hyderabad, India.
>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  2016-11-15  7:02     ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Simplify the flash_lock ops detection code and added
> meaningful comment.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/spi_flash.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

>
> diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
> index daa9014..b92b0bf 100644
> --- a/drivers/mtd/spi/spi_flash.c
> +++ b/drivers/mtd/spi/spi_flash.c
> @@ -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));

Did you intentionally drop this?

>         }
> +#endif
>
>         /* Compute the flash size */
>         flash->shift = (flash->dual_flash & SF_DUAL_PARALLEL_FLASH) ? 1 : 0;
> --
> 2.7.4
>


Regards,
Simon

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 03/21] sf: sandbox: Use JEDEC_MFR|ID in id exctract
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 03/21] sf: sandbox: Use JEDEC_MFR|ID in id exctract Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Instead of extracting id's separately better
> to use JEDEC_MFR|ID for code simplicity.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sandbox.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{}
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{} Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  2016-11-15  7:45     ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> - Proper tabs spaces
> - Removed unnecessary
> - Added meaningful comments
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_internal.h | 22 ++++++++--------------
>  1 file changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
> index a9455ac..71feba9 100644
> --- a/drivers/mtd/spi/sf_internal.h
> +++ b/drivers/mtd/spi/sf_internal.h
> @@ -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

Why remove these comments? For 'flags' it would be good to point to
the enum / #define that describes its values.

> - */
>  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

/*
 * The size

> +        * 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)
> --
> 2.7.4
>

Regards,
Simon

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  2016-11-15  7:54     ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> - Move headers froms sf_params to common header file
> - Removed unnecessary comment
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_internal.h | 5 +++--
>  drivers/mtd/spi/sf_params.c   | 5 -----
>  2 files changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
> index 71feba9..4a88cf7 100644
> --- a/drivers/mtd/spi/sf_internal.h
> +++ b/drivers/mtd/spi/sf_internal.h
> @@ -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.

>
>  /* Dual SPI flash memories - see SPI_COMM_DUAL_... */
>  enum spi_dual_flash {
> diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
> index 7fcc3bc..7314455 100644
> --- a/drivers/mtd/spi/sf_params.c
> +++ b/drivers/mtd/spi/sf_params.c
> @@ -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) },
> --
> 2.7.4
>

Regards,
Simon

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 06/21] sf: nr_sectors -> n_sectors
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 06/21] sf: nr_sectors -> n_sectors Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Rename nr_sectors as n_sectors to sync with Linux.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  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(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 07/21] sf: Add SPI_FLASH_MAX_ID_LEN
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 07/21] sf: Add SPI_FLASH_MAX_ID_LEN Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Add id length of 5 bytes numerical value to macro.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_internal.h | 3 ++-
>  drivers/mtd/spi/spi_flash.c   | 4 ++--
>  2 files changed, 4 insertions(+), 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 08/21] sf: Increase max id length by 1 byte
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 08/21] sf: Increase max id length by 1 byte Jagan Teki
@ 2016-11-05 16:07   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:07 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> So, now SPI_FLASH_ID_MAX_LEN is 6 bytes useful for
> few spansion flash families S25FS-S
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_internal.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 09/21] sf: Add INFO6 flash_info macro
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 09/21] sf: Add INFO6 flash_info macro Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> INFO6 is for tabulating 6 byte flash parts, Ex: S25FS256S_64K
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_params.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 10/21] sf: params: Add S25FS256S_64K spi flash support
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 10/21] sf: params: Add S25FS256S_64K spi flash support Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Add 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.
>
> Cc: Yunhui Cui <yunhui.cui@nxp.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Michael Trimarchi <michael@amarulasolutions.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_params.c | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 11/21] sf: Remove legacy idcode detection code
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 11/21] sf: Remove legacy idcode detection code Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> 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 <yunhui.cui@nxp.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Michael Trimarchi <michael@amarulasolutions.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_internal.h |  6 ----
>  drivers/mtd/spi/spi_flash.c   | 78 -------------------------------------------
>  2 files changed, 84 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 12/21] sf: Remove non-meaningful comments
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 12/21] sf: Remove non-meaningful comments Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/spi_flash.c | 3 ---
>  1 file changed, 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

Good to have a commit message.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  2016-11-15  7:50     ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> spi_flash_ids.c is more meaningful name as the flash_info
> table structure spi_flash_info has spi_flash_ids instance.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  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

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 14/21] sf: ids: Use small letter's with flash name
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 14/21] sf: ids: Use small letter's with flash name Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> For readability use small letter's with flash name.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/spi_flash_ids.c | 220 ++++++++++++++++++++--------------------
>  1 file changed, 110 insertions(+), 110 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 15/21] sf: ids: Use small letter in ext_jedec
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 15/21] sf: ids: Use small letter in ext_jedec Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> Use small 'd' in s25s512s ext_jedec
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/spi_flash_ids.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 16/21] sf: Rename few local functions
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 16/21] sf: Rename few local functions Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> spi_flash_write_bar-> write_bar
> spi_flash_write_bar -> read_bar
> spi_flash_cmd_wait_ready -> spi_flash_wait_till_ready

nit: how about wait_until_ready or wait_ready? 'till' is an abreviation

>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_internal.h |  2 +-
>  drivers/mtd/spi/spi_flash.c   | 23 +++++++++++------------
>  2 files changed, 12 insertions(+), 13 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  2016-11-15  7:53     ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> 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.

>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf.c        | 4 ----
>  drivers/mtd/spi/spi_flash.c | 1 -
>  include/spi.h               | 6 ------
>  3 files changed, 11 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

> diff --git a/drivers/mtd/spi/sf.c b/drivers/mtd/spi/sf.c
> index 664e860..d5e175c 100644
> --- a/drivers/mtd/spi/sf.c
> +++ b/drivers/mtd/spi/sf.c
> @@ -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;
>
> diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
> index b4001a5..708991c 100644
> --- a/drivers/mtd/spi/spi_flash.c
> +++ b/drivers/mtd/spi/spi_flash.c
> @@ -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;
> diff --git a/include/spi.h b/include/spi.h
> index 4c17983..deb65ef 100644
> --- a/include/spi.h
> +++ b/include/spi.h
> @@ -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
>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 18/21] sf: dataflash: Remove unneeded spi data
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 18/21] sf: dataflash: Remove unneeded spi data Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> dataflash doesn't require options, memory_map from spi.
>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: York Sun <york.sun@nxp.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_dataflash.c | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 19/21] sf: dataflash: Move flash id detection into jedec_probe
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 19/21] sf: dataflash: Move flash id detection into jedec_probe Jagan Teki
@ 2016-11-05 16:08   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:08 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> 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_probe instead of id detection and
> validated through flash_info{} table separatly.
>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: York Sun <york.sun@nxp.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_dataflash.c | 19 ++++++++++---------
>  1 file changed, 10 insertions(+), 9 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 20/21] sf: dataflash: Fix add_dataflash return logic
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 20/21] sf: dataflash: Fix add_dataflash return logic Jagan Teki
@ 2016-11-05 16:09   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:09 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> This patch fixed the add_dataflash return logic,
> so-that it can handle both jedec and older chips
> same as Linux.
>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: York Sun <york.sun@nxp.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_dataflash.c | 127 ++++++++++++++++++++---------------------
>  1 file changed, 61 insertions(+), 66 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 21/21] sf: dataflash: Minor cleanups
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 21/21] sf: dataflash: Minor cleanups Jagan Teki
@ 2016-11-05 16:10   ` Simon Glass
  0 siblings, 0 replies; 60+ messages in thread
From: Simon Glass @ 2016-11-05 16:10 UTC (permalink / raw)
  To: u-boot

On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
> - 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
>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: York Sun <york.sun@nxp.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi/sf_dataflash.c | 38 +++++++++++++++-----------------------
>  1 file changed, 15 insertions(+), 23 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-10-30 17:46 ` [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux Jagan Teki
  2016-10-31  3:18   ` Vignesh R
@ 2016-11-08  4:52   ` york sun
       [not found]   ` <f9c01ab9-6792-8e29-995c-10c2b3bae0c0@nxp.com>
  2 siblings, 0 replies; 60+ messages in thread
From: york sun @ 2016-11-08  4:52 UTC (permalink / raw)
  To: u-boot

On 10/30/2016 10:47 AM, Jagan Teki wrote:
> 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
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Cc: York Sun <york.sun@nxp.com>
> Cc: Vignesh R <vigneshr@ti.com>
> Cc: Mugunthan V N <mugunthanvnm@ti.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Jagan Teki <jagan@openedev.com>
> ---
>  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 B4860QDS 
T1040RDB_SECURE_BOOT 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 T4240RDB 
T4160QDS_NAND T1042D4RDB_SECURE_BOOT T1042RDB_SECURE_BOOT T2080RDB 
T4240QDS_SECURE_BOOT T1024QDS T1040RDB T1042RDB_PI_NAND T2080RDB_NAND 
T1042RDB_PI_SDCARD T1042D4RDB_NAND T2081QDS_NAND T4160QDS_SDCARD 
T2080QDS_SDCARD T1042RDB T4160QDS_SECURE_BOOT T1040RDB_SDCARD 
T2081QDS_SRIO_PCIE_BOOT T2080RDB_SECURE_BOOT B4860QDS_SECURE_BOOT 
T1040QDS T1042D4RDB B4860QDS_NAND T1040QDS_DDR4 T2080QDS_SECURE_BOOT 
T2080RDB_SPIFLASH T4240QDS_SDCARD T1024QDS_DDR4 T1040D4RDB_SDCARD 
T1040D4RDB_SPIFLASH 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 
T1042D4RDB_SDCARD T2081QDS_SDCARD T1024RDB_SDCARD T1042RDB_PI 
B4420QDS_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

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
       [not found]   ` <f9c01ab9-6792-8e29-995c-10c2b3bae0c0@nxp.com>
@ 2016-11-08 17:29     ` york sun
  2016-11-16  3:16       ` Jagan Teki
  0 siblings, 1 reply; 60+ messages in thread
From: york sun @ 2016-11-08 17:29 UTC (permalink / raw)
  To: u-boot

On 11/07/2016 08:52 PM, york.sun at nxp.com wrote:
> On 10/30/2016 10:47 AM, Jagan Teki wrote:
>> 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
>>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Bin Meng <bmeng.cn@gmail.com>
>> Cc: York Sun <york.sun@nxp.com>
>> Cc: Vignesh R <vigneshr@ti.com>
>> Cc: Mugunthan V N <mugunthanvnm@ti.com>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
>> Signed-off-by: Jagan Teki <jagan@openedev.com>
>> ---
>>  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 B4860QDS
> T1040RDB_SECURE_BOOT 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 T4240RDB
> T4160QDS_NAND T1042D4RDB_SECURE_BOOT T1042RDB_SECURE_BOOT T2080RDB
> T4240QDS_SECURE_BOOT T1024QDS T1040RDB T1042RDB_PI_NAND T2080RDB_NAND
> T1042RDB_PI_SDCARD T1042D4RDB_NAND T2081QDS_NAND T4160QDS_SDCARD
> T2080QDS_SDCARD T1042RDB T4160QDS_SECURE_BOOT T1040RDB_SDCARD
> T2081QDS_SRIO_PCIE_BOOT T2080RDB_SECURE_BOOT B4860QDS_SECURE_BOOT
> T1040QDS T1042D4RDB B4860QDS_NAND T1040QDS_DDR4 T2080QDS_SECURE_BOOT
> T2080RDB_SPIFLASH T4240QDS_SDCARD T1024QDS_DDR4 T1040D4RDB_SDCARD
> T1040D4RDB_SPIFLASH 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
> T1042D4RDB_SDCARD T2081QDS_SDCARD T1024RDB_SDCARD T1042RDB_PI
> B4420QDS_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]

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_ep 
ls1046aqds_nand evb-rk3399 ls2080ardb_SECURE_BOOT ls1046aqds 
ls1043aqds_nand ls1043ardb_SECURE_BOOT ls1043aqds_lpuart ls1043ardb_nand 
ls2080aqds ls2080ardb p2371-0000 ls1043aqds_nor_ddr3 
xilinx_zynqmp_zc1751_xm016_dc2 e2220-1170 ls1043ardb_sdcard 
ls1043aqds_sdcard_ifc
        arm:  +   mx6sabresd_spl vf610twr_nand mx6slevk_spinor 
ls1021atwr_sdcard_qspi vf610twr mx6sxsabresd_spl mx6ul_14x14_evk 
mx6slevk_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

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code
  2016-11-05 16:07   ` Simon Glass
@ 2016-11-15  7:02     ` Jagan Teki
  0 siblings, 0 replies; 60+ messages in thread
From: Jagan Teki @ 2016-11-15  7:02 UTC (permalink / raw)
  To: u-boot

On Sat, Nov 5, 2016 at 9:37 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Jagan,
>
> On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
>> Simplify the flash_lock ops detection code and added
>> meaningful comment.
>>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Bin Meng <bmeng.cn@gmail.com>
>> Cc: York Sun <york.sun@nxp.com>
>> Cc: Vignesh R <vigneshr@ti.com>
>> Cc: Mugunthan V N <mugunthanvnm@ti.com>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
>> Signed-off-by: Jagan Teki <jagan@openedev.com>
>> ---
>>  drivers/mtd/spi/spi_flash.c | 12 ++++--------
>>  1 file changed, 4 insertions(+), 8 deletions(-)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
>>
>> diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
>> index daa9014..b92b0bf 100644
>> --- a/drivers/mtd/spi/spi_flash.c
>> +++ b/drivers/mtd/spi/spi_flash.c
>> @@ -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));
>
> Did you intentionally drop this?

Since spi_flash_protect returns -EOPNOTSUPP, this extra debug not need.

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{}
  2016-11-05 16:07   ` Simon Glass
@ 2016-11-15  7:45     ` Jagan Teki
  0 siblings, 0 replies; 60+ messages in thread
From: Jagan Teki @ 2016-11-15  7:45 UTC (permalink / raw)
  To: u-boot

On Sat, Nov 5, 2016 at 9:37 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Jagan,
>
> On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
>> - Proper tabs spaces
>> - Removed unnecessary
>> - Added meaningful comments
>>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Bin Meng <bmeng.cn@gmail.com>
>> Cc: York Sun <york.sun@nxp.com>
>> Cc: Vignesh R <vigneshr@ti.com>
>> Cc: Mugunthan V N <mugunthanvnm@ti.com>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
>> Signed-off-by: Jagan Teki <jagan@openedev.com>
>> ---
>>  drivers/mtd/spi/sf_internal.h | 22 ++++++++--------------
>>  1 file changed, 8 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
>> index a9455ac..71feba9 100644
>> --- a/drivers/mtd/spi/sf_internal.h
>> +++ b/drivers/mtd/spi/sf_internal.h
>> @@ -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
>
> 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.

>
>> - */
>>  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
>
> /*
>  * The size

Will fix this.

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids
  2016-11-05 16:08   ` Simon Glass
@ 2016-11-15  7:50     ` Jagan Teki
  0 siblings, 0 replies; 60+ messages in thread
From: Jagan Teki @ 2016-11-15  7:50 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On Sat, Nov 5, 2016 at 9:38 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Jagan,
>
> On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
>> spi_flash_ids.c is more meaningful name as the flash_info
>> table structure spi_flash_info has spi_flash_ids instance.
>>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Bin Meng <bmeng.cn@gmail.com>
>> Cc: York Sun <york.sun@nxp.com>
>> Cc: Vignesh R <vigneshr@ti.com>
>> Cc: Mugunthan V N <mugunthanvnm@ti.com>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
>> Signed-off-by: Jagan Teki <jagan@openedev.com>
>> ---
>>  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?

Yes, the existing sf_params.c and will update the patch by removing the same.

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code
  2016-11-05 16:08   ` Simon Glass
@ 2016-11-15  7:53     ` Jagan Teki
  0 siblings, 0 replies; 60+ messages in thread
From: Jagan Teki @ 2016-11-15  7:53 UTC (permalink / raw)
  To: u-boot

On Sat, Nov 5, 2016 at 9:38 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Jagan,
>
> On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
>> 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.

OK, will append the required commit message.

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params
  2016-11-05 16:07   ` Simon Glass
@ 2016-11-15  7:54     ` Jagan Teki
  0 siblings, 0 replies; 60+ messages in thread
From: Jagan Teki @ 2016-11-15  7:54 UTC (permalink / raw)
  To: u-boot

On Sat, Nov 5, 2016 at 9:37 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Jagan,
>
> On 30 October 2016 at 11:46, Jagan Teki <jagan@openedev.com> wrote:
>> - Move headers froms sf_params to common header file
>> - Removed unnecessary comment
>>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Bin Meng <bmeng.cn@gmail.com>
>> Cc: York Sun <york.sun@nxp.com>
>> Cc: Vignesh R <vigneshr@ti.com>
>> Cc: Mugunthan V N <mugunthanvnm@ti.com>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
>> Signed-off-by: Jagan Teki <jagan@openedev.com>
>> ---
>>  drivers/mtd/spi/sf_internal.h | 5 +++--
>>  drivers/mtd/spi/sf_params.c   | 5 -----
>>  2 files changed, 3 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
>> index 71feba9..4a88cf7 100644
>> --- a/drivers/mtd/spi/sf_internal.h
>> +++ b/drivers/mtd/spi/sf_internal.h
>> @@ -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.

OK, will skip this patch.

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-11-08 17:29     ` york sun
@ 2016-11-16  3:16       ` Jagan Teki
  2016-11-16 17:56         ` york sun
  0 siblings, 1 reply; 60+ messages in thread
From: Jagan Teki @ 2016-11-16  3:16 UTC (permalink / raw)
  To: u-boot

York,

Please test again?


On Tue, Nov 8, 2016 at 10:59 PM, york sun <york.sun@nxp.com> wrote:
> On 11/07/2016 08:52 PM, york.sun at nxp.com wrote:
>> On 10/30/2016 10:47 AM, Jagan Teki wrote:
>>> 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
>>>
>>> Cc: Simon Glass <sjg@chromium.org>
>>> Cc: Bin Meng <bmeng.cn@gmail.com>
>>> Cc: York Sun <york.sun@nxp.com>
>>> Cc: Vignesh R <vigneshr@ti.com>
>>> Cc: Mugunthan V N <mugunthanvnm@ti.com>
>>> Cc: Michal Simek <michal.simek@xilinx.com>
>>> Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
>>> Signed-off-by: Jagan Teki <jagan@openedev.com>
>>> ---
>>>  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 B4860QDS
>> T1040RDB_SECURE_BOOT 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 T4240RDB
>> T4160QDS_NAND T1042D4RDB_SECURE_BOOT T1042RDB_SECURE_BOOT T2080RDB
>> T4240QDS_SECURE_BOOT T1024QDS T1040RDB T1042RDB_PI_NAND T2080RDB_NAND
>> T1042RDB_PI_SDCARD T1042D4RDB_NAND T2081QDS_NAND T4160QDS_SDCARD
>> T2080QDS_SDCARD T1042RDB T4160QDS_SECURE_BOOT T1040RDB_SDCARD
>> T2081QDS_SRIO_PCIE_BOOT T2080RDB_SECURE_BOOT B4860QDS_SECURE_BOOT
>> T1040QDS T1042D4RDB B4860QDS_NAND T1040QDS_DDR4 T2080QDS_SECURE_BOOT
>> T2080RDB_SPIFLASH T4240QDS_SDCARD T1024QDS_DDR4 T1040D4RDB_SDCARD
>> T1040D4RDB_SPIFLASH 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
>> T1042D4RDB_SDCARD T2081QDS_SDCARD T1024RDB_SDCARD T1042RDB_PI
>> B4420QDS_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]
>
> 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_ep
> ls1046aqds_nand evb-rk3399 ls2080ardb_SECURE_BOOT ls1046aqds
> ls1043aqds_nand ls1043ardb_SECURE_BOOT ls1043aqds_lpuart ls1043ardb_nand
> ls2080aqds ls2080ardb p2371-0000 ls1043aqds_nor_ddr3
> xilinx_zynqmp_zc1751_xm016_dc2 e2220-1170 ls1043ardb_sdcard
> ls1043aqds_sdcard_ifc
>         arm:  +   mx6sabresd_spl vf610twr_nand mx6slevk_spinor
> ls1021atwr_sdcard_qspi vf610twr mx6sxsabresd_spl mx6ul_14x14_evk
> mx6slevk_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
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot



-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux
  2016-11-16  3:16       ` Jagan Teki
@ 2016-11-16 17:56         ` york sun
  0 siblings, 0 replies; 60+ messages in thread
From: york sun @ 2016-11-16 17:56 UTC (permalink / raw)
  To: u-boot

On 11/15/2016 07:16 PM, Jagan Teki wrote:
> York,
>
> Please test again?
>

OK. It is in the queue.

York

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2016-11-16 17:56 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-30 17:46 [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
2016-10-30 17:46 ` [U-Boot] [PATCH v5 01/21] sf: Adopt flash table INFO macro from Linux Jagan Teki
2016-10-31  3:18   ` Vignesh R
2016-10-31  8:54     ` Jagan Teki
2016-10-31  9:20       ` Jagan Teki
2016-10-31  9:32         ` Vignesh R
2016-10-31  9:35           ` Jagan Teki
2016-10-31  9:43             ` Vignesh R
2016-10-31  9:51               ` Jagan Teki
2016-11-08  4:52   ` york sun
     [not found]   ` <f9c01ab9-6792-8e29-995c-10c2b3bae0c0@nxp.com>
2016-11-08 17:29     ` york sun
2016-11-16  3:16       ` Jagan Teki
2016-11-16 17:56         ` york sun
2016-10-30 17:46 ` [U-Boot] [PATCH v5 02/21] sf: Simplify lock ops detection code Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-11-15  7:02     ` Jagan Teki
2016-10-30 17:46 ` [U-Boot] [PATCH v5 03/21] sf: sandbox: Use JEDEC_MFR|ID in id exctract Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 04/21] sf: Cleanup spi_flash_info{} Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-11-15  7:45     ` Jagan Teki
2016-10-30 17:46 ` [U-Boot] [PATCH v5 05/21] sf: Cleanup sf_params Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-11-15  7:54     ` Jagan Teki
2016-10-30 17:46 ` [U-Boot] [PATCH v5 06/21] sf: nr_sectors -> n_sectors Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 07/21] sf: Add SPI_FLASH_MAX_ID_LEN Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 08/21] sf: Increase max id length by 1 byte Jagan Teki
2016-11-05 16:07   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 09/21] sf: Add INFO6 flash_info macro Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 10/21] sf: params: Add S25FS256S_64K spi flash support Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 11/21] sf: Remove legacy idcode detection code Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 12/21] sf: Remove non-meaningful comments Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 13/21] sf: Rename sf_params.c to spi_flash_ids Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-11-15  7:50     ` Jagan Teki
2016-10-30 17:46 ` [U-Boot] [PATCH v5 14/21] sf: ids: Use small letter's with flash name Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 15/21] sf: ids: Use small letter in ext_jedec Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 16/21] sf: Rename few local functions Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 17/21] spi: Remove dual flash code Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-11-15  7:53     ` Jagan Teki
2016-10-30 17:46 ` [U-Boot] [PATCH v5 18/21] sf: dataflash: Remove unneeded spi data Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 19/21] sf: dataflash: Move flash id detection into jedec_probe Jagan Teki
2016-11-05 16:08   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 20/21] sf: dataflash: Fix add_dataflash return logic Jagan Teki
2016-11-05 16:09   ` Simon Glass
2016-10-30 17:46 ` [U-Boot] [PATCH v5 21/21] sf: dataflash: Minor cleanups Jagan Teki
2016-11-05 16:10   ` Simon Glass
2016-11-01 19:07 ` [U-Boot] [PATCH v5 00/21] sf: Updates on flash detection Jagan Teki
2016-11-01 20:36   ` York

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.