From: Jagan Teki <jteki@openedev.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 23/27] sf: Rename sf_params.c to spi_flash_ids
Date: Thu, 11 Aug 2016 13:37:45 +0530 [thread overview]
Message-ID: <1470902869-22570-23-git-send-email-jteki@openedev.com> (raw)
In-Reply-To: <1470902869-22570-1-git-send-email-jteki@openedev.com>
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 <jteki@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 6f47a66..6379b4b 100644
--- a/drivers/mtd/spi/Makefile
+++ b/drivers/mtd/spi/Makefile
@@ -13,7 +13,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..61cac59
--- /dev/null
+++ b/drivers/mtd/spi/spi_flash_ids.c
@@ -0,0 +1,176 @@
+/*
+ * SPI Flash ID's.
+ *
+ * Copyright (C) 2016 Jagan Teki <jteki@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
next prev parent reply other threads:[~2016-08-11 8:07 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-11 8:07 [U-Boot] [PATCH v3 01/27] sf: Simplify fastest read cmd code Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 02/27] sf: Remove e_rd_cmd from param table Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 03/27] spi: Use mode for rx mode flags Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 04/27] spi: Remove SPI_RX_FAST Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 05/27] sf: Remove SECT_32K Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 06/27] sf: Add CONFIG_SPI_FLASH_USE_4K_SECTORS in spi_flash Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 07/27] sf: Move flags macro's to spi_flash_params{} members Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 08/27] sf: Adopt flash table INFO macro from Linux Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 09/27] sf: Add JEDEC_ID and JEDEC_EXT macro Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 10/27] sf: Rename spi_flash_params => spi_flash_info Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 11/27] sf: Add JEDEC_MFR Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 12/27] sf: Simplify lock ops detection code Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 13/27] sf: sandbox: Fix ID exctract from spi_flash_info Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 14/27] sf: Cleanup spi_flash_info{} Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 15/27] sf: Cleanup sf_params Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 16/27] sf: nr_sectors -> n_sectors Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 17/27] sf: Add SPI_FLASH_MAX_ID_LEN Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 18/27] sf: Increase max id length by 1 byte Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 19/27] sf: Add INFO6 flash_info macro Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 20/27] sf: params: Add S25FS256S_64K spi flash support Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 21/27] sf: Remove legacy idcode detection code Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 22/27] sf: Remove non-meaningful comments Jagan Teki
2016-08-11 8:07 ` Jagan Teki [this message]
2016-08-11 8:07 ` [U-Boot] [PATCH v3 24/27] sf: ids: Use small letter's with flash name Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 25/27] sf: ids: Use small letter in ext_jedec Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 26/27] sf: Rename few local functions Jagan Teki
2016-08-11 8:07 ` [U-Boot] [PATCH v3 27/27] spi: Remove dual flash code Jagan Teki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1470902869-22570-23-git-send-email-jteki@openedev.com \
--to=jteki@openedev.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is 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.