summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2017-12-14 15:39:34 -0700
committerAaron Durbin <adurbin@chromium.org>2017-12-16 04:15:36 +0000
commitc3339ce9e3b182bceb1b849c6fe389cf8aca4521 (patch)
tree62f107ade7d1c3920296f666aaf59bdf2bb15098
parent2b96f421e6539ceae5c1d0dcd07ed4dfe8a6016a (diff)
downloadcoreboot-c3339ce9e3b182bceb1b849c6fe389cf8aca4521.tar.xz
soc/intel/broadwell: implement spi_flash_ctrlr_protect_region()
Implement the spi controller flash_protect() callback. No need to have a global spi_flash_protect() once implemented. BUG=b:69614064 Change-Id: I83f4310d8f78ba64727ba75eb75708d0cbaa7d53 Signed-off-by: Aaron Durbn <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/22882 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/soc/intel/broadwell/include/soc/spi.h2
-rw-r--r--src/soc/intel/broadwell/spi.c7
2 files changed, 5 insertions, 4 deletions
diff --git a/src/soc/intel/broadwell/include/soc/spi.h b/src/soc/intel/broadwell/include/soc/spi.h
index 55de14e1b4..588af17609 100644
--- a/src/soc/intel/broadwell/include/soc/spi.h
+++ b/src/soc/intel/broadwell/include/soc/spi.h
@@ -101,6 +101,4 @@
#define SPIBAR_SSFC_DATA (1 << 14)
#define SPIBAR_SSFC_GO (1 << 1)
-int spi_flash_protect(u32 start, u32 size);
-
#endif
diff --git a/src/soc/intel/broadwell/spi.c b/src/soc/intel/broadwell/spi.c
index 52a1d76f54..2bcbebac31 100644
--- a/src/soc/intel/broadwell/spi.c
+++ b/src/soc/intel/broadwell/spi.c
@@ -612,9 +612,11 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
}
/* Use first empty Protected Range Register to cover region of flash */
-int spi_flash_protect(u32 start, u32 size)
+static int spi_flash_protect(const struct spi_flash *flash,
+ const struct region *region)
{
- u32 end = start + size - 1;
+ u32 start = region_offset(region);
+ u32 end = start + region_sz(region) - 1;
u32 reg;
int prr;
@@ -652,6 +654,7 @@ static const struct spi_ctrlr spi_ctrlr = {
.xfer = spi_ctrlr_xfer,
.xfer_vector = spi_xfer_two_vectors,
.max_xfer_size = member_size(ich9_spi_regs, fdata),
+ .flash_protect = spi_flash_protect,
};
const struct spi_ctrlr_buses spi_ctrlr_bus_map[] = {