Patchwork mtd: m25p80: Disable 4K erase for s25sl032p, s25sl064p

login
register
mail settings
Submitter Marek Vasut
Date Sept. 4, 2012, 3:31 a.m.
Message ID <1346729496-3303-1-git-send-email-marex@denx.de>
Download mbox | patch
Permalink /patch/181490/
State New
Headers show

Comments

Marek Vasut - Sept. 4, 2012, 3:31 a.m.
Quoting from the datasheet for S25FL064P, rev. 05, Nov 18 2011,
section 9.17:

A 64 kB sector erase (D8h) command issued on 4 kB or 8 kB erase
sectors will erase all sectors in the specified 64 kB region.
However, please note that a 4 kB sector erase (20h) or 8 kB
sector erase (40h) command will not work on a 64 kB sector.

Refering further to Table 8.1 and Table 8.2, it is clearly seen
that most of the sectors are 64kB, therefore disable this 4K
erase support since it's valid only on first/last sectors.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Cc: David Woodhouse <david.woodhouse@intel.com>
---
 drivers/mtd/devices/m25p80.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Marek Vasut - Sept. 17, 2012, 2:09 p.m.
Bump, do you think this can be queued for 3.7 please?

> Quoting from the datasheet for S25FL064P, rev. 05, Nov 18 2011,
> section 9.17:
> 
> A 64 kB sector erase (D8h) command issued on 4 kB or 8 kB erase
> sectors will erase all sectors in the specified 64 kB region.
> However, please note that a 4 kB sector erase (20h) or 8 kB
> sector erase (40h) command will not work on a 64 kB sector.
> 
> Refering further to Table 8.1 and Table 8.2, it is clearly seen
> that most of the sectors are 64kB, therefore disable this 4K
> erase support since it's valid only on first/last sectors.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> Cc: David Woodhouse <david.woodhouse@intel.com>
> ---
>  drivers/mtd/devices/m25p80.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
> index c433051..9930e23 100644
> --- a/drivers/mtd/devices/m25p80.c
> +++ b/drivers/mtd/devices/m25p80.c
> @@ -661,8 +661,8 @@ static const struct spi_device_id m25p_ids[] = {
>  	/* Spansion -- single (large) sector size only, at least
>  	 * for the chips listed here (without boot sectors).
>  	 */
> -	{ "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, SECT_4K) },
> -	{ "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, SECT_4K) },
> +	{ "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, 0) },
> +	{ "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, 0) },
>  	{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
>  	{ "s25fl256s1", INFO(0x010219, 0x4d01,  64 * 1024, 512, 0) },
>  	{ "s25fl512s",  INFO(0x010220, 0x4d00, 256 * 1024, 256, 0) },

Best regards,
Marek Vasut
Artem Bityutskiy - Sept. 21, 2012, 1:12 p.m.
On Tue, 2012-09-04 at 05:31 +0200, Marek Vasut wrote:
> Quoting from the datasheet for S25FL064P, rev. 05, Nov 18 2011,
> section 9.17:
> 
> A 64 kB sector erase (D8h) command issued on 4 kB or 8 kB erase
> sectors will erase all sectors in the specified 64 kB region.
> However, please note that a 4 kB sector erase (20h) or 8 kB
> sector erase (40h) command will not work on a 64 kB sector.
> 
> Refering further to Table 8.1 and Table 8.2, it is clearly seen
> that most of the sectors are 64kB, therefore disable this 4K
> erase support since it's valid only on first/last sectors.

Pushed to l2-mtd.git, thanks!
Marek Vasut - Sept. 21, 2012, 1:39 p.m.
Dear Artem Bityutskiy,

> On Tue, 2012-09-04 at 05:31 +0200, Marek Vasut wrote:
> > Quoting from the datasheet for S25FL064P, rev. 05, Nov 18 2011,
> > section 9.17:
> > 
> > A 64 kB sector erase (D8h) command issued on 4 kB or 8 kB erase
> > sectors will erase all sectors in the specified 64 kB region.
> > However, please note that a 4 kB sector erase (20h) or 8 kB
> > sector erase (40h) command will not work on a 64 kB sector.
> > 
> > Refering further to Table 8.1 and Table 8.2, it is clearly seen
> > that most of the sectors are 64kB, therefore disable this 4K
> > erase support since it's valid only on first/last sectors.
> 
> Pushed to l2-mtd.git, thanks!

Thank you!

Best regards,
Marek Vasut

Patch

diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index c433051..9930e23 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -661,8 +661,8 @@  static const struct spi_device_id m25p_ids[] = {
 	/* Spansion -- single (large) sector size only, at least
 	 * for the chips listed here (without boot sectors).
 	 */
-	{ "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, SECT_4K) },
-	{ "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, SECT_4K) },
+	{ "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, 0) },
+	{ "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, 0) },
 	{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
 	{ "s25fl256s1", INFO(0x010219, 0x4d01,  64 * 1024, 512, 0) },
 	{ "s25fl512s",  INFO(0x010220, 0x4d00, 256 * 1024, 256, 0) },