diff options
author | Edward O'Callaghan <quasisec@google.com> | 2022-11-23 22:36:53 +1100 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2023-03-20 00:36:56 +0000 |
commit | 0c774d6b6a075f37f21ca9c3506141cb0d4ae34b (patch) | |
tree | 695a252de5954213b1ceeffecef302394f26c2e6 /82802ab.c | |
parent | 028099dbfd92e62eb0c6227d1194ff714f55e67c (diff) | |
download | flashrom-0c774d6b6a075f37f21ca9c3506141cb0d4ae34b.tar.gz flashrom-0c774d6b6a075f37f21ca9c3506141cb0d4ae34b.tar.bz2 flashrom-0c774d6b6a075f37f21ca9c3506141cb0d4ae34b.zip |
tree/: Convert unlock func ptr into enumerate values
Converting the blockprotect unlock function pointer
within the flashchip struct into enum values allows for
the flashchips db to be turn into pure, declarative data.
A nice side-effect of this is to reduce link-time symbol
space of chipdrivers and increase modularity of the
spi25_statusreg.c and related implementations.
BUG=none
TEST=ninja test.
Change-Id: Ie5c5db1b09d07e1a549990d6f5a622fae4c83233
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/69933
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sam McNally <sammc@google.com>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Diffstat (limited to '82802ab.c')
-rw-r--r-- | 82802ab.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -142,7 +142,7 @@ int write_82802ab(struct flashctx *flash, const uint8_t *src, unsigned int start return 0; } -int unlock_28f004s5(struct flashctx *flash) +static int unlock_28f004s5(struct flashctx *flash) { chipaddr bios = flash->virtual_memory; uint8_t mcfg, bcfg; @@ -195,7 +195,7 @@ int unlock_28f004s5(struct flashctx *flash) return 0; } -int unlock_lh28f008bjt(struct flashctx *flash) +static int unlock_lh28f008bjt(struct flashctx *flash) { chipaddr bios = flash->virtual_memory; uint8_t mcfg, bcfg; @@ -249,3 +249,12 @@ int unlock_lh28f008bjt(struct flashctx *flash) return 0; } + +blockprotect_func_t *lookup_82802ab_blockprotect_func_ptr(const struct flashchip *const chip) +{ + switch (chip->unlock) { + case UNLOCK_28F004S5: return unlock_28f004s5; + case UNLOCK_LH28F008BJT: return unlock_lh28f008bjt; + default: return NULL; /* fallthough */ + }; +} |