summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--a25.c8
-rw-r--r--at25.c31
-rw-r--r--chipdrivers.h2
-rw-r--r--spi25.c15
4 files changed, 25 insertions, 31 deletions
diff --git a/a25.c b/a25.c
index b0c6b90..8c38f87 100644
--- a/a25.c
+++ b/a25.c
@@ -40,7 +40,7 @@ int spi_prettyprint_status_register_amic_a25l05p(struct flashctx *flash)
spi_prettyprint_status_register_bit(status, 6);
spi_prettyprint_status_register_bit(status, 5);
spi_prettyprint_status_register_bit(status, 4);
- spi_prettyprint_status_register_bp3210(status, 1);
+ spi_prettyprint_status_register_bp(status, 1);
spi_prettyprint_status_register_welwip(status);
return 0;
}
@@ -55,7 +55,7 @@ int spi_prettyprint_status_register_amic_a25l40p(struct flashctx *flash)
spi_prettyprint_status_register_amic_a25_srwd(status);
spi_prettyprint_status_register_bit(status, 6);
spi_prettyprint_status_register_bit(status, 5);
- spi_prettyprint_status_register_bp3210(status, 2);
+ spi_prettyprint_status_register_bp(status, 2);
spi_prettyprint_status_register_welwip(status);
return 0;
}
@@ -72,7 +72,7 @@ int spi_prettyprint_status_register_amic_a25l032(struct flashctx *flash)
"is %i KB\n", (status & (1 << 6)) ? 4 : 64);
msg_cdbg("Chip status register: Top/Bottom (TB) "
"is %s\n", (status & (1 << 5)) ? "bottom" : "top");
- spi_prettyprint_status_register_bp3210(status, 2);
+ spi_prettyprint_status_register_bp(status, 2);
spi_prettyprint_status_register_welwip(status);
msg_cdbg("Chip status register 2 is NOT decoded!\n");
return 0;
@@ -90,7 +90,7 @@ int spi_prettyprint_status_register_amic_a25lq032(struct flashctx *flash)
"is %i KB\n", (status & (1 << 6)) ? 4 : 64);
msg_cdbg("Chip status register: Top/Bottom (TB) "
"is %s\n", (status & (1 << 5)) ? "bottom" : "top");
- spi_prettyprint_status_register_bp3210(status, 2);
+ spi_prettyprint_status_register_bp(status, 2);
spi_prettyprint_status_register_welwip(status);
msg_cdbg("Chip status register 2 is NOT decoded!\n");
return 0;
diff --git a/at25.c b/at25.c
index ec9b4b6..8891e2b 100644
--- a/at25.c
+++ b/at25.c
@@ -23,6 +23,12 @@
/* Prettyprint the status register. Works for Atmel A25/A26 series. */
+static void spi_prettyprint_status_register_atmel_at25_wpen(uint8_t status)
+{
+ msg_cdbg("Chip status register: Write Protect Enable (WPEN) "
+ "is %sset\n", (status & (1 << 7)) ? "" : "not ");
+}
+
static void spi_prettyprint_status_register_atmel_at25_srpl(uint8_t status)
{
msg_cdbg("Chip status register: Sector Protection Register Lock (SRPL) "
@@ -91,10 +97,7 @@ int spi_prettyprint_status_register_at25f(struct flashctx *flash)
spi_prettyprint_status_register_bit(status, 6);
spi_prettyprint_status_register_atmel_at25_epewpp(status);
spi_prettyprint_status_register_bit(status, 3);
- msg_cdbg("Chip status register: Block Protect 0 (BP0) is "
- "%sset, %s sectors are protected\n",
- (status & (1 << 2)) ? "" : "not ",
- (status & (1 << 2)) ? "all" : "no");
+ spi_prettyprint_status_register_bp(status, 0);
spi_prettyprint_status_register_welwip(status);
return 0;
}
@@ -106,14 +109,12 @@ int spi_prettyprint_status_register_at25fs010(struct flashctx *flash)
status = spi_read_status_register(flash);
msg_cdbg("Chip status register is %02x\n", status);
- msg_cdbg("Chip status register: Status Register Write Protect (WPEN) "
- "is %sset\n", (status & (1 << 7)) ? "" : "not ");
+ spi_prettyprint_status_register_atmel_at25_wpen(status);
msg_cdbg("Chip status register: Bit 6 / Block Protect 4 (BP4) is "
"%sset\n", (status & (1 << 6)) ? "" : "not ");
msg_cdbg("Chip status register: Bit 5 / Block Protect 3 (BP3) is "
"%sset\n", (status & (1 << 5)) ? "" : "not ");
- msg_cdbg("Chip status register: Bit 4 is "
- "%sset\n", (status & (1 << 4)) ? "" : "not ");
+ spi_prettyprint_status_register_bit(status, 4);
msg_cdbg("Chip status register: Bit 3 / Block Protect 1 (BP1) is "
"%sset\n", (status & (1 << 3)) ? "" : "not ");
msg_cdbg("Chip status register: Bit 2 / Block Protect 0 (BP0) is "
@@ -130,18 +131,8 @@ int spi_prettyprint_status_register_at25fs040(struct flashctx *flash)
status = spi_read_status_register(flash);
msg_cdbg("Chip status register is %02x\n", status);
- msg_cdbg("Chip status register: Status Register Write Protect (WPEN) "
- "is %sset\n", (status & (1 << 7)) ? "" : "not ");
- msg_cdbg("Chip status register: Bit 6 / Block Protect 4 (BP4) is "
- "%sset\n", (status & (1 << 6)) ? "" : "not ");
- msg_cdbg("Chip status register: Bit 5 / Block Protect 3 (BP3) is "
- "%sset\n", (status & (1 << 5)) ? "" : "not ");
- msg_cdbg("Chip status register: Bit 4 / Block Protect 2 (BP2) is "
- "%sset\n", (status & (1 << 4)) ? "" : "not ");
- msg_cdbg("Chip status register: Bit 3 / Block Protect 1 (BP1) is "
- "%sset\n", (status & (1 << 3)) ? "" : "not ");
- msg_cdbg("Chip status register: Bit 2 / Block Protect 0 (BP0) is "
- "%sset\n", (status & (1 << 2)) ? "" : "not ");
+ spi_prettyprint_status_register_atmel_at25_wpen(status);
+ spi_prettyprint_status_register_bp(status, 4);
/* FIXME: Pretty-print detailed sector protection status. */
spi_prettyprint_status_register_welwip(status);
return 0;
diff --git a/chipdrivers.h b/chipdrivers.h
index 1569bf3..0c78b0d 100644
--- a/chipdrivers.h
+++ b/chipdrivers.h
@@ -48,7 +48,7 @@ int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int
uint8_t spi_read_status_register(struct flashctx *flash);
int spi_write_status_register(struct flashctx *flash, int status);
void spi_prettyprint_status_register_bit(uint8_t status, int bit);
-void spi_prettyprint_status_register_bp3210(uint8_t status, int bp);
+void spi_prettyprint_status_register_bp(uint8_t status, int bp);
void spi_prettyprint_status_register_welwip(uint8_t status);
int spi_prettyprint_status_register(struct flashctx *flash);
int spi_disable_blockprotect(struct flashctx *flash);
diff --git a/spi25.c b/spi25.c
index a6e7e21..3693783 100644
--- a/spi25.c
+++ b/spi25.c
@@ -327,21 +327,24 @@ void spi_prettyprint_status_register_welwip(uint8_t status)
}
/* Prettyprint the status register. Common definitions. */
-void spi_prettyprint_status_register_bp3210(uint8_t status, int bp)
+void spi_prettyprint_status_register_bp(uint8_t status, int bp)
{
switch (bp) {
/* Fall through. */
+ case 4:
+ msg_cdbg("Chip status register: Block Protect 4 (BP4) "
+ "is %sset\n", (status & (1 << 5)) ? "" : "not ");
case 3:
- msg_cdbg("Chip status register: Bit 5 / Block Protect 3 (BP3) "
+ msg_cdbg("Chip status register: Block Protect 3 (BP3) "
"is %sset\n", (status & (1 << 5)) ? "" : "not ");
case 2:
- msg_cdbg("Chip status register: Bit 4 / Block Protect 2 (BP2) "
+ msg_cdbg("Chip status register: Block Protect 2 (BP2) "
"is %sset\n", (status & (1 << 4)) ? "" : "not ");
case 1:
- msg_cdbg("Chip status register: Bit 3 / Block Protect 1 (BP1) "
+ msg_cdbg("Chip status register: Block Protect 1 (BP1) "
"is %sset\n", (status & (1 << 3)) ? "" : "not ");
case 0:
- msg_cdbg("Chip status register: Bit 2 / Block Protect 0 (BP0) "
+ msg_cdbg("Chip status register: Block Protect 0 (BP0) "
"is %sset\n", (status & (1 << 2)) ? "" : "not ");
}
}
@@ -355,7 +358,7 @@ void spi_prettyprint_status_register_bit(uint8_t status, int bit)
static void spi_prettyprint_status_register_common(uint8_t status)
{
- spi_prettyprint_status_register_bp3210(status, 3);
+ spi_prettyprint_status_register_bp(status, 3);
spi_prettyprint_status_register_welwip(status);
}
OpenPOWER on IntegriCloud