aboutsummaryrefslogtreecommitdiffstats
path: root/writeprotect.c
diff options
context:
space:
mode:
authorNikolai Artemiev <nartemiev@google.com>2021-10-21 02:28:23 +1100
committerAnastasia Klimchuk <aklm@chromium.org>2022-03-01 04:16:10 +0000
commit2c3a2d66a96b782f50dd886caea2a93dec69530e (patch)
tree7e50e856f05251e651831ec74ec9a83e1b12d0b7 /writeprotect.c
parent9fc100f54953dc74603678fc42e74d9b99e61ff0 (diff)
downloadflashrom-2c3a2d66a96b782f50dd886caea2a93dec69530e.tar.gz
flashrom-2c3a2d66a96b782f50dd886caea2a93dec69530e.tar.bz2
flashrom-2c3a2d66a96b782f50dd886caea2a93dec69530e.zip
writeprotect: add get_wp_range() for decoding ranges
BUG=b:195381327,b:153800563 BRANCH=none TEST=flashrom --wp-{status,range} at end of patch series Change-Id: I5a1dfcf384166b1bac319d286306747e1dcaa000 Signed-off-by: Nikolai Artemiev <nartemiev@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/59183 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'writeprotect.c')
-rw-r--r--writeprotect.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/writeprotect.c b/writeprotect.c
index 20b5afcc..ca9d9ecf 100644
--- a/writeprotect.c
+++ b/writeprotect.c
@@ -150,9 +150,17 @@ static enum flashrom_wp_result write_wp_bits(struct flashctx *flash, struct wp_b
return FLASHROM_WP_OK;
}
+/** Get the range selected by a WP configuration. */
+static enum flashrom_wp_result get_wp_range(struct wp_range *range, struct flashctx *flash, const struct wp_bits *bits)
+{
+ flash->chip->decode_range(&range->start, &range->len, bits, flashrom_flash_getsize(flash));
+
+ return FLASHROM_WP_OK;
+}
+
static bool chip_supported(struct flashctx *flash)
{
- return false;
+ return (flash->chip != NULL) && (flash->chip->decode_range != NULL);
}
enum flashrom_wp_result wp_read_cfg(struct flashrom_wp_cfg *cfg, struct flashctx *flash)
@@ -166,11 +174,11 @@ enum flashrom_wp_result wp_read_cfg(struct flashrom_wp_cfg *cfg, struct flashctx
if (ret == FLASHROM_WP_OK)
ret = read_wp_bits(&bits, flash);
- /* TODO: implement get_wp_range() and get_wp_mode() and call them */
- /*
if (ret == FLASHROM_WP_OK)
ret = get_wp_range(&cfg->range, flash, &bits);
+ /* TODO: implement and get_wp_mode() and call it */
+ /*
if (ret == FLASHROM_WP_OK)
ret = get_wp_mode(&cfg->mode, &bits);
*/