Skip to content
Snippets Groups Projects
Commit 93bfafc0 authored by Brian J. Nemec's avatar Brian J. Nemec Committed by Edward O'Callaghan
Browse files

raiden_debug_spi.c: Enables USB retry for invalid write count


Enables the USB SPI transfer retry mechanism when the error code
USB_SPI_WRITE_COUNT_INVALID is returned. This error code can
indicate a recoverable USB transfer failure.

BUG=b:153887087
BRANCH=none
TEST=Manual testing of ServoMicro and Flashrom when performing
    reads, writes, and verification of the EC firmware on Nami.
TEST=Modified ServoMicro to randomly corrupt USB packets when
    reading the packet length to replicate bad packets and the
    verify recovery is successful.

Change-Id: I9e6b2ccec0b06aab0d6920f1bddf108058e5d6b1
Signed-off-by: default avatarBrian J. Nemec <bnemec@chromium.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/41152


Reviewed-by: default avatarEdward O'Callaghan <quasisec@chromium.org>
Tested-by: default avatarbuild bot (Jenkins) <no-reply@coreboot.org>
parent a5cbe437
No related branches found
No related tags found
No related merge requests found
......@@ -188,9 +188,13 @@ typedef struct {
static bool retry_recovery(int error_code)
{
if (error_code < 0x10000) {
/* Handle error codes returned from the device. */
if (USB_SPI_WRITE_COUNT_INVALID <= error_code &&
error_code <= USB_SPI_DISABLED) {
/*
* Handle error codes returned from the device. USB_SPI_TIMEOUT,
* USB_SPI_BUSY, and USB_SPI_WRITE_COUNT_INVALID have been observed
* during transfer errors to the device and can be recovered.
*/
if (USB_SPI_READ_COUNT_INVALID <= error_code &&
error_code <= USB_SPI_DISABLED) {
return false;
}
} else if (usb_device_is_libusb_error(error_code)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment