diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2015-01-09 10:29:53 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-01-15 01:07:14 +0000 |
commit | 64ada6e3d8220e51a64b30ff15878f1abff11a47 (patch) | |
tree | b59b0dd7e696a2b0c76fa68b0baa3d3941fcad8f /board/zinger | |
parent | bd85bc46360e43b74aa1864565c5ad49b719a804 (diff) | |
download | chrome-ec-64ada6e3d8220e51a64b30ff15878f1abff11a47.tar.gz |
pd: log important events for accessories
Record in the PD log when we fail to verify the RW signature and when
the RW partition is erased.
Also log the faults on the power supplies.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=samus
BUG=chrome-os-partner:32785
TEST=flash a bad rw on Zinger.
Change-Id: Ib62dcb0d407867151af0aaecc405533e894d773e
Reviewed-on: https://chromium-review.googlesource.com/239913
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Trybot-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'board/zinger')
-rw-r--r-- | board/zinger/board.c | 2 | ||||
-rw-r--r-- | board/zinger/usb_pd_policy.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/board/zinger/board.c b/board/zinger/board.c index cf703296a7..7130f68572 100644 --- a/board/zinger/board.c +++ b/board/zinger/board.c @@ -6,6 +6,7 @@ #include "common.h" #include "debug.h" +#include "ec_commands.h" #include "registers.h" #include "rsa.h" #include "sha256.h" @@ -65,6 +66,7 @@ static int check_rw_valid(void *rw_hash) good = rsa_verify(&pkey, (void *)rw_sig, rw_hash, rsa_workbuf); if (!good) { debug_printf("RSA FAILED\n"); + pd_log_event(PD_EVENT_ACC_RW_FAIL, 0, 0, NULL); return 0; } diff --git a/board/zinger/usb_pd_policy.c b/board/zinger/usb_pd_policy.c index a228712290..70258e73a5 100644 --- a/board/zinger/usb_pd_policy.c +++ b/board/zinger/usb_pd_policy.c @@ -7,6 +7,7 @@ #include "common.h" #include "console.h" #include "debug.h" +#include "ec_commands.h" #include "hooks.h" #include "registers.h" #include "system.h" @@ -340,6 +341,7 @@ int pd_board_checks(void) if (fault == FAULT_FAST_OCP) { debug_printf("Fast OCP\n"); + pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_FAST_OCP, NULL); fault = FAULT_OCP; /* reset over-current after 1 second */ fault_deadline.val = get_time().val + OCP_TIMEOUT; @@ -357,6 +359,7 @@ int pd_board_checks(void) debug_printf("OCP %d mA\n", vbus_amp * VDDA_MV / CURR_GAIN * 1000 / R_SENSE / ADC_SCALE); + pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_OCP, NULL); fault = FAULT_OCP; /* reset over-current after 1 second */ fault_deadline.val = get_time().val + OCP_TIMEOUT; @@ -383,9 +386,11 @@ int pd_board_checks(void) if ((output_is_enabled() && (vbus_volt > voltages[ovp_idx].ovp)) || (fault && (vbus_volt > voltages[ovp_idx].ovp_rec))) { - if (!fault) + if (!fault) { debug_printf("OVP %d mV\n", ADC_TO_VOLT_MV(vbus_volt)); + pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_OVP, NULL); + } fault = FAULT_OVP; /* no timeout */ fault_deadline.val = get_time().val; @@ -404,6 +409,7 @@ int pd_board_checks(void) adc_enable_watchdog(ADC_CH_A_SENSE, MAX_CURRENT_FAST, 0); debug_printf("Disch FAIL %d mV\n", ADC_TO_VOLT_MV(vbus_volt)); + pd_log_event(PD_EVENT_PS_FAULT, 0, PS_FAULT_DISCH, NULL); fault = FAULT_DISCHARGE; /* reset it after 1 second */ fault_deadline.val = get_time().val + OCP_TIMEOUT; |