summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2021-08-10 13:13:16 -0700
committerCommit Bot <commit-bot@chromium.org>2021-09-21 20:50:07 +0000
commit0bff067f036a89bcc61bf8afcb8e1be08e412dae (patch)
tree8dd753990ee189222fd58f794830d7a4d3a110fc
parent265946822c56409b6b2aa07a2592b441b00f6bbe (diff)
downloadchrome-ec-0bff067f036a89bcc61bf8afcb8e1be08e412dae.tar.gz
efs2: Add overridable packet mode function
To support multiple OS and to reduce the BOM stuffing options on Intel RVP, Packet mode GPIO is added on I/O expander hence added overridable function. BUG=b:200189880 BRANCH=none TEST=make buildall -j Change-Id: Ieea1129614258393f7c73712ed28ed50b9fbf8fb Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3087618 Reviewed-by: Li Feng <li1.feng@intel.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org>
-rw-r--r--common/vboot/efs2.c12
-rw-r--r--include/vboot.h5
2 files changed, 11 insertions, 6 deletions
diff --git a/common/vboot/efs2.c b/common/vboot/efs2.c
index 7c04d2460e..e5c3b64f04 100644
--- a/common/vboot/efs2.c
+++ b/common/vboot/efs2.c
@@ -49,7 +49,7 @@ static bool is_valid_cr50_response(enum cr50_comm_err code)
&& (code >> 8) == CR50_COMM_ERR_PREFIX;
}
-static void enable_packet_mode(bool enable)
+__overridable void board_enable_packet_mode(bool enable)
{
/*
* This can be done by set_flags(INPUT|PULL_UP). We don't need it now
@@ -66,14 +66,14 @@ static enum cr50_comm_err send_to_cr50(const uint8_t *data, size_t size)
struct cr50_comm_response res = {};
/* This will wake up (if it's sleeping) and interrupt Cr50. */
- enable_packet_mode(true);
+ board_enable_packet_mode(true);
uart_flush_output();
uart_clear_input();
if (uart_shell_stop()) {
/* Failed to stop the shell. */
- enable_packet_mode(false);
+ board_enable_packet_mode(false);
return CR50_COMM_ERR_UNKNOWN;
}
@@ -122,7 +122,7 @@ static enum cr50_comm_err send_to_cr50(const uint8_t *data, size_t size)
#endif /* CONFIG_ZEPHYR */
/* Exit packet mode */
- enable_packet_mode(false);
+ board_enable_packet_mode(false);
CPRINTS("Received 0x%04x", res.error);
@@ -177,10 +177,10 @@ static enum cr50_comm_err verify_hash(void)
int rv;
/* Wake up Cr50 beforehand in case it's asleep. */
- enable_packet_mode(true);
+ board_enable_packet_mode(true);
CPRINTS("Ping Cr50");
msleep(1);
- enable_packet_mode(false);
+ board_enable_packet_mode(false);
rv = vboot_get_rw_hash(&hash);
if (rv)
diff --git a/include/vboot.h b/include/vboot.h
index 9c09e1aba2..52ccae6e90 100644
--- a/include/vboot.h
+++ b/include/vboot.h
@@ -87,6 +87,11 @@ __override_proto void show_critical_error(void);
*/
__override_proto void show_power_shortage(void);
+/*
+ * Board level packet mode enable function.
+ */
+__override_proto void board_enable_packet_mode(bool enable);
+
/**
* Interrupt handler for packet mode entry.
*