From 2c3a2d66a96b782f50dd886caea2a93dec69530e Mon Sep 17 00:00:00 2001 From: Nikolai Artemiev Date: Thu, 21 Oct 2021 02:28:23 +1100 Subject: 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 Reviewed-on: https://review.coreboot.org/c/flashrom/+/59183 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan Reviewed-by: Nico Huber --- writeprotect.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'writeprotect.c') 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); */ -- cgit v1.2.3