Author: uwe Date: Fri Oct 21 01:14:10 2011 New Revision: 1453 URL: http://flashrom.org/trac/flashrom/changeset/1453
Log: Add support for the GOEPEL PicoTAP programmer.
http://www.goepel.com/en/jtagboundary-scan/hardware/picotap.html
This device is actually a JTAG adapter, but since it uses standard FT2232 A interface pins, it can be easily used as SPI programmer (tested it here successfully). PicoTAP supports only 5V output, so one needs to reduce this to 3.3V in a same manner as DLP Design DLP-USB1232H, see
http://flashrom.org/FT2232SPI_Programmer#DLP_Design_DLP-USB1232H
for details.
The PicoTAP pin-out is as follows:
PicoTAP | SPI ---------+------- TCK | SCLK TMS | CS# TDI | SO TDO | SI /TRST | - GND | GND +5V | VCC, HOLD# & WP# after 3.3V regulator
I managed to run PicoTAP in 10MHz, 15MHz and 30MHz modes (by forcing DIVIDE_BY), against SST25VF016B SPI flash, read/write/erase all worked fine (write seems somewhat slow).
Signed-off-by: Samir Ibradžić sibradzic@gmail.com Acked-by: Uwe Hermann uwe@hermann-uwe.de
Modified: trunk/flashrom.8 trunk/ft2232_spi.c trunk/util/z60_flashrom.rules
Modified: trunk/flashrom.8 ============================================================================== --- trunk/flashrom.8 Thu Oct 20 14:57:14 2011 (r1452) +++ trunk/flashrom.8 Fri Oct 21 01:14:10 2011 (r1453) @@ -199,8 +199,8 @@ 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, and TIAO/DIYGADGET USB -Multi-Protocol Adapter (TUMPA). +Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, TIAO/DIYGADGET USB +Multi-Protocol Adapter (TUMPA), and GOEPEL PicoTAP. .sp .BR "* serprog" " (for flash ROMs attached to a programmer speaking serprog), \ including AVR flasher by Urja Rannikko, AVR flasher by eightdot, \ @@ -443,7 +443,7 @@ can be .BR 2232H ", " 4232H ", " jtagkey ", " busblaster ", " openmoko ", " \ arm-usb-tiny ", " arm-usb-tiny-h ", " arm-usb-ocd ", " arm-usb-ocd-h \ -", or " tumpa +", " tumpa ", or " picotap and .B interface can be
Modified: trunk/ft2232_spi.c ============================================================================== --- trunk/ft2232_spi.c Thu Oct 20 14:57:14 2011 (r1452) +++ trunk/ft2232_spi.c Fri Oct 21 01:14:10 2011 (r1453) @@ -37,6 +37,9 @@ #define TIAO_TUMPA_PID 0x8a98 #define AMONTEC_JTAGKEY_PID 0xCFF8
+#define GOEPEL_VID 0x096C +#define GOEPEL_PICOTAP_PID 0x1449 + #define FIC_VID 0x1457 #define OPENMOKO_DBGBOARD_PID 0x5118
@@ -51,6 +54,7 @@ {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"}, + {GOEPEL_VID, GOEPEL_PICOTAP_PID, OK, "GOEPEL", "PicoTAP"}, {FIC_VID, OPENMOKO_DBGBOARD_PID, OK, "FIC", "OpenMoko Neo1973 Debug board (V2+)"}, {OLIMEX_VID, OLIMEX_ARM_OCD_PID, NT, "Olimex", "ARM-USB-OCD"}, @@ -176,6 +180,10 @@ ft2232_interface = INTERFACE_A; cs_bits = 0x18; pindir = 0x1b; + } else if (!strcasecmp(arg, "picotap")) { + ft2232_vid = GOEPEL_VID; + ft2232_type = GOEPEL_PICOTAP_PID; + ft2232_interface = INTERFACE_A; } else if (!strcasecmp(arg, "tumpa")) { /* Interface A is SPI1, B is SPI2. */ ft2232_type = TIAO_TUMPA_PID;
Modified: trunk/util/z60_flashrom.rules ============================================================================== --- trunk/util/z60_flashrom.rules Thu Oct 20 14:57:14 2011 (r1452) +++ trunk/util/z60_flashrom.rules Fri Oct 21 01:14:10 2011 (r1453) @@ -56,6 +56,10 @@ # http://www.ftdichip.com/Products/EvaluationKits/FT4232H_MiniModule.htm ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="664", GROUP="plugdev"
+# GOEPEL PicoTAP +# http://www.goepel.com/jtagboundary-scan/hardware/picotap.html +ATTRS{idVendor}=="096c", ATTRS{idProduct}=="1449", 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"