summaryrefslogtreecommitdiffstats
path: root/spi.c
diff options
context:
space:
mode:
authorPeter Stuge <peter@stuge.se>2009-01-26 03:23:50 +0000
committerPeter Stuge <peter@stuge.se>2009-01-26 03:23:50 +0000
commit015b242809e375621c79121d7116858d34fb694d (patch)
tree97f62c596297289b33bfb53bc25d1e76189cb78a /spi.c
parentd28b5a9057d540eeece6686cad60a6430c978bac (diff)
downloadflashrom-015b242809e375621c79121d7116858d34fb694d.zip
flashrom-015b242809e375621c79121d7116858d34fb694d.tar.gz
Decode SST25VF040B status register, also from July 2008
Corresponding to flashrom svn r406 and coreboot v2 svn r3912. Signed-off-by: Peter Stuge <peter@stuge.se> Acked-by: Peter Stuge <peter@stuge.se>
Diffstat (limited to 'spi.c')
-rw-r--r--spi.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/spi.c b/spi.c
index affc41f..756fbe5 100644
--- a/spi.c
+++ b/spi.c
@@ -299,6 +299,24 @@ void spi_prettyprint_status_register_sst25vf016(uint8_t status)
bpt[(status & 0x1c) >> 2]);
}
+void spi_prettyprint_status_register_sst25vf040b(uint8_t status)
+{
+ const char *bpt[] = {
+ "none",
+ "0x70000-0x7ffff",
+ "0x60000-0x7ffff",
+ "0x40000-0x7ffff",
+ "all blocks", "all blocks", "all blocks", "all blocks"
+ };
+ printf_debug("Chip status register: Block Protect Write Disable "
+ "(BPL) is %sset\n", (status & (1 << 7)) ? "" : "not ");
+ printf_debug("Chip status register: Auto Address Increment Programming "
+ "(AAI) is %sset\n", (status & (1 << 6)) ? "" : "not ");
+ spi_prettyprint_status_register_common(status);
+ printf_debug("Resulting block protection : %s\n",
+ bpt[(status & 0x3c) >> 2]);
+}
+
void spi_prettyprint_status_register(struct flashchip *flash)
{
uint8_t status;
@@ -316,8 +334,15 @@ void spi_prettyprint_status_register(struct flashchip *flash)
spi_prettyprint_status_register_st_m25p(status);
break;
case SST_ID:
- if (flash->model_id == SST_25VF016B)
+ switch (flash->model_id) {
+ case 0x2541:
spi_prettyprint_status_register_sst25vf016(status);
+ break;
+ case 0x8d:
+ case 0x258d:
+ spi_prettyprint_status_register_sst25vf040b(status);
+ break;
+ }
break;
}
}
OpenPOWER on IntegriCloud