Support write protect GPIO on pit

Daisy doesn't have a write protect signal, so emulate it as a fake
signal which is always low; this maintains the current behavior on
daisy.

BUG=chrome-os-partner:15613
BRANCH=none
TEST=flashinfo shows gpio not asserted
     then short across the WP screw and flashinfo shows it asserted

Change-Id: I329424efe1c3b065976e17395e2bf9588cdce88c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/51500
Reviewed-by: Vic Yang <victoryang@chromium.org>
This commit is contained in:
Randall Spangler
2013-05-16 14:02:54 -07:00
committed by ChromeBot
parent 6ff01d910a
commit 7d207c98e2
3 changed files with 9 additions and 8 deletions

View File

@@ -94,6 +94,9 @@ const struct gpio_info gpio_list[GPIO_COUNT] = {
{"KB_OUT10", GPIO_C, (1<<5), GPIO_KB_OUTPUT, NULL},
{"KB_OUT11", GPIO_C, (1<<6), GPIO_KB_OUTPUT, NULL},
{"KB_OUT12", GPIO_C, (1<<7), GPIO_KB_OUTPUT, NULL},
/* Unimplemented signals which we need to emulate for now */
GPIO_SIGNAL_NOT_IMPLEMENTED("WP_L"),
};
/* I2C ports */

View File

@@ -112,6 +112,8 @@ enum gpio_signal {
GPIO_KB_OUT10,
GPIO_KB_OUT11,
GPIO_KB_OUT12,
/* Unimplemented signals we emulate */
GPIO_WP_L,
/* Number of GPIOs; not an actual GPIO */
GPIO_COUNT
};

View File

@@ -7,6 +7,7 @@
#include "console.h"
#include "flash.h"
#include "gpio.h"
#include "registers.h"
#include "task.h"
#include "timer.h"
@@ -309,14 +310,9 @@ uint32_t flash_get_protect(void)
int not_protected[2] = {0};
int i;
/*
* TODO: (crosbug.com/p/15613) write protect scheme
*
* Always enable write protect until we have WP pin. For developer to
* unlock WP, please use stm32mon -u and immediately re-program the
* pstate sector.
*/
flags |= EC_FLASH_PROTECT_GPIO_ASSERTED;
/* Check write protect GPIO */
if (gpio_get_level(GPIO_WP_L) == 0)
flags |= EC_FLASH_PROTECT_GPIO_ASSERTED;
/* Scan flash protection */
for (i = 0; i < PHYSICAL_BANKS; i++) {