* [patch 2.6.27-rc2] MTD: make dataflash write-verify be optional
@ 2008-08-07 4:55 David Brownell
2008-08-07 10:34 ` Haavard Skinnemoen
2008-08-07 10:40 ` Andrew Victor
0 siblings, 2 replies; 3+ messages in thread
From: David Brownell @ 2008-08-07 4:55 UTC (permalink / raw)
To: dwmw2; +Cc: linux-mtd, Andrew Victor, Haavard Skinnemoen
From: David Brownell <dbrownell@users.sourceforge.net>
This adds a WRITE_VERIFY Kconfig option to the DataFlash driver,
closely mirroring the similar NAND and ONENAND options, giving
an option to disable some code that's currently always enabled.
Removing this step probably saves a millisecond or so per page
when writing data, which will add up quickly since these pages
are small (the largest is 1 KByte). It doesn't seem to add a
lot in terms of reliability, and wouldn't detect errors which
crop up when transferring data to the on-chip SRAM buffer.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
drivers/mtd/devices/Kconfig | 10 ++++++++++
drivers/mtd/devices/mtd_dataflash.c | 8 +++-----
2 files changed, 13 insertions(+), 5 deletions(-)
--- a/drivers/mtd/devices/Kconfig 2008-07-27 11:56:15.000000000 -0700
+++ b/drivers/mtd/devices/Kconfig 2008-07-27 12:13:52.000000000 -0700
@@ -59,6 +59,16 @@ config MTD_DATAFLASH
Sometimes DataFlash chips are packaged inside MMC-format
cards; at this writing, the MMC stack won't handle those.
+config MTD_DATAFLASH_WRITE_VERIFY
+ bool "Verify DataFlash page writes"
+ depends on MTD_DATAFLASH
+ help
+ This adds an extra check when data is written to the flash.
+ It may help if you are verifying chip setup (timings etc) on
+ your board. There is a rare possibility that even though the
+ device thinks the write was successful, a bit could have been
+ flipped accidentally due to device wear or something else.
+
config MTD_DATAFLASH_OTP
bool "DataFlash OTP support (Security Register)"
depends on MTD_DATAFLASH
--- a/drivers/mtd/devices/mtd_dataflash.c 2008-07-27 11:56:15.000000000 -0700
+++ b/drivers/mtd/devices/mtd_dataflash.c 2008-07-27 12:10:38.000000000 -0700
@@ -30,12 +30,10 @@
* doesn't (yet) use these for any kind of i/o overlap or prefetching.
*
* Sometimes DataFlash is packaged in MMC-format cards, although the
- * MMC stack can't use SPI (yet), or distinguish between MMC and DataFlash
+ * MMC stack can't (yet?) distinguish between MMC and DataFlash
* protocols during enumeration.
*/
-#define CONFIG_DATAFLASH_WRITE_VERIFY
-
/* reads can bypass the buffers */
#define OP_READ_CONTINUOUS 0xE8
#define OP_READ_PAGE 0xD2
@@ -403,7 +401,7 @@ static int dataflash_write(struct mtd_in
(void) dataflash_waitready(priv->spi);
-#ifdef CONFIG_DATAFLASH_WRITE_VERIFY
+#ifdef CONFIG_MTD_DATAFLASH_VERIFY_WRITE
/* (3) Compare to Buffer1 */
addr = pageaddr << priv->page_offset;
@@ -432,7 +430,7 @@ static int dataflash_write(struct mtd_in
} else
status = 0;
-#endif /* CONFIG_DATAFLASH_WRITE_VERIFY */
+#endif /* CONFIG_MTD_DATAFLASH_VERIFY_WRITE */
remaining = remaining - writelen;
pageaddr++;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch 2.6.27-rc2] MTD: make dataflash write-verify be optional
2008-08-07 4:55 [patch 2.6.27-rc2] MTD: make dataflash write-verify be optional David Brownell
@ 2008-08-07 10:34 ` Haavard Skinnemoen
2008-08-07 10:40 ` Andrew Victor
1 sibling, 0 replies; 3+ messages in thread
From: Haavard Skinnemoen @ 2008-08-07 10:34 UTC (permalink / raw)
To: David Brownell; +Cc: linux-mtd, dwmw2, Andrew Victor, Haavard Skinnemoen
David Brownell <david-b@pacbell.net> wrote:
> From: David Brownell <dbrownell@users.sourceforge.net>
>
> This adds a WRITE_VERIFY Kconfig option to the DataFlash driver,
> closely mirroring the similar NAND and ONENAND options, giving
> an option to disable some code that's currently always enabled.
>
> Removing this step probably saves a millisecond or so per page
> when writing data, which will add up quickly since these pages
> are small (the largest is 1 KByte). It doesn't seem to add a
> lot in terms of reliability, and wouldn't detect errors which
> crop up when transferring data to the on-chip SRAM buffer.
>
> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Sounds good to me. DataFlash speed is a bit of an issue, and if we
eventually manage to boost the SPI transfer speed, this thing might
turn out to be a bigger bottleneck than it currently is.
I suppose write verify might catch flash programming errors when the
flash is worn out, so it makes sense to keep it optional for users that
need to know early when this happens.
Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch 2.6.27-rc2] MTD: make dataflash write-verify be optional
2008-08-07 4:55 [patch 2.6.27-rc2] MTD: make dataflash write-verify be optional David Brownell
2008-08-07 10:34 ` Haavard Skinnemoen
@ 2008-08-07 10:40 ` Andrew Victor
1 sibling, 0 replies; 3+ messages in thread
From: Andrew Victor @ 2008-08-07 10:40 UTC (permalink / raw)
To: David Brownell; +Cc: linux-mtd, dwmw2, Andrew Victor, Haavard Skinnemoen
hi,
> It doesn't seem to add a
> lot in terms of reliability, and wouldn't detect errors which
> crop up when transferring data to the on-chip SRAM buffer.
Yes, it was originally added for detecting bad/dead bits on the flash.
[I think some (obsolete) DataFlash revisions (C?) didn't have the
compare functionality, though revision B did. Or atleast it wasn't
defined in the rev C datasheets. It did return "success" on those
chips though].
Acked-by: Andrew Victor <linux@maxim.org.za>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-08-07 10:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-07 4:55 [patch 2.6.27-rc2] MTD: make dataflash write-verify be optional David Brownell
2008-08-07 10:34 ` Haavard Skinnemoen
2008-08-07 10:40 ` Andrew Victor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox