From f9f50936446e8e441238ecfe12ce0fc9e04d491a Mon Sep 17 00:00:00 2001 From: Rizwan Qureshi Date: Mon, 31 Dec 2018 15:19:16 +0530 Subject: drivers/spi: Add controller protection type Some SPI controllers support both READ and WRITE protection add a variable to the protect API for the callers to specify the kind of protection they want (Read/Write/Both). Also, update the callers and protect API implementation. BUG=None BRANCH=None TEST=test that the mrc cache is protected as expected on soraka. Also tried if the read protection is applied correctly. Change-Id: I093884c4768b08a378f21242ac82e430ac013d15 Signed-off-by: Rizwan Qureshi Reviewed-on: https://review.coreboot.org/c/30559 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph --- src/drivers/mrc_cache/mrc_cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/drivers/mrc_cache') diff --git a/src/drivers/mrc_cache/mrc_cache.c b/src/drivers/mrc_cache/mrc_cache.c index 4dd0dbc434..84bbdb05b3 100644 --- a/src/drivers/mrc_cache/mrc_cache.c +++ b/src/drivers/mrc_cache/mrc_cache.c @@ -456,13 +456,15 @@ static int nvm_is_write_protected(void) /* Apply protection to a range of flash */ static int nvm_protect(const struct region *r) { + const struct spi_flash *flash = boot_device_spi_flash(); + if (!IS_ENABLED(CONFIG_MRC_SETTINGS_PROTECT)) return 0; if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) return 0; - return spi_flash_ctrlr_protect_region(boot_device_spi_flash(), r); + return spi_flash_ctrlr_protect_region(flash, r, WRITE_PROTECT); } /* Protect mrc region with a Protected Range Register */ -- cgit v1.2.3