diff options
-rw-r--r-- | flashrom.8.tmpl | 5 | ||||
-rw-r--r-- | ft2232_spi.c | 19 | ||||
-rw-r--r-- | util/z60_flashrom.rules | 6 |
3 files changed, 28 insertions, 2 deletions
diff --git a/flashrom.8.tmpl b/flashrom.8.tmpl index 745b835..fdc612e 100644 --- a/flashrom.8.tmpl +++ b/flashrom.8.tmpl @@ -242,7 +242,7 @@ based USB SPI programmer), including the DLP Design DLP-USB1232H, \ FTDI FT2232H Mini-Module, FTDI FT4232H Mini-Module, openbiosprog-spi, Amontec \ JTAGkey/JTAGkey-tiny/JTAGkey-2, Dangerous Prototypes Bus Blaster, \ Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, TIAO/DIYGADGET USB -Multi-Protocol Adapter (TUMPA), TUMPA Lite, and GOEPEL PicoTAP. +Multi-Protocol Adapter (TUMPA), TUMPA Lite, GOEPEL PicoTAP and Google Servo v1/v2. .sp .BR "* serprog" " (for flash ROMs attached to a programmer speaking serprog, \ including Arduino-based devices as well as various programmers by Urja Rannikko, \ @@ -701,7 +701,8 @@ syntax where can be .BR 2232H ", " 4232H ", " 232H ", " jtagkey ", " busblaster ", " openmoko ", " \ arm-usb-tiny ", " arm-usb-tiny-h ", " arm-usb-ocd ", " arm-usb-ocd-h \ -", " tumpa ", " tumpalite ", or " picotap +", " tumpa ", " tumpalite ", " picotap ", " google-servo ", " google-servo-v2 \ +" or " google-servo-v2-legacy and .B interface can be diff --git a/ft2232_spi.c b/ft2232_spi.c index 08742ec..be60837 100644 --- a/ft2232_spi.c +++ b/ft2232_spi.c @@ -58,6 +58,11 @@ #define OLIMEX_ARM_OCD_H_PID 0x002B #define OLIMEX_ARM_TINY_H_PID 0x002A +#define GOOGLE_VID 0x18D1 +#define GOOGLE_SERVO_PID 0x5001 +#define GOOGLE_SERVO_V2_PID0 0x5002 +#define GOOGLE_SERVO_V2_PID1 0x5003 + const struct dev_entry devs_ft2232spi[] = { {FTDI_VID, FTDI_FT2232H_PID, OK, "FTDI", "FT2232H"}, {FTDI_VID, FTDI_FT4232H_PID, OK, "FTDI", "FT4232H"}, @@ -66,6 +71,9 @@ const struct dev_entry devs_ft2232spi[] = { {FTDI_VID, TIAO_TUMPA_LITE_PID, OK, "TIAO", "USB Multi-Protocol Adapter Lite"}, {FTDI_VID, AMONTEC_JTAGKEY_PID, OK, "Amontec", "JTAGkey"}, {GOEPEL_VID, GOEPEL_PICOTAP_PID, OK, "GOEPEL", "PicoTAP"}, + {GOOGLE_VID, GOOGLE_SERVO_PID, OK, "Google", "Servo"}, + {GOOGLE_VID, GOOGLE_SERVO_V2_PID0, OK, "Google", "Servo V2 Legacy"}, + {GOOGLE_VID, GOOGLE_SERVO_V2_PID1, OK, "Google", "Servo V2"}, {FIC_VID, OPENMOKO_DBGBOARD_PID, OK, "FIC", "OpenMoko Neo1973 Debug board (V2+)"}, {OLIMEX_VID, OLIMEX_ARM_OCD_PID, OK, "Olimex", "ARM-USB-OCD"}, {OLIMEX_VID, OLIMEX_ARM_TINY_PID, OK, "Olimex", "ARM-USB-TINY"}, @@ -254,6 +262,17 @@ int ft2232_spi_init(void) ft2232_vid = OLIMEX_VID; ft2232_type = OLIMEX_ARM_TINY_H_PID; channel_count = 2; + } else if (!strcasecmp(arg, "google-servo")) { + ft2232_vid = GOOGLE_VID; + ft2232_type = GOOGLE_SERVO_PID; + } else if (!strcasecmp(arg, "google-servo-v2")) { + ft2232_vid = GOOGLE_VID; + ft2232_type = GOOGLE_SERVO_V2_PID1; + /* Default divisor is too fast, and chip ID fails */ + divisor = 6; + } else if (!strcasecmp(arg, "google-servo-v2-legacy")) { + ft2232_vid = GOOGLE_VID; + ft2232_type = GOOGLE_SERVO_V2_PID0; } else { msg_perr("Error: Invalid device type specified.\n"); free(arg); diff --git a/util/z60_flashrom.rules b/util/z60_flashrom.rules index 948563c..cfe553e 100644 --- a/util/z60_flashrom.rules +++ b/util/z60_flashrom.rules @@ -60,6 +60,12 @@ ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="664", GROUP="plugdev" # http://www.goepel.com/jtagboundary-scan/hardware/picotap.html ATTRS{idVendor}=="096c", ATTRS{idProduct}=="1449", MODE="664", GROUP="plugdev" +# Google servo debug board +# https://www.chromium.org/chromium-os/servo +ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5001", MODE="664", GROUP="plugdev" +ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5002", MODE="664", GROUP="plugdev" +ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5003", MODE="664", GROUP="plugdev" + # Olimex ARM-USB-OCD # http://olimex.com/dev/arm-usb-ocd.html ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0003", MODE="664", GROUP="plugdev" |