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

Submitted by Marek Vasut on Sept. 4, 2012, 3:31 a.m.

Details

Message ID 1346729496-3303-1-git-send-email-marex@denx.de
State Accepted
Commit b277f77e5d6cac15bedde341b571a81fb0db2260
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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) },