From e736015fffc973ccbd6de54751e312a1fda387dc Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Mon, 3 Dec 2018 09:41:06 +0100 Subject: drivers/spi/winbond: Fix TB bit The TB has to be inverted to actually protected the correct region. Tested on elgon using I67eb4ee8e0ad297a8d1984d55102146688c291fc. Change-Id: I715791b8ae5d1db1ef587321ae5c9daa10eb7dbc Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/c/30014 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese Reviewed-by: David Hendricks Reviewed-by: Julius Werner --- src/drivers/spi/winbond.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/drivers/spi/winbond.c') diff --git a/src/drivers/spi/winbond.c b/src/drivers/spi/winbond.c index 9eb335262d..f8ea247bb8 100644 --- a/src/drivers/spi/winbond.c +++ b/src/drivers/spi/winbond.c @@ -303,7 +303,7 @@ static void winbond_bpbits_to_region(const size_t granularity, tb = !tb; } - out->offset = tb ? flash_size - protected_size : 0; + out->offset = tb ? 0 : flash_size - protected_size; out->size = protected_size; } @@ -519,9 +519,9 @@ winbond_set_write_protection(const struct spi_flash *flash, wp_region = *region; if (region_offset(&wp_region) == 0) - tb = 0; - else tb = 1; + else + tb = 0; if (region_sz(&wp_region) > flash->size / 2) { cmp = 1; -- cgit v1.2.3