aboutsummaryrefslogtreecommitdiffstats
path: root/include/flash.h
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@google.com>2022-08-16 11:48:40 +1000
committerFelix Singer <felixsinger@posteo.net>2022-11-01 01:15:55 +0000
commit985ad5623f8c2695ffc07d4bdbacbf2d85d4c11a (patch)
tree5daf0509a2d95fc2c9bffd77f562c2e14eb80bc0 /include/flash.h
parent10e7a0ebd74db72f00b8fc1b741f411d5a49b92d (diff)
downloadflashrom-985ad5623f8c2695ffc07d4bdbacbf2d85d4c11a.tar.gz
flashrom-985ad5623f8c2695ffc07d4bdbacbf2d85d4c11a.tar.bz2
flashrom-985ad5623f8c2695ffc07d4bdbacbf2d85d4c11a.zip
tree/: Convert flashchip write func ptr to enumerate
This forges the way for flashchips.c to be pure declarative data and lookup functions for dispatch to be pure. This means that the flashchips data could be extracted out to be agnostic data of the flashrom code and algorithms. TEST='R|W|E && --flash-name' on ARM, AMD & Intel DUT's. Change-Id: I80149de169464b204fb09f1424a86fc645b740fd Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/66782 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nikolai Artemiev <nartemiev@google.com> Reviewed-by: Felix Singer <felixsinger@posteo.net>
Diffstat (limited to 'include/flash.h')
-rw-r--r--include/flash.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/include/flash.h b/include/flash.h
index 37f21ac5..b61b7eae 100644
--- a/include/flash.h
+++ b/include/flash.h
@@ -238,6 +238,23 @@ enum probe_func {
PROBE_SPI_ST95,
};
+enum write_func {
+ NO_WRITE_FUNC = 0, /* 0 indicates no write function set. */
+ WRITE_JEDEC = 1,
+ WRITE_JEDEC1,
+ WRITE_OPAQUE,
+ SPI_CHIP_WRITE1,
+ SPI_CHIP_WRITE256,
+ SPI_WRITE_AAI,
+ SPI_WRITE_AT45DB,
+ WRITE_28SF040,
+ WRITE_82802AB,
+ WRITE_EN29LV640B,
+ EDI_CHIP_WRITE,
+ TEST_WRITE_INJECTOR, /* special case must come last. */
+};
+typedef int (write_func_t)(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
+
struct flashchip {
const char *vendor;
const char *name;
@@ -305,7 +322,7 @@ struct flashchip {
int (*printlock) (struct flashctx *flash);
int (*unlock) (struct flashctx *flash);
- int (*write) (struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
+ enum write_func write;
int (*read) (struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
struct voltage {
uint16_t min;