<p>Philipp Deppenwiese has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/25262">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">security/flash: Add hook for get write protect state<br><br>Change-Id: Icda8ac0b60d84fb5f020e790ccda093d477c738c<br>Signed-off-by: zaolin <zaolin@das-labor.org><br>---<br>M src/drivers/mrc_cache/mrc_cache.c<br>M src/include/bootmode.h<br>M src/mainboard/google/auron/chromeos.c<br>M src/mainboard/google/beltino/chromeos.c<br>M src/mainboard/google/butterfly/chromeos.c<br>M src/mainboard/google/chell/chromeos.c<br>M src/mainboard/google/cyan/chromeos.c<br>M src/mainboard/google/daisy/chromeos.c<br>M src/mainboard/google/eve/chromeos.c<br>M src/mainboard/google/fizz/chromeos.c<br>M src/mainboard/google/foster/chromeos.c<br>M src/mainboard/google/gale/chromeos.c<br>M src/mainboard/google/glados/chromeos.c<br>M src/mainboard/google/gru/chromeos.c<br>M src/mainboard/google/jecht/chromeos.c<br>M src/mainboard/google/kahlee/chromeos.c<br>M src/mainboard/google/lars/chromeos.c<br>M src/mainboard/google/link/chromeos.c<br>M src/mainboard/google/nyan/chromeos.c<br>M src/mainboard/google/nyan_big/chromeos.c<br>M src/mainboard/google/nyan_blaze/chromeos.c<br>M src/mainboard/google/oak/chromeos.c<br>M src/mainboard/google/parrot/chromeos.c<br>M src/mainboard/google/peach_pit/chromeos.c<br>M src/mainboard/google/poppy/chromeos.c<br>M src/mainboard/google/purin/chromeos.c<br>M src/mainboard/google/rambi/chromeos.c<br>M src/mainboard/google/reef/chromeos.c<br>M src/mainboard/google/rotor/chromeos.c<br>M src/mainboard/google/slippy/chromeos.c<br>M src/mainboard/google/smaug/chromeos.c<br>M src/mainboard/google/storm/chromeos.c<br>M src/mainboard/google/stout/chromeos.c<br>M src/mainboard/google/urara/chromeos.c<br>M src/mainboard/google/veyron/chromeos.c<br>M src/mainboard/google/veyron_mickey/chromeos.c<br>M src/mainboard/google/veyron_rialto/chromeos.c<br>M src/mainboard/google/zoombini/chromeos.c<br>M src/mainboard/intel/baskingridge/chromeos.c<br>M src/mainboard/intel/cannonlake_rvp/chromeos.c<br>M src/mainboard/intel/galileo/vboot.c<br>M src/mainboard/intel/glkrvp/chromeos.c<br>M src/mainboard/intel/kblrvp/chromeos.c<br>M src/mainboard/intel/kunimitsu/chromeos.c<br>M src/mainboard/intel/strago/chromeos.c<br>M src/mainboard/intel/wtm2/chromeos.c<br>M src/mainboard/samsung/lumpy/chromeos.c<br>M src/mainboard/samsung/stumpy/chromeos.c<br>M src/security/flash/flash.c<br>M src/security/flash/flash.h<br>M src/security/vboot/Kconfig<br>M src/security/vboot/bootmode.c<br>M src/security/vboot/vboot_handoff.c<br>53 files changed, 106 insertions(+), 145 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/62/25262/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/drivers/mrc_cache/mrc_cache.c b/src/drivers/mrc_cache/mrc_cache.c</span><br><span>index eec1591..ade62d8 100644</span><br><span>--- a/src/drivers/mrc_cache/mrc_cache.c</span><br><span>+++ b/src/drivers/mrc_cache/mrc_cache.c</span><br><span>@@ -26,6 +26,7 @@</span><br><span> #include <region_file.h></span><br><span> #include <security/vboot/vboot_common.h></span><br><span> #include <spi_flash.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "mrc_cache.h"</span><br><span> </span><br><span>@@ -428,30 +429,13 @@</span><br><span> /* Read flash status register to determine if write protect is active */</span><br><span> static int nvm_is_write_protected(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  u8 sr1;</span><br><span style="color: hsl(0, 100%, 40%);">- u8 wp_gpio;</span><br><span style="color: hsl(0, 100%, 40%);">-     u8 wp_spi;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>   if (!IS_ENABLED(CONFIG_CHROMEOS))</span><br><span>            return 0;</span><br><span> </span><br><span>        if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH))</span><br><span>               return 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   /* Read Write Protect GPIO if available */</span><br><span style="color: hsl(0, 100%, 40%);">-      wp_gpio = get_write_protect_state();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* Read Status Register 1 */</span><br><span style="color: hsl(0, 100%, 40%);">-    if (spi_flash_status(boot_device_spi_flash(), &sr1) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               printk(BIOS_ERR, "Failed to read SPI status register 1\n");</span><br><span style="color: hsl(0, 100%, 40%);">-           return -1;</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-       wp_spi = !!(sr1 & 0x80);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    printk(BIOS_DEBUG, "SPI flash protection: WPSW=%d SRP0=%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">-         wp_gpio, wp_spi);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       return wp_gpio && wp_spi;</span><br><span style="color: hsl(120, 100%, 40%);">+     return get_write_protect_state();</span><br><span> }</span><br><span> </span><br><span> /* Apply protection to a range of flash */</span><br><span>diff --git a/src/include/bootmode.h b/src/include/bootmode.h</span><br><span>index 5650b3d..a8dad13 100644</span><br><span>--- a/src/include/bootmode.h</span><br><span>+++ b/src/include/bootmode.h</span><br><span>@@ -18,7 +18,6 @@</span><br><span> </span><br><span> /* functions implemented per mainboard: */</span><br><span> void init_bootmode_straps(void);</span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void);</span><br><span> int get_developer_mode_switch(void);</span><br><span> int get_recovery_mode_switch(void);</span><br><span> int get_recovery_mode_retrain_switch(void);</span><br><span>diff --git a/src/mainboard/google/auron/chromeos.c b/src/mainboard/google/auron/chromeos.c</span><br><span>index 3355136..4727068 100644</span><br><span>--- a/src/mainboard/google/auron/chromeos.c</span><br><span>+++ b/src/mainboard/google/auron/chromeos.c</span><br><span>@@ -16,6 +16,7 @@</span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span> #include <soc/gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> /* SPI Write protect is GPIO 16 */</span><br><span> #define CROS_WP_GPIO   58</span><br><span>@@ -36,7 +37,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return get_gpio(CROS_WP_GPIO);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/beltino/chromeos.c b/src/mainboard/google/beltino/chromeos.c</span><br><span>index 7412c62..91d3ae2 100644</span><br><span>--- a/src/mainboard/google/beltino/chromeos.c</span><br><span>+++ b/src/mainboard/google/beltino/chromeos.c</span><br><span>@@ -21,6 +21,7 @@</span><br><span> #include <southbridge/intel/lynxpoint/pch.h></span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #define GPIO_SPI_WP        58</span><br><span> #define GPIO_REC_MODE     12</span><br><span>@@ -46,7 +47,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      device_t dev;</span><br><span> #ifdef __PRE_RAM__</span><br><span>diff --git a/src/mainboard/google/butterfly/chromeos.c b/src/mainboard/google/butterfly/chromeos.c</span><br><span>index 42f6189..5fbd7097 100644</span><br><span>--- a/src/mainboard/google/butterfly/chromeos.c</span><br><span>+++ b/src/mainboard/google/butterfly/chromeos.c</span><br><span>@@ -19,6 +19,7 @@</span><br><span> #include <arch/io.h></span><br><span> #include <device/device.h></span><br><span> #include <device/pci.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include <southbridge/intel/bd82x6x/pch.h></span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span>@@ -50,7 +51,7 @@</span><br><span>        /* Write Protect: GPIO active Low */</span><br><span>         gpios->gpios[0].port = WP_GPIO;</span><br><span>   gpios->gpios[0].polarity = ACTIVE_LOW;</span><br><span style="color: hsl(0, 100%, 40%);">-       gpios->gpios[0].value = !get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+        gpios->gpios[0].value = !get_spi_wp_pin_state();</span><br><span>  strncpy((char *)gpios->gpios[0].name,"write protect",</span><br><span>                                                   GPIO_MAX_NAME_LENGTH);</span><br><span> </span><br><span>@@ -83,7 +84,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !get_gpio(WP_GPIO);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/chell/chromeos.c b/src/mainboard/google/chell/chromeos.c</span><br><span>index 3ff52d9..7e7225b 100644</span><br><span>--- a/src/mainboard/google/chell/chromeos.c</span><br><span>+++ b/src/mainboard/google/chell/chromeos.c</span><br><span>@@ -19,6 +19,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -28,7 +29,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>    struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -40,7 +41,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/cyan/chromeos.c b/src/mainboard/google/cyan/chromeos.c</span><br><span>index 7885642..25992f5 100644</span><br><span>--- a/src/mainboard/google/cyan/chromeos.c</span><br><span>+++ b/src/mainboard/google/cyan/chromeos.c</span><br><span>@@ -20,6 +20,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> /* The WP status pin lives on MF_ISH_GPIO_4 */</span><br><span> #define WP_STATUS_PAD_CFG0       0x4838</span><br><span>@@ -36,7 +37,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>        struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, vboot_recovery_mode_enabled(), "recovery"},</span><br><span>              {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -46,7 +47,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /*</span><br><span>    * The vboot loader queries this function in romstage. The GPIOs have</span><br><span>diff --git a/src/mainboard/google/daisy/chromeos.c b/src/mainboard/google/daisy/chromeos.c</span><br><span>index ae456b4..588e2d9 100644</span><br><span>--- a/src/mainboard/google/daisy/chromeos.c</span><br><span>+++ b/src/mainboard/google/daisy/chromeos.c</span><br><span>@@ -22,6 +22,7 @@</span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span> #include <bootmode.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>@@ -78,7 +79,7 @@</span><br><span>                   EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_RECOVERY));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>       return !gpio_get_value(GPIO_D16);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/eve/chromeos.c b/src/mainboard/google/eve/chromeos.c</span><br><span>index a77a23e..faf480b 100644</span><br><span>--- a/src/mainboard/google/eve/chromeos.c</span><br><span>+++ b/src/mainboard/google/eve/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <gpio.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -27,7 +28,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>       struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -39,7 +40,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/fizz/chromeos.c b/src/mainboard/google/fizz/chromeos.c</span><br><span>index e52ac72..5660f66 100644</span><br><span>--- a/src/mainboard/google/fizz/chromeos.c</span><br><span>+++ b/src/mainboard/google/fizz/chromeos.c</span><br><span>@@ -17,6 +17,7 @@</span><br><span> #include <rules.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -26,7 +27,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>   struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, 1, "lid"}, /* Lid switch always open */</span><br><span>          {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -38,7 +39,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/foster/chromeos.c b/src/mainboard/google/foster/chromeos.c</span><br><span>index b4cb332..0a323d8 100644</span><br><span>--- a/src/mainboard/google/foster/chromeos.c</span><br><span>+++ b/src/mainboard/google/foster/chromeos.c</span><br><span>@@ -21,6 +21,7 @@</span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>@@ -31,7 +32,7 @@</span><br><span>         /* Write Protect: active low */</span><br><span>      gpios->gpios[count].port = -1;</span><br><span>    gpios->gpios[count].polarity = ACTIVE_LOW;</span><br><span style="color: hsl(0, 100%, 40%);">-   gpios->gpios[count].value = get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+     gpios->gpios[count].value = get_spi_wp_pin_state();</span><br><span>       strncpy((char *)gpios->gpios[count].name, "write protect",</span><br><span>              GPIO_MAX_NAME_LENGTH);</span><br><span>       count++;</span><br><span>@@ -78,8 +79,3 @@</span><br><span>         return 0;</span><br><span> #endif</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/src/mainboard/google/gale/chromeos.c b/src/mainboard/google/gale/chromeos.c</span><br><span>index 939b061..eb43f74 100644</span><br><span>--- a/src/mainboard/google/gale/chromeos.c</span><br><span>+++ b/src/mainboard/google/gale/chromeos.c</span><br><span>@@ -24,6 +24,7 @@</span><br><span> #include <string.h></span><br><span> #include <timer.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #define REC_POL ACTIVE_LOW</span><br><span> #define WP_POL  ACTIVE_LOW</span><br><span>@@ -171,7 +172,7 @@</span><br><span>        return get_switch_state() == wipeout_req;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     return read_gpio(get_wp_status_gpio_pin()) ^ !WP_POL;</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/glados/chromeos.c b/src/mainboard/google/glados/chromeos.c</span><br><span>index 3cb3d89..2c77c51 100644</span><br><span>--- a/src/mainboard/google/glados/chromeos.c</span><br><span>+++ b/src/mainboard/google/glados/chromeos.c</span><br><span>@@ -20,6 +20,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -29,7 +30,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>     struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -41,7 +42,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/gru/chromeos.c b/src/mainboard/google/gru/chromeos.c</span><br><span>index ff5368a..7664df7 100644</span><br><span>--- a/src/mainboard/google/gru/chromeos.c</span><br><span>+++ b/src/mainboard/google/gru/chromeos.c</span><br><span>@@ -18,10 +18,11 @@</span><br><span> #include <boot/coreboot_tables.h></span><br><span> #include <gpio.h></span><br><span> #include <security/tpm/tis.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "board.h"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     return gpio_get(GPIO_WP);</span><br><span> }</span><br><span>@@ -29,7 +30,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>        struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {GPIO_WP.raw, ACTIVE_HIGH, get_write_protect_state(),</span><br><span style="color: hsl(120, 100%, 40%);">+         {GPIO_WP.raw, ACTIVE_HIGH, get_spi_wp_pin_state(),</span><br><span>            "write protect"},</span><br><span>                 {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span> #if IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)</span><br><span>diff --git a/src/mainboard/google/jecht/chromeos.c b/src/mainboard/google/jecht/chromeos.c</span><br><span>index f99fd6d..4aa121d 100644</span><br><span>--- a/src/mainboard/google/jecht/chromeos.c</span><br><span>+++ b/src/mainboard/google/jecht/chromeos.c</span><br><span>@@ -22,6 +22,7 @@</span><br><span> #include <ec/google/chromeec/ec.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <soc/sata.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> #include "onboard.h"</span><br><span> </span><br><span> #define GPIO_SPI_WP       58</span><br><span>@@ -49,7 +50,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      device_t dev;</span><br><span> #ifdef __PRE_RAM__</span><br><span>diff --git a/src/mainboard/google/kahlee/chromeos.c b/src/mainboard/google/kahlee/chromeos.c</span><br><span>index e74e3b9..6d2c800 100644</span><br><span>--- a/src/mainboard/google/kahlee/chromeos.c</span><br><span>+++ b/src/mainboard/google/kahlee/chromeos.c</span><br><span>@@ -20,11 +20,12 @@</span><br><span> #include <console/console.h></span><br><span> #include <gpio.h></span><br><span> #include <variant/gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>   struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -35,7 +36,7 @@</span><br><span>         lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return gpio_get(CROS_WP_GPIO);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/lars/chromeos.c b/src/mainboard/google/lars/chromeos.c</span><br><span>index 54f9bbe..ed55b3a 100644</span><br><span>--- a/src/mainboard/google/lars/chromeos.c</span><br><span>+++ b/src/mainboard/google/lars/chromeos.c</span><br><span>@@ -19,6 +19,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -28,7 +29,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>    struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -40,7 +41,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/link/chromeos.c b/src/mainboard/google/link/chromeos.c</span><br><span>index 335f1f7..c9bcdef 100644</span><br><span>--- a/src/mainboard/google/link/chromeos.c</span><br><span>+++ b/src/mainboard/google/link/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <southbridge/intel/bd82x6x/pch.h></span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #ifndef __PRE_RAM__</span><br><span> #include <boot/coreboot_tables.h></span><br><span>@@ -32,7 +33,7 @@</span><br><span>  /* Write Protect: GPIO57 = PCH_SPI_WP_D */</span><br><span>   gpios->gpios[0].port = 57;</span><br><span>        gpios->gpios[0].polarity = ACTIVE_HIGH;</span><br><span style="color: hsl(0, 100%, 40%);">-      gpios->gpios[0].value = get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+ gpios->gpios[0].value = get_spi_wp_pin_state();</span><br><span>   strncpy((char *)gpios->gpios[0].name,"write protect",</span><br><span>                                                   GPIO_MAX_NAME_LENGTH);</span><br><span>       /* Recovery: the "switch" comes from the EC */</span><br><span>@@ -62,7 +63,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>        return get_gpio(57);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/nyan/chromeos.c b/src/mainboard/google/nyan/chromeos.c</span><br><span>index 4fb8e78..7d76fbf 100644</span><br><span>--- a/src/mainboard/google/nyan/chromeos.c</span><br><span>+++ b/src/mainboard/google/nyan/chromeos.c</span><br><span>@@ -17,6 +17,7 @@</span><br><span> #include <bootmode.h></span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>@@ -31,7 +32,7 @@</span><br><span>        lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !gpio_get(GPIO(R1));</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/nyan_big/chromeos.c b/src/mainboard/google/nyan_big/chromeos.c</span><br><span>index f466d91..752e763 100644</span><br><span>--- a/src/mainboard/google/nyan_big/chromeos.c</span><br><span>+++ b/src/mainboard/google/nyan_big/chromeos.c</span><br><span>@@ -17,6 +17,7 @@</span><br><span> #include <bootmode.h></span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>@@ -31,7 +32,7 @@</span><br><span>         lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !gpio_get(GPIO(R1));</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/nyan_blaze/chromeos.c b/src/mainboard/google/nyan_blaze/chromeos.c</span><br><span>index f466d91..752e763 100644</span><br><span>--- a/src/mainboard/google/nyan_blaze/chromeos.c</span><br><span>+++ b/src/mainboard/google/nyan_blaze/chromeos.c</span><br><span>@@ -17,6 +17,7 @@</span><br><span> #include <bootmode.h></span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>@@ -31,7 +32,7 @@</span><br><span>         lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !gpio_get(GPIO(R1));</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/oak/chromeos.c b/src/mainboard/google/oak/chromeos.c</span><br><span>index 42145f7..fcf0107 100644</span><br><span>--- a/src/mainboard/google/oak/chromeos.c</span><br><span>+++ b/src/mainboard/google/oak/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <boot/coreboot_tables.h></span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -47,7 +48,7 @@</span><br><span>         lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !gpio_get(WRITE_PROTECT);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/parrot/chromeos.c b/src/mainboard/google/parrot/chromeos.c</span><br><span>index d2448eb..c34c9ab 100644</span><br><span>--- a/src/mainboard/google/parrot/chromeos.c</span><br><span>+++ b/src/mainboard/google/parrot/chromeos.c</span><br><span>@@ -24,6 +24,7 @@</span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span> #include <ec/compal/ene932/ec.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> #include "ec.h"</span><br><span> </span><br><span> </span><br><span>@@ -47,7 +48,7 @@</span><br><span>     /* Write Protect: GPIO70 active high */</span><br><span>      gpios->gpios[0].port = 70;</span><br><span>        gpios->gpios[0].polarity = ACTIVE_LOW;</span><br><span style="color: hsl(0, 100%, 40%);">-       gpios->gpios[0].value = !get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+        gpios->gpios[0].value = !get_spi_wp_pin_state();</span><br><span>  strncpy((char *)gpios->gpios[0].name,"write protect", GPIO_MAX_NAME_LENGTH);</span><br><span> </span><br><span>        /* Recovery: Virtual GPIO in the EC (Servo GPIO68 active low) */</span><br><span>@@ -82,7 +83,7 @@</span><br><span>         return get_gpio(15);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>  return !get_gpio(70);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/peach_pit/chromeos.c b/src/mainboard/google/peach_pit/chromeos.c</span><br><span>index e782986..7287040 100644</span><br><span>--- a/src/mainboard/google/peach_pit/chromeos.c</span><br><span>+++ b/src/mainboard/google/peach_pit/chromeos.c</span><br><span>@@ -22,6 +22,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>@@ -78,7 +79,7 @@</span><br><span>              EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_RECOVERY));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>       return !gpio_get_value(GPIO_X30);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/poppy/chromeos.c b/src/mainboard/google/poppy/chromeos.c</span><br><span>index cf9579e..811607a 100644</span><br><span>--- a/src/mainboard/google/poppy/chromeos.c</span><br><span>+++ b/src/mainboard/google/poppy/chromeos.c</span><br><span>@@ -19,6 +19,7 @@</span><br><span> #include <rules.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include <variant/gpio.h></span><br><span> </span><br><span>@@ -28,7 +29,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>  struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -40,7 +41,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/purin/chromeos.c b/src/mainboard/google/purin/chromeos.c</span><br><span>index 5e7cdfe..f3031fe 100644</span><br><span>--- a/src/mainboard/google/purin/chromeos.c</span><br><span>+++ b/src/mainboard/google/purin/chromeos.c</span><br><span>@@ -24,8 +24,3 @@</span><br><span> {</span><br><span>      return 0;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/src/mainboard/google/rambi/chromeos.c b/src/mainboard/google/rambi/chromeos.c</span><br><span>index 99a97d8..e2edf5d 100644</span><br><span>--- a/src/mainboard/google/rambi/chromeos.c</span><br><span>+++ b/src/mainboard/google/rambi/chromeos.c</span><br><span>@@ -17,6 +17,7 @@</span><br><span> #include <bootmode.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> /* The WP status pin lives on GPIO_SSUS_6 which is pad 36 in the SUS well. */</span><br><span> #define WP_STATUS_PAD  36</span><br><span>@@ -27,7 +28,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>    struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, vboot_recovery_mode_enabled(), "recovery"},</span><br><span>              {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -37,7 +38,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>        /*</span><br><span>    * The vboot loader queries this function in romstage. The GPIOs have</span><br><span>diff --git a/src/mainboard/google/reef/chromeos.c b/src/mainboard/google/reef/chromeos.c</span><br><span>index 7b7f2b8..e843f9c 100644</span><br><span>--- a/src/mainboard/google/reef/chromeos.c</span><br><span>+++ b/src/mainboard/google/reef/chromeos.c</span><br><span>@@ -19,11 +19,12 @@</span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <variant/gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>         struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -34,7 +35,7 @@</span><br><span>         lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/google/rotor/chromeos.c b/src/mainboard/google/rotor/chromeos.c</span><br><span>index c73fe47..37f376f 100644</span><br><span>--- a/src/mainboard/google/rotor/chromeos.c</span><br><span>+++ b/src/mainboard/google/rotor/chromeos.c</span><br><span>@@ -27,8 +27,3 @@</span><br><span> {</span><br><span>      return 0;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/src/mainboard/google/slippy/chromeos.c b/src/mainboard/google/slippy/chromeos.c</span><br><span>index e26c3fb..8c53837 100644</span><br><span>--- a/src/mainboard/google/slippy/chromeos.c</span><br><span>+++ b/src/mainboard/google/slippy/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <southbridge/intel/lynxpoint/pch.h></span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #ifndef __PRE_RAM__</span><br><span> #include <boot/coreboot_tables.h></span><br><span>@@ -35,7 +36,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>  return get_gpio(58);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/smaug/chromeos.c b/src/mainboard/google/smaug/chromeos.c</span><br><span>index fe8e5aa..a558302 100644</span><br><span>--- a/src/mainboard/google/smaug/chromeos.c</span><br><span>+++ b/src/mainboard/google/smaug/chromeos.c</span><br><span>@@ -16,6 +16,7 @@</span><br><span> #include <bootmode.h></span><br><span> #include <boot/coreboot_tables.h></span><br><span> #include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -32,7 +33,7 @@</span><br><span>    lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !gpio_get(WRITE_PROTECT_L);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/storm/chromeos.c b/src/mainboard/google/storm/chromeos.c</span><br><span>index 3110228..e24c56b 100644</span><br><span>--- a/src/mainboard/google/storm/chromeos.c</span><br><span>+++ b/src/mainboard/google/storm/chromeos.c</span><br><span>@@ -24,6 +24,7 @@</span><br><span> #include <string.h></span><br><span> #include <timer.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #define DEV_SW 15</span><br><span> #define DEV_POL ACTIVE_LOW</span><br><span>@@ -142,7 +143,7 @@</span><br><span>        return get_switch_state() == wipeout_req;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     return read_gpio(WP_SW) ^ !WP_POL;</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/stout/chromeos.c b/src/mainboard/google/stout/chromeos.c</span><br><span>index 047e6a1..c49494f 100644</span><br><span>--- a/src/mainboard/google/stout/chromeos.c</span><br><span>+++ b/src/mainboard/google/stout/chromeos.c</span><br><span>@@ -25,6 +25,7 @@</span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span> #include "ec.h"</span><br><span> #include <ec/quanta/it8518/ec.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #ifndef __PRE_RAM__</span><br><span> #include <boot/coreboot_tables.h></span><br><span>@@ -39,7 +40,7 @@</span><br><span>     /* Write Protect: GPIO7 */</span><br><span>   gpios->gpios[0].port = 7;</span><br><span>         gpios->gpios[0].polarity = ACTIVE_LOW;</span><br><span style="color: hsl(0, 100%, 40%);">-       gpios->gpios[0].value = !get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+        gpios->gpios[0].value = !get_spi_wp_pin_state();</span><br><span>  strncpy((char *)gpios->gpios[0].name,"write protect",</span><br><span>                                                   GPIO_MAX_NAME_LENGTH);</span><br><span> </span><br><span>@@ -75,7 +76,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !get_gpio(7);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/urara/chromeos.c b/src/mainboard/google/urara/chromeos.c</span><br><span>index 3f7ec32..6ee3f25 100644</span><br><span>--- a/src/mainboard/google/urara/chromeos.c</span><br><span>+++ b/src/mainboard/google/urara/chromeos.c</span><br><span>@@ -18,12 +18,6 @@</span><br><span> #include <console/console.h></span><br><span> #include <gpio.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  printk(BIOS_ERR, "%s unsupported, but called\n", __func__);</span><br><span style="color: hsl(0, 100%, 40%);">-   return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>        printk(BIOS_ERR, "%s unsupported, but called\n", __func__);</span><br><span>diff --git a/src/mainboard/google/veyron/chromeos.c b/src/mainboard/google/veyron/chromeos.c</span><br><span>index f99cd81..4902494 100644</span><br><span>--- a/src/mainboard/google/veyron/chromeos.c</span><br><span>+++ b/src/mainboard/google/veyron/chromeos.c</span><br><span>@@ -20,6 +20,7 @@</span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "board.h"</span><br><span> </span><br><span>@@ -68,7 +69,7 @@</span><br><span>                  EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEYBOARD_RECOVERY));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>       return !gpio_get(GPIO_WP);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/veyron_mickey/chromeos.c b/src/mainboard/google/veyron_mickey/chromeos.c</span><br><span>index 2988ea7..12c2dfb 100644</span><br><span>--- a/src/mainboard/google/veyron_mickey/chromeos.c</span><br><span>+++ b/src/mainboard/google/veyron_mickey/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "board.h"</span><br><span> </span><br><span>@@ -46,7 +47,7 @@</span><br><span>  return !gpio_get(GPIO_RECOVERY);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      return !gpio_get(GPIO_WP);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/veyron_rialto/chromeos.c b/src/mainboard/google/veyron_rialto/chromeos.c</span><br><span>index c68cd7a..5b35529 100644</span><br><span>--- a/src/mainboard/google/veyron_rialto/chromeos.c</span><br><span>+++ b/src/mainboard/google/veyron_rialto/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "board.h"</span><br><span> </span><br><span>@@ -56,7 +57,7 @@</span><br><span>           gpio_get(GPIO_RECOVERY_PUSHKEY));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>    return !gpio_get(GPIO_WP);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/zoombini/chromeos.c b/src/mainboard/google/zoombini/chromeos.c</span><br><span>index 8ca643e..63a7e51 100644</span><br><span>--- a/src/mainboard/google/zoombini/chromeos.c</span><br><span>+++ b/src/mainboard/google/zoombini/chromeos.c</span><br><span>@@ -20,11 +20,12 @@</span><br><span> #include <rules.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>      struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -35,7 +36,7 @@</span><br><span>         lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>      /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/intel/baskingridge/chromeos.c b/src/mainboard/intel/baskingridge/chromeos.c</span><br><span>index 5ed9e36..4daf2df 100644</span><br><span>--- a/src/mainboard/intel/baskingridge/chromeos.c</span><br><span>+++ b/src/mainboard/intel/baskingridge/chromeos.c</span><br><span>@@ -83,11 +83,6 @@</span><br><span>  return get_gpio(69);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static const struct cros_gpio cros_gpios[] = {</span><br><span>         CROS_GPIO_REC_AH(69, CROS_GPIO_DEVICE_NAME),</span><br><span>         CROS_GPIO_DEV_AL(48, CROS_GPIO_DEVICE_NAME),</span><br><span>diff --git a/src/mainboard/intel/cannonlake_rvp/chromeos.c b/src/mainboard/intel/cannonlake_rvp/chromeos.c</span><br><span>index b7dd91d..5863a05 100644</span><br><span>--- a/src/mainboard/intel/cannonlake_rvp/chromeos.c</span><br><span>+++ b/src/mainboard/intel/cannonlake_rvp/chromeos.c</span><br><span>@@ -20,6 +20,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <variant/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #if ENV_RAMSTAGE</span><br><span> #include <boot/coreboot_tables.h></span><br><span>@@ -27,7 +28,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>     struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -48,12 +49,6 @@</span><br><span>         return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   /* No write protect */</span><br><span style="color: hsl(0, 100%, 40%);">-  return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> void mainboard_chromeos_acpi_generate(void)</span><br><span> {</span><br><span>       const struct cros_gpio *gpios;</span><br><span>diff --git a/src/mainboard/intel/galileo/vboot.c b/src/mainboard/intel/galileo/vboot.c</span><br><span>index 469ec4e..113483c 100644</span><br><span>--- a/src/mainboard/intel/galileo/vboot.c</span><br><span>+++ b/src/mainboard/intel/galileo/vboot.c</span><br><span>@@ -38,12 +38,6 @@</span><br><span>         return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    /* Not write protected */</span><br><span style="color: hsl(0, 100%, 40%);">-       return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> void log_recovery_mode_switch(void)</span><br><span> {</span><br><span> }</span><br><span>diff --git a/src/mainboard/intel/glkrvp/chromeos.c b/src/mainboard/intel/glkrvp/chromeos.c</span><br><span>index a87ce4a..c7e1bdb 100644</span><br><span>--- a/src/mainboard/intel/glkrvp/chromeos.c</span><br><span>+++ b/src/mainboard/intel/glkrvp/chromeos.c</span><br><span>@@ -20,11 +20,12 @@</span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <variant/gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>       struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_developer_mode_switch(), "developer"},</span><br><span>               {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>@@ -41,11 +42,6 @@</span><br><span>   return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> void mainboard_chromeos_acpi_generate(void)</span><br><span> {</span><br><span>       const struct cros_gpio *gpios;</span><br><span>diff --git a/src/mainboard/intel/kblrvp/chromeos.c b/src/mainboard/intel/kblrvp/chromeos.c</span><br><span>index 4bd802a..8164be5 100644</span><br><span>--- a/src/mainboard/intel/kblrvp/chromeos.c</span><br><span>+++ b/src/mainboard/intel/kblrvp/chromeos.c</span><br><span>@@ -24,6 +24,7 @@</span><br><span> #include <string.h></span><br><span> #include <ec/google/chromeec/ec.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> #include "ec.h"</span><br><span>@@ -34,7 +35,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>       struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -81,12 +82,6 @@</span><br><span>        return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    /* No write protect */</span><br><span style="color: hsl(0, 100%, 40%);">-  return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static const struct cros_gpio cros_gpios[] = {</span><br><span>         CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),</span><br><span>  CROS_GPIO_WP_AH(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),</span><br><span>diff --git a/src/mainboard/intel/kunimitsu/chromeos.c b/src/mainboard/intel/kunimitsu/chromeos.c</span><br><span>index 54f9bbe..ed55b3a 100644</span><br><span>--- a/src/mainboard/intel/kunimitsu/chromeos.c</span><br><span>+++ b/src/mainboard/intel/kunimitsu/chromeos.c</span><br><span>@@ -19,6 +19,7 @@</span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span>@@ -28,7 +29,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>     struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span>                 {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -40,7 +41,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /* Read PCH_WP GPIO. */</span><br><span>      return gpio_get(GPIO_PCH_WP);</span><br><span>diff --git a/src/mainboard/intel/strago/chromeos.c b/src/mainboard/intel/strago/chromeos.c</span><br><span>index fbcbcf7..f993347 100644</span><br><span>--- a/src/mainboard/intel/strago/chromeos.c</span><br><span>+++ b/src/mainboard/intel/strago/chromeos.c</span><br><span>@@ -18,6 +18,7 @@</span><br><span> #include <gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #define WP_GPIO    GP_E_22</span><br><span> </span><br><span>@@ -30,7 +31,7 @@</span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>   struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"},</span><br><span style="color: hsl(120, 100%, 40%);">+              {-1, ACTIVE_HIGH, get_spi_wp_pin_state(), "write protect"},</span><br><span>                {-1, ACTIVE_HIGH, vboot_recovery_mode_enabled(), "recovery"},</span><br><span>              {-1, ACTIVE_HIGH, get_lid_switch(), "lid"},</span><br><span>                {-1, ACTIVE_HIGH, 0, "power"},</span><br><span>@@ -40,7 +41,7 @@</span><br><span> }</span><br><span> #endif /* ENV_RAMSTAGE */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span>     /*</span><br><span>    * The vboot loader queries this function in romstage. The GPIOs have</span><br><span>diff --git a/src/mainboard/intel/wtm2/chromeos.c b/src/mainboard/intel/wtm2/chromeos.c</span><br><span>index fe98fd8..2de89aa 100644</span><br><span>--- a/src/mainboard/intel/wtm2/chromeos.c</span><br><span>+++ b/src/mainboard/intel/wtm2/chromeos.c</span><br><span>@@ -45,11 +45,6 @@</span><br><span>  return REC_MODE_SETTING;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static const struct cros_gpio cros_gpios[] = {</span><br><span>         CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),</span><br><span>  CROS_GPIO_DEV_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),</span><br><span>diff --git a/src/mainboard/samsung/lumpy/chromeos.c b/src/mainboard/samsung/lumpy/chromeos.c</span><br><span>index a287c74..f445fb3 100644</span><br><span>--- a/src/mainboard/samsung/lumpy/chromeos.c</span><br><span>+++ b/src/mainboard/samsung/lumpy/chromeos.c</span><br><span>@@ -22,6 +22,7 @@</span><br><span> #include <southbridge/intel/bd82x6x/pch.h></span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #define GPIO_SPI_WP      24</span><br><span> #define GPIO_REC_MODE     42</span><br><span>@@ -50,7 +51,7 @@</span><br><span>       /* Write Protect: GPIO24 = KBC3_SPI_WP# */</span><br><span>   gpios->gpios[0].port = GPIO_SPI_WP;</span><br><span>       gpios->gpios[0].polarity = ACTIVE_HIGH;</span><br><span style="color: hsl(0, 100%, 40%);">-      gpios->gpios[0].value = get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+ gpios->gpios[0].value = get_spi_wp_pin_state();</span><br><span>   strncpy((char *)gpios->gpios[0].name,"write protect",</span><br><span>                                                   GPIO_MAX_NAME_LENGTH);</span><br><span> </span><br><span>@@ -85,7 +86,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span> #ifdef __SIMPLE_DEVICE__</span><br><span>  pci_devfn_t dev;</span><br><span>diff --git a/src/mainboard/samsung/stumpy/chromeos.c b/src/mainboard/samsung/stumpy/chromeos.c</span><br><span>index 01d81d7..6fdc144 100644</span><br><span>--- a/src/mainboard/samsung/stumpy/chromeos.c</span><br><span>+++ b/src/mainboard/samsung/stumpy/chromeos.c</span><br><span>@@ -21,6 +21,7 @@</span><br><span> #include <southbridge/intel/bd82x6x/pch.h></span><br><span> #include <southbridge/intel/common/gpio.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> #define GPIO_SPI_WP     68</span><br><span> #define GPIO_REC_MODE     42</span><br><span>@@ -46,7 +47,7 @@</span><br><span>       /* Write Protect: GPIO68 = CHP3_SPI_WP */</span><br><span>    gpios->gpios[0].port = GPIO_SPI_WP;</span><br><span>       gpios->gpios[0].polarity = ACTIVE_HIGH;</span><br><span style="color: hsl(0, 100%, 40%);">-      gpios->gpios[0].value = get_write_protect_state();</span><br><span style="color: hsl(120, 100%, 40%);">+ gpios->gpios[0].value = get_spi_wp_pin_state();</span><br><span>   strncpy((char *)gpios->gpios[0].name,"write protect",</span><br><span>                                                   GPIO_MAX_NAME_LENGTH);</span><br><span> </span><br><span>@@ -82,7 +83,7 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_spi_wp_pin_state(void)</span><br><span> {</span><br><span> #ifdef __SIMPLE_DEVICE__</span><br><span>  pci_devfn_t dev;</span><br><span>diff --git a/src/security/flash/flash.c b/src/security/flash/flash.c</span><br><span>index 5f07850..49a2980 100644</span><br><span>--- a/src/security/flash/flash.c</span><br><span>+++ b/src/security/flash/flash.c</span><br><span>@@ -60,7 +60,7 @@</span><br><span>    return result;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state1(void)</span><br><span style="color: hsl(120, 100%, 40%);">+int get_write_protect_state(void)</span><br><span> {</span><br><span>    int result = -1;</span><br><span>     struct region region;</span><br><span>diff --git a/src/security/flash/flash.h b/src/security/flash/flash.h</span><br><span>index 8c22e94..0d113c8 100644</span><br><span>--- a/src/security/flash/flash.h</span><br><span>+++ b/src/security/flash/flash.h</span><br><span>@@ -19,6 +19,6 @@</span><br><span> int get_spi_wp_pin_state(void);</span><br><span> </span><br><span> int set_write_protect_enabled(void);</span><br><span style="color: hsl(0, 100%, 40%);">-int get_write_protect_state1(void);</span><br><span style="color: hsl(120, 100%, 40%);">+int get_write_protect_state(void);</span><br><span> </span><br><span> #endif /* FLASH_H_ */</span><br><span>diff --git a/src/security/vboot/Kconfig b/src/security/vboot/Kconfig</span><br><span>index e2a3f20..9e936e7 100644</span><br><span>--- a/src/security/vboot/Kconfig</span><br><span>+++ b/src/security/vboot/Kconfig</span><br><span>@@ -225,8 +225,7 @@</span><br><span>         bool "Allow the use of vboot without board support"</span><br><span>        default n</span><br><span>    help</span><br><span style="color: hsl(0, 100%, 40%);">-      Enable weak functions for get_write_protect_state and</span><br><span style="color: hsl(0, 100%, 40%);">-   get_recovery_mode_switch in order to proceed with refactoring</span><br><span style="color: hsl(120, 100%, 40%);">+         Enable weak functions for get_recovery_mode_switch in order to proceed with refactoring</span><br><span>      of the vboot2 code base. Later on this code is removed and replaced</span><br><span>          by interfaces.</span><br><span> </span><br><span>diff --git a/src/security/vboot/bootmode.c b/src/security/vboot/bootmode.c</span><br><span>index 05098b4..1601b16 100644</span><br><span>--- a/src/security/vboot/bootmode.c</span><br><span>+++ b/src/security/vboot/bootmode.c</span><br><span>@@ -171,14 +171,6 @@</span><br><span> }</span><br><span> </span><br><span> #if IS_ENABLED(CONFIG_VBOOT_NO_BOARD_SUPPORT)</span><br><span style="color: hsl(0, 100%, 40%);">-/**</span><br><span style="color: hsl(0, 100%, 40%);">- * TODO: Create flash protection interface which implements get_write_protect_state.</span><br><span style="color: hsl(0, 100%, 40%);">- * get_recovery_mode_switch should be implemented as default function.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-int __attribute__((weak)) get_write_protect_state(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span> </span><br><span> int __attribute__((weak)) get_recovery_mode_switch(void)</span><br><span> {</span><br><span>diff --git a/src/security/vboot/vboot_handoff.c b/src/security/vboot/vboot_handoff.c</span><br><span>index 9fecc1a..3190b7d 100644</span><br><span>--- a/src/security/vboot/vboot_handoff.c</span><br><span>+++ b/src/security/vboot/vboot_handoff.c</span><br><span>@@ -36,6 +36,7 @@</span><br><span> #include <vboot_struct.h></span><br><span> #include <security/vboot/vbnv.h></span><br><span> #include <security/vboot/misc.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <security/flash/flash.h></span><br><span> </span><br><span> /**</span><br><span>  * Sets vboot_handoff based on the information in vb2_shared_data</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/25262">change 25262</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/25262"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Icda8ac0b60d84fb5f020e790ccda093d477c738c </div>
<div style="display:none"> Gerrit-Change-Number: 25262 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Philipp Deppenwiese <zaolin.daisuki@gmail.com> </div>