ICEPROG(1)
π ICEPROG β ok bestie, let's talk flash π
So this whole page is the manual for iceprog, and the manual lives in section 1 of the manual pages (that's the "(1)" β it's the tool manual, not the config-file one). It's the simple programming tool for FTDI-based Lattice iCE programmers. Periodt. π
β¨ NAME β¨
iceprog β simple programming tool for FTDI-based Lattice iCE programmers π§
πΈ SYNOPSIS πΈ
iceprog [options] <filename>
π DESCRIPTION π
Ok so before you go plugging stuff in and yelling at your board, read this, because there are notes and they matter.
Notes for iCEstick (iCE40HX-1k devel board): π
- An unmodified iCEstick can only be programmed via the serial flash. That's it. That's the rule.
- Direct programming of the SRAM is not supported. Not "unsupported but you could try" β it's just not a thing on a stock board.
- If you really want direct SRAM programming, then the flash chip and one zero ohm resistor must be desoldered, and the FT2232H
SIpin must be connected to the iCESPI_SIpin. Look, the exact picture is here:http://www.clifford.at/gallery/2014-elektronik/IMG_20141115_183838β go look at it before you get out the soldering iron, fr fr.
Notes for the iCE40-HX8K Breakout Board: π¦
- Make sure that the jumper settings on the board match the selected mode (SRAM or FLASH). See the iCE40-HX8K user manual for details. That's the whole vibe check β jumpers and mode have to match or nothing slays.
π OPTIONS π
-d<device-string>β use the specified USB device. And the way you write that device string depends on what you want, so:d:<devicenode>β give it a device node like this: (e.g.d:002/005)i:<vendor>:<product>β give it a vendor and product: (e.g.i:0x0403:0x6010)i:<vendor>:<product>:<index>β same thing with an index: (e.g.i:0x0403:0x6010:0)s:<vendor>:<product>:<serial-string>β and there's the serial-string flavour too, it's giving very picky-bestie energy.
-I[ABCD]β connect to the specified interface on the FTDI chip. One letter,AthroughD. Choose wisely. π-rβ read the entire flash (32Mb / 4MB) and write it to a file. Big read, big file, iconic.-Rβ read the first 256 kB from the flash and write to file. Same energy, smaller snack. π-cβ do not write flash, only verify (check). Look but don't touch, respectfully.-bβ bulk erase entire flash before writing. Full wipe, no crumbs left.-nβ do not erase flash before writing. Bold. (You're skipping the erase, so know what you're doing.)-Sβ perform SRAM programming. (Remember the iCEstick notes above, bestie β SRAM on a stock iCEstick is a no.)-tβ just read the flash ID sequence. Tiny little identity check, adorable.-vβ verbose output. For when you want the program to tell you everything. Obsessed. π₯
π«Ά AUTHOR π«Ά
This manual page was written by Ruben Undheim <ruben.undheim@gmail.com> for the Debian project (and may be used by others). Credit where credit is due, always. π
Heads up: those iCEstick SRAM notes and the jumper/mode notes aren't optional lore, they're the difference between "slay" and "why is my board not doing anything". π
And that's the whole page, no cap β this version is the one from 28 February 2026, and it's the ICEPROG(1) manual. Go flash something cute. πβ¨
π¦ where this page comes from
- ubuntu stonking: fpga-icestorm 1.1-1 Β· ISC
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms