Provisioning a New Device

When you first build a squishy, or if the flash on your existing squishy gets corrupted, you will need to provision the device again. This is done by flashing a special image into the flash that contains the bootloader and stub bitstreams to ensure DFU works properly.

Generating the Initial Image

To generate the initial image, we run squishy with the provision command like so:

(squishy.venv) $ squishy provision --build-only --whole-device

The --build-only argument tells the provision command to build the but not program the image to a device, this means you can build it without a Squishy attached or for a blank Squishy.

The --whole-device argument tells provision to build the bootloader and bake the special device image that is to be flashed onto Squishy.

The resulting file squishy-unified.bin can then be flashed onto the SPI flash of the Squishy unit.

Flashing the Image

To write the image to the Squishy device, you can hook up to the SPI header on the board using any capable tool and flash the whole squishy-unified.bin image. Once the device is then reset and able to read the new image, it will start in the bootloader waiting for an applet to be flashed to the device via the squishy utility or dfu-util.