Mary Ruthven has uploaded this change for review.

View Change

raiden_debug_spi: add param for a custom reset setup

Cr50 asserts EC_RST_L to flash the AP. Asserting EC_RST_L breaks
flashing the AP on some boards. This change adds a custom_rst arg to
tell cr50 not to assert any system reset signals during flash AP setup.

BUG=b:154885210
BRANCH=none
TEST=manual

sudo flashrom -p raiden_debug_spi:target=EC -r

sudo flashrom -p raiden_debug_spi:target=AP -r

sudo flashrom -p raiden_debug_spi:target=AP,custom_rst=true -r

sudo flashrom -p raiden_debug_spi:target=AP,custom_rst=bogus -r

sudo flashrom -p raiden_debug_spi -r

Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Change-Id: I2da26469120c5304bc129b5578fcb7ca805fc1d1
---
M raiden_debug_spi.c
1 file changed, 30 insertions(+), 12 deletions(-)

git pull ssh://review.coreboot.org:29418/flashrom refs/changes/27/43527/1
diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c
index b55307a..6b3468e 100644
--- a/raiden_debug_spi.c
+++ b/raiden_debug_spi.c
@@ -136,17 +136,17 @@
};

enum raiden_debug_spi_request {
- RAIDEN_DEBUG_SPI_REQ_ENABLE = 0x0000,
- RAIDEN_DEBUG_SPI_REQ_DISABLE = 0x0001,
- RAIDEN_DEBUG_SPI_REQ_ENABLE_AP = 0x0002,
- RAIDEN_DEBUG_SPI_REQ_ENABLE_EC = 0x0003,
- RAIDEN_DEBUG_SPI_REQ_ENABLE_H1 = 0x0004,
- RAIDEN_DEBUG_SPI_REQ_RESET = 0x0005,
- RAIDEN_DEBUG_SPI_REQ_BOOT_CFG = 0x0006,
- RAIDEN_DEBUG_SPI_REQ_SOCKET = 0x0007,
- RAIDEN_DEBUG_SPI_REQ_SIGNING_START = 0x0008,
- RAIDEN_DEBUG_SPI_REQ_SIGNING_SIGN = 0x0009,
-
+ RAIDEN_DEBUG_SPI_REQ_ENABLE = 0x0000,
+ RAIDEN_DEBUG_SPI_REQ_DISABLE = 0x0001,
+ RAIDEN_DEBUG_SPI_REQ_ENABLE_AP = 0x0002,
+ RAIDEN_DEBUG_SPI_REQ_ENABLE_EC = 0x0003,
+ RAIDEN_DEBUG_SPI_REQ_ENABLE_H1 = 0x0004,
+ RAIDEN_DEBUG_SPI_REQ_RESET = 0x0005,
+ RAIDEN_DEBUG_SPI_REQ_BOOT_CFG = 0x0006,
+ RAIDEN_DEBUG_SPI_REQ_SOCKET = 0x0007,
+ RAIDEN_DEBUG_SPI_REQ_SIGNING_START = 0x0008,
+ RAIDEN_DEBUG_SPI_REQ_SIGNING_SIGN = 0x0009,
+ RAIDEN_DEBUG_SPI_REQ_ENABLE_AP_CUSTOM = 0x000a,
};

#define PACKET_HEADER_SIZE (2)
@@ -452,6 +452,23 @@
return 0;
}

+static int get_ap_request_type(void)
+{
+ int ap_request = RAIDEN_DEBUG_SPI_REQ_ENABLE_AP;
+ char *custom_rst_str = extract_programmer_param("custom_rst");
+ if (custom_rst_str) {
+ if (!strcasecmp(custom_rst_str, "true"))
+ ap_request = RAIDEN_DEBUG_SPI_REQ_ENABLE_AP_CUSTOM;
+ else {
+ msg_perr("Invalid custom rst param: %s\n",
+ custom_rst_str);
+ ap_request = -1;
+ }
+ }
+ free(custom_rst_str);
+ return ap_request;
+}
+
static int get_target(void)
{
int request_enable = RAIDEN_DEBUG_SPI_REQ_ENABLE;
@@ -459,7 +476,7 @@
char *target_str = extract_programmer_param("target");
if (target_str) {
if (!strcasecmp(target_str, "ap"))
- request_enable = RAIDEN_DEBUG_SPI_REQ_ENABLE_AP;
+ request_enable = get_ap_request_type();
else if (!strcasecmp(target_str, "ec"))
request_enable = RAIDEN_DEBUG_SPI_REQ_ENABLE_EC;
else {
@@ -468,6 +485,7 @@
}
}
free(target_str);
+ msg_pinfo("Raiden target: %d\n", request_enable);

return request_enable;
}

To view, visit change 43527. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: I2da26469120c5304bc129b5578fcb7ca805fc1d1
Gerrit-Change-Number: 43527
Gerrit-PatchSet: 1
Gerrit-Owner: Mary Ruthven <mruthven@chromium.org>
Gerrit-MessageType: newchange