Hi
I had to flash a BIOS chip via SPI.
The board i was flashing was the mainboard of a 'iEi TANK-800-D525' computer (it's a rugged industrial sff computer). I don't have access to the machine ATM so I can't tell what the exact name of the board is, but it's a custom mainboard only used in this computer AFAIK. It has a SST25VF016B BIOS-chip (which is well supported) and an interface designed for the Dediprog SF100 programmer, which essentially is a SPI interface with an optional IO line. (Documentation is available online, for users as well as for hardware developers, so the interface is well documented).
The programmer I used was a Texas Instruments DK-LM3S9B96 Stellaris development kit. It has a JTAG-Interface, which is externally accessable via pin header. The interface is provided by a FTDI ft2232 chip together with some glue logic (essentially bus buffers, some logic). I had to make some customizations to ft2232.c add support for this programmer. I had to build a cable which connects the JTAG interface with the on-board SF100 interface.
Needless to say, I was successful.
I like to share as much of the knowledge I acquired as possible with the community. The least thing I can do is send a patch with my modifications for the TI development board. I still need to read the instructions on how to prepare and send patches as I haven't done this in a long time.
IMHO other TI Stellaris development boards share the same JTAG interface concept, but I can't name them. If someone has suggestions, I could check those boards for compatibility (by schematics). BTW, vid=0x0403 (FTDI default), pid=0xbcd9. In fact, a lot of USB-JTAG-Interfaces on development boards should be capable of doing this.
The board needs to be flashed while completely off. At least I was not successful using the optional IO-line to claim exclusive access to the chip while in standby/running.
I'm going to send a follow-up if I have specific questions. In the meantime you can ask questions if you think anything I did can be useful for you / for everyone.
Kind regards,
P. Wiesner