summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruwe <uwe@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2011-10-14 20:33:14 +0000
committeruwe <uwe@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2011-10-14 20:33:14 +0000
commit7c30d4fac80014a61448cf87b6e8d55449516203 (patch)
treea682fd11ab2f4aa6cb256187a565a5361359ec02
parent63e7aa8b6931529e1c7c0ef1fa1cf4198f394e7f (diff)
downloadflashrom-7c30d4fac80014a61448cf87b6e8d55449516203.tar.gz
TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA) support.
Thanks to TIAO/DIYGADGET for sponsoring a test device! This is an FTDI FT2232H based device which provides an easily accessible JTAG, SPI, I2C, serial breakout. The SPI part can be used to flash SPI flash chips using flashrom. http://www.diygadget.com/tiao-usb-multi-protocol-adapter-jtag-spi-i2c-serial.html http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_User%27s_Manual#SPI_Connector_1 There are two SPI connectors (pin headers) on the board: SPI1, which is connected to the FT2232H's A interface, and SPI2, which is connected to the chip's B interface. Both can be used to flash SPI chips: flashrom -p ft2232_spi:type=tumpa,port=A flashrom -p ft2232_spi:type=tumpa,port=B The default interface is A, so for SPI1 you can also just write: flashrom -p ft2232_spi:type=tumpa I tested all operations on both interfaces, everything works fine. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@1451 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--flashrom.86
-rw-r--r--ft2232_spi.c8
-rw-r--r--util/z60_flashrom.rules4
3 files changed, 16 insertions, 2 deletions
diff --git a/flashrom.8 b/flashrom.8
index 76f25bd..7a012de 100644
--- a/flashrom.8
+++ b/flashrom.8
@@ -199,7 +199,8 @@ cards)"
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, and Olimex ARM-USB-OCD/-H."
+Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, and TIAO/DIYGADGET USB
+Multi-Protocol Adapter (TUMPA).
.sp
.BR "* serprog" " (for flash ROMs attached to a programmer speaking serprog), \
including AVR flasher by Urja Rannikko, AVR flasher by eightdot, \
@@ -441,7 +442,8 @@ syntax where
.B model
can be
.BR 2232H ", " 4232H ", " jtagkey ", " busblaster ", " openmoko ", " \
-arm-usb-tiny ", " arm-usb-tiny-h ", " arm-usb-ocd " or " arm-usb-ocd-h
+arm-usb-tiny ", " arm-usb-tiny-h ", " arm-usb-ocd ", " arm-usb-ocd-h \
+", or " tumpa
and
.B interface
can be
diff --git a/ft2232_spi.c b/ft2232_spi.c
index 8ab89fa..7a52718 100644
--- a/ft2232_spi.c
+++ b/ft2232_spi.c
@@ -29,9 +29,12 @@
#include "spi.h"
#include <ftdi.h>
+/* Please keep sorted by vendor ID, then device ID. */
+
#define FTDI_VID 0x0403
#define FTDI_FT2232H_PID 0x6010
#define FTDI_FT4232H_PID 0x6011
+#define TIAO_TUMPA_PID 0x8a98
#define AMONTEC_JTAGKEY_PID 0xCFF8
#define FIC_VID 0x1457
@@ -46,6 +49,7 @@
const struct usbdev_status devs_ft2232spi[] = {
{FTDI_VID, FTDI_FT2232H_PID, OK, "FTDI", "FT2232H"},
{FTDI_VID, FTDI_FT4232H_PID, OK, "FTDI", "FT4232H"},
+ {FTDI_VID, TIAO_TUMPA_PID, OK, "TIAO", "USB Multi-Protocol Adapter"},
{FTDI_VID, AMONTEC_JTAGKEY_PID, OK, "Amontec", "JTAGkey"},
{FIC_VID, OPENMOKO_DBGBOARD_PID, OK, "FIC",
"OpenMoko Neo1973 Debug board (V2+)"},
@@ -172,6 +176,10 @@ int ft2232_spi_init(void)
ft2232_interface = INTERFACE_A;
cs_bits = 0x18;
pindir = 0x1b;
+ } else if (!strcasecmp(arg, "tumpa")) {
+ /* Interface A is SPI1, B is SPI2. */
+ ft2232_type = TIAO_TUMPA_PID;
+ ft2232_interface = INTERFACE_A;
} else if (!strcasecmp(arg, "busblaster")) {
/* In its default configuration it is a jtagkey clone */
ft2232_type = FTDI_FT2232H_PID;
diff --git a/util/z60_flashrom.rules b/util/z60_flashrom.rules
index c298968..2b4ab6d 100644
--- a/util/z60_flashrom.rules
+++ b/util/z60_flashrom.rules
@@ -72,4 +72,8 @@ ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0004", MODE="664", GROUP="plugdev"
# http://olimex.com/dev/arm-usb-tiny-h.html
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", MODE="664", GROUP="plugdev"
+# TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA)
+# http://www.diygadget.com/tiao-usb-multi-protocol-adapter-jtag-spi-i2c-serial.html
+ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", MODE="664", GROUP="plugdev"
+
LABEL="flashrom_rules_end"