Add detailed status register printing and unlocking for all ATMEL AT25*
chips.
Add support for Atmel AT25DF081A and AT25DQ161.
Some chips require EWSR before WRSR, others require WREN before WRSR,
and some support both variants. Add feature_bits to select the correct
SPI command, and default to EWSR.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested-by: Steven Rosario
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
git-svn-id: svn://coreboot.org/flashrom/trunk@1115 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/flash.h b/flash.h
index ff84602..6f0d7c0 100644
--- a/flash.h
+++ b/flash.h
@@ -69,8 +69,9 @@
/*
* How many different erase functions do we have per chip?
+ * Atmel AT25FS010 has 6 different functions.
*/
-#define NUM_ERASEFUNCTIONS 5
+#define NUM_ERASEFUNCTIONS 6
#define FEATURE_REGISTERMAP (1 << 0)
#define FEATURE_BYTEWRITES (1 << 1)
@@ -82,6 +83,9 @@
#define FEATURE_ADDR_2AA (1 << 2)
#define FEATURE_ADDR_AAA (2 << 2)
#define FEATURE_ADDR_SHIFTED (1 << 5)
+#define FEATURE_WRSR_EWSR (1 << 6)
+#define FEATURE_WRSR_WREN (1 << 7)
+#define FEATURE_WRSR_EITHER (FEATURE_WRSR_EWSR | FEATURE_WRSR_WREN)
struct flashchip {
const char *vendor;