IceCube Flasher Board


General information, schematics, and design documentation on the flasher board can be found on Nobuyoshi Kitamura's flasher board page.

Iceboot flasherboard commands are documented in the iceboot user's guide, but they can also be found here.

Analysis of FAT33 STF failure modes can be found here (PDF, 160K).

Flasher LED enable bitmasks

The flasherboard runs are named using the LED enable bitmask, which is a 12-bit hexadecimal number determining which LEDs are flashing (of D1-D12). Bit[i] of the bitmask, where 0 is the LSB (least significant bit), enables LED D(i+1).

Common choices are 0x03F, which flashes D1-D6 (the upward-angled LEDs), or 0xFC0, which flashes D7-D12 (the horizontal LEDs).

This same bitmask is used in the iceboot command setFBenables.

Reprogramming the flasher board CPLD

Reprogramming the flasher board CPLD in situ is possible by controlling the JTAG lines with the mainboard FPGA, via an iceboot command.

To reprogram the CPLD with a new design, first obtain the latest .jed file. Next, you must convert the .jed file to an XSVF file, a binary JTAG vector file that describes the reprogramming commands and data.

To convert a .jed file to .xsvf:

The latest .xsvf file is available in the glacier.lbl.gov CVS repository, in the fb-cpld project.

Once you have the XSVF file, gunzip it if desired, upload it to the DOM mainboard, and save it to flash. I suggest using "xymodem". If the XSVF file is large, you may actually wish to upload the gzipped version (although see below — the programming command changes).

Next, power on the flasherboard. If the CPLD design already on the flasherboard is a recent one, you should use this command (which has certain checks to make sure the flasherboard comes up cleanly) within iceboot:

> enableFB

If this fails with an error, such as "configuration time too long," you will need to use this more basic command, which simply powers the interface without any checks:

> enableFBmin

Please note that on some flasherboards, this command runs the risk of turning the LEDs on in a steady-state mode.

Now, you can use the iceboot reprogramming command (non-gzipped file)

> s" fb.xsvf" find if fb-cpld endif

(where "fb.xsvf" is the filename on the DOM) to program the CPLD with the new design, or, for a gzipped file,

> s" fb.xsvf.gz" find if gunzip fb-cpld endif

The command reports if the flasher board was reprogrammed successfully or not. If you don't have this iceboot command, you will need to upload a recent version of iceboot first and try again.

Finally, power down the flasherboard:

> disableFB

Gory details on the reprogramming algorithm, including the XSVF format, can be found in the Xilinx application note "Xilinx In-System Programming Using an Embedded Microcontroller."