aboutsummaryrefslogtreecommitdiffstats
path: root/spi25_statusreg.c
diff options
context:
space:
mode:
Diffstat (limited to 'spi25_statusreg.c')
-rw-r--r--spi25_statusreg.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/spi25_statusreg.c b/spi25_statusreg.c
index b178b2e3..726ca8cc 100644
--- a/spi25_statusreg.c
+++ b/spi25_statusreg.c
@@ -19,6 +19,7 @@
#include "flash.h"
#include "chipdrivers.h"
+#include "programmer.h"
#include "spi.h"
/* === Generic functions === */
@@ -129,6 +130,11 @@ int spi_write_register(const struct flashctx *flash, enum flash_reg reg, uint8_t
return 1;
}
+ if (!flash->mst->spi.probe_opcode(flash, write_cmd[0])) {
+ msg_pdbg("%s: write to register %d not supported by programmer, ignoring.\n", __func__, reg);
+ return SPI_INVALID_OPCODE;
+ }
+
uint8_t enable_cmd;
if (feature_bits & FEATURE_WRSR_WREN) {
enable_cmd = JEDEC_WREN;
@@ -238,6 +244,11 @@ int spi_read_register(const struct flashctx *flash, enum flash_reg reg, uint8_t
return 1;
}
+ if (!flash->mst->spi.probe_opcode(flash, read_cmd)) {
+ msg_pdbg("%s: read from register %d not supported by programmer.\n", __func__, reg);
+ return SPI_INVALID_OPCODE;
+ }
+
/* FIXME: No workarounds for driver/hardware bugs in generic code. */
/* JEDEC_RDSR_INSIZE=1 but wbsio needs 2 */
uint8_t readarr[2];