Flash the C0-microSD Using an External Programmer
You can flash the C0-microSD on-board SPI flash chip using an external programmer, and the iceprog
toolkit, which is part of the Icestorm suite. This example uses the Tigard board, which can interface with SPI ports that operate at 1.8V
and is compatible with the iceprog
toolkit.
Do not attempt to manually flash the C0-microSD using an external programmer unless you know what you are doing. Overriding the Bootloader bitstream, the Signaloid SoC bitstream, or the first 512 KiB of the non-volatile memory may disable the bootloader and SD interface of the C0-microSD. Nevertheless, this method can be used to re-flash the Bootloader and Signaloid SoC in case they are corrupted, and bring the device to its initial state. You can find the official C0-microSD configuration bitstreams here
-
Make sure that the
Tigard
board is configured correctly, with theTarget
switch set to1.8V
and theMode
switch set toJTAG/SPI
(Figure 1). -
Connect the C0-microSD to the
Tigard
board as follows (Figure 1):C0-microSD Pin SilkScreen Tigard Board Pin Notes VDD
- - Supply voltage of 3.3V must be externally provided VSS
- GND Ground CONFIG_SCLK
C TCK Clock pin of SPI configuration port CONFIG_DONE
D - Configuration done pin, not connected CONFIG_CRESET_N
R SRST FPGA reset pin (active low) CONFIG_MISO
O TDO MISO pin of SPI configuration port CONFIG_CS_N
S TRST Chip select of SPI configuration port (active low) CONFIG_MOSI
I TDI MOSI pin of SPI configuration port The form-factor of the C0-microSD requires the use of special tooling for accessing the configuration pins mentioned above. We recommend one of the following methods:
- Using a probing system like PCBite from SensePeek.
- Using a data recovery jig like the iDili probe, the PC-3000 spider board, or something similar.
- Soldering small wires to the bottom pads. This is a cheap solution but might cause fitment issues if you don’t thoroughly clean the pads from any remaining solder after you have completed the flashing process.
-
Connect a power supply of
3.3V
to the C0-microSD, make sure that the ground pins of the power supply and theTigard
board are tied together (Figure 1).Figure 1: Tigard connection diagram using the pads located at the bottom layer of the C0-microSD. -
Use the
iceprog
tool from theIceStorm
suite to flash a new bitstream to the device. Assuming your bitstream is namedc0-microsd.bin
use the following command and wait for the flashing process to finish:iceprog -I B c0-microsd.bin init.. cdone: high reset.. cdone: high flash ID: 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 0x18 0x1F 0x42 file size: 104157 erase 64kB sector at 0x000000.. erase 64kB sector at 0x010000.. programming.. done. reading.. VERIFY OK cdone: high Bye.
A console message stating
VERIFY OK
means that flashing the new bitstream was successful. You need to power cycle the device for the new bitstream to take effect.