diff options
author | Peter Stuge <peter@stuge.se> | 2009-01-26 03:23:50 +0000 |
---|---|---|
committer | Peter Stuge <peter@stuge.se> | 2009-01-26 03:23:50 +0000 |
commit | 9ee44151cc9b0db006ba23999652e592e88d4708 (patch) | |
tree | 755e95ae0162940dd95a8bf89ec3df14fba95708 /util/flashrom | |
parent | 37c4a968745d22ccf8a0502415c8a3f16c635479 (diff) |
flashrom: Decode SST25VF040B status register, also from July 2008.
Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3912 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/flashrom')
-rw-r--r-- | util/flashrom/spi.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/util/flashrom/spi.c b/util/flashrom/spi.c index affc41f1cd..756fbe5602 100644 --- a/util/flashrom/spi.c +++ b/util/flashrom/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; } } |