Dear Sir,<br><br>I bricked a MSI MS-7302 motherboard with a bad coreboot image. I'm trying to flash the bios with a <a name="C232HM-DDHSL-0"></a><a href="http://www.ftdichip.com/Products/Cables/USBMPSSE.htm">C232HM-DDHSL-0 FTDI USB cable</a> using the<br>
<a href="http://www.coreboot.org/MSI_JSPI1">MSI JSPI1 Header</a> present on the board for SPI connection. The FTDI cable uses a FT232H chip witch is capable of providing <span class="style2">a USB to SPI, I2C or JTAG interface.<br>
<br>The FTDI D2XX Linux driver cited that the FT232H chip has type number 6 (while the FT4232H has type 5), so i had to modify the file<br><b>/usr/include/ftdi.h</b> and change the ftdi_chip_type enumeration definition:<br>
<br>/** FTDI chip type */<br>enum ftdi_chip_type { TYPE_AM=0, TYPE_BM=1, TYPE_2232C=2, TYPE_R=3, TYPE_2232H=4, TYPE_4232H=5,<b>TYPE_232H=6</b> };<br><br>I had to add support to the FT232H chip (vid=0403 pid=6014) in the <b>ft2232_spi</b> programmer of flashrom. I's very simple. Here is the patch of file ft2232_spi.c:<br>
<br>=======================BEGIN DIFF================================<br>--- flashrom/ft2232_spi.c    2012-07-19 03:43:28.866724677 +0200<br>+++ flashrom-0.9.5.2-r1547/ft2232_spi.c    2012-07-16 05:16:53.000000000 +0200<br>
@@ -34,6 +34,7 @@<br> #define FTDI_VID        0x0403<br> #define FTDI_FT2232H_PID    0x6010<br> #define FTDI_FT4232H_PID    0x6011<br>+#define FTDI_FT232H_PID        0x6014<br> #define TIAO_TUMPA_PID        0x8a98<br> #define AMONTEC_JTAGKEY_PID    0xCFF8<br>
 <br>@@ -52,6 +53,7 @@<br> const struct usbdev_status devs_ft2232spi[] = {<br>     {FTDI_VID, FTDI_FT2232H_PID, OK, "FTDI", "FT2232H"},<br>     {FTDI_VID, FTDI_FT4232H_PID, OK, "FTDI", "FT4232H"},<br>
+        {FTDI_VID, FTDI_FT232H_PID, NT, "FTDI", "FT232H"},<br>     {FTDI_VID, TIAO_TUMPA_PID, OK, "TIAO", "USB Multi-Protocol Adapter"},<br>     {FTDI_VID, AMONTEC_JTAGKEY_PID, OK, "Amontec", "JTAGkey"},<br>
     {GOEPEL_VID, GOEPEL_PICOTAP_PID, OK, "GOEPEL", "PicoTAP"},<br>@@ -185,6 +187,8 @@ int ft2232_spi_init(void)<br>             ft2232_type = FTDI_FT2232H_PID;<br>         else if (!strcasecmp(arg, "4232H"))<br>
             ft2232_type = FTDI_FT4232H_PID;<br>+                else if (!strcasecmp(arg, "232H"))<br>+                        ft2232_type = FTDI_FT232H_PID;<br>         else if (!strcasecmp(arg, "jtagkey")) {<br>
             ft2232_type = AMONTEC_JTAGKEY_PID;<br>             ft2232_interface = INTERFACE_A;<br>@@ -285,7 +289,7 @@ int ft2232_spi_init(void)<br>         return -4;<br>     }<br> <br>-    if (ftdic->type != TYPE_2232H && ftdic->type != TYPE_4232H) {<br>
+    if (ftdic->type != TYPE_2232H && ftdic->type != TYPE_4232H && ftdic->type != TYPE_232H) {<br>         msg_pdbg("FTDI chip type %d is not high-speed\n",<br>             ftdic->type);<br>
         clock_5x = 0;<br></span><span class="style2">=======================END DIFF==================================</span><br><span class="style2"><br><br>The flash memory is probed correctly but erase an write operations failed. Here is flashrom command (bold) and output:<br>
____________________________________________________________________________________<br><br><b>flashrom   -p ft2232_spi:type=232H,port=A -w A7302AMS.160</b> <br>flashrom v0.9.5.2-runknown on Linux 3.4.4-5.fc17.i686.PAE (i686)<br>
flashrom is free software, get the source code at <a href="http://www.flashrom.org">http://www.flashrom.org</a><br><br>Calibrating delay loop... OK.<br>Found Winbond flash chip "W25X80" (1024 kB, SPI) on ft2232_spi.<br>
Reading old flash chip contents... done.<br>Erasing and writing flash chip... ERASE FAILED at 0x00000000! Expected=0xff, Read=0x00, failed byte count from 0x00000000-0x00000fff: 0x10<br>ERASE FAILED!<br>Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x00, failed byte count from 0x00000000-0x0000ffff: 0x100<br>
ERASE FAILED!<br>Reading current flash chip contents... done. ERASE FAILED at 0x00000000! Expected=0xff, Read=0x00, failed byte count from 0x00000000-0x000fffff: 0xffc<br>ERASE FAILED!<br>FAILED!<br>Uh oh. Erase/write failed. Checking if anything changed.<br>
Your flash chip is in an unknown state.<br>Get help on IRC at <a href="http://chat.freenode.net">chat.freenode.net</a> (channel #flashrom) or<br>mail <a href="mailto:flashrom@flashrom.org">flashrom@flashrom.org</a> with the subject "FAILED: <your board name>"!<br>
-------------------------------------------------------------------------------<br>DO NOT REBOOT OR POWEROFF!<br><br></span><span class="style2">____________________________________________________________________________________<br>
<br>The chip is powered with an external PSU (3.3V orange cable of an ATX PSU). I will try with a 1200F capacitor on the VCC link. I hope this is just<br>a magnetic noise issue.<br><br>Thank you.<br></span><span class="style2"><br>
<br></span>