diff mbox

[U-Boot,v6,09/21] sf: params: Add S25FS256S_64K spi flash support

Message ID 1479268992-26811-10-git-send-email-jagan@openedev.com
State Accepted
Delegated to: Jagannadha Sutradharudu Teki
Headers show

Commit Message

Jagan Teki Nov. 16, 2016, 4:03 a.m. UTC
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: 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>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi/sf_params.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Siva Durga Prasad Paladugu Nov. 16, 2016, 6:34 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: Jagan Teki [mailto:jagan@openedev.com]
> Sent: Wednesday, November 16, 2016 9:33 AM
> To: u-boot@lists.denx.de
> Cc: Jagan Teki <jagan@openedev.com>; Yunhui Cui <yunhui.cui@nxp.com>;
> Bin Meng <bmeng.cn@gmail.com>; York Sun <york.sun@nxp.com>; Vignesh
> R <vigneshr@ti.com>; Mugunthan V N <mugunthanvnm@ti.com>; Michal
> Simek <michal.simek@xilinx.com>; Michael Trimarchi
> <michael@amarulasolutions.com>; Siva Durga Prasad Paladugu
> <sivadur@xilinx.com>
> Subject: [PATCH v6 09/21] sf: params: Add S25FS256S_64K spi flash support
> 
> 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: 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>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Reviewed-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
> d0c978e..6157e29 100644
> --- a/drivers/mtd/spi/sf_params.c
> +++ b/drivers/mtd/spi/sf_params.c
> @@ -98,6 +98,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) },
How about the below part S25FS512S, it is also from S25FS family, doesn't it need SECT_4K?
AFAIK, S25FS family, by default ships with some 4K sectors at top/Bottom but it can be configurable to uniform
Sector size.

Thanks,
Siva
>  	{"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) },
> --
> 1.9.1
diff mbox

Patch

diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
index d0c978e..6157e29 100644
--- a/drivers/mtd/spi/sf_params.c
+++ b/drivers/mtd/spi/sf_params.c
@@ -98,6 +98,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) },