Lab Notes

~clarkema >_

Flashing a Vampire V4 from Linux

15 November 2020

The Vampire V4 from Apollo Accelerators is a modern continuation of the classic Commodore Amiga line of computers.

Since it is FPGA-based it’s possible to upgrade the board to fix bugs and add new features by flashing it with updated “cores”. Here’s how to do so using Linux.

The V4 is flashed using Quartus Prime, part of Intel’s FPGA tools. Fortunately it’s packaged up as Docker image here. Since Quartus is a GUI app the image requires x11docker.

  1. Ensure you have a suitable JTAG programming device; the ALTERA USB Blaster. Apollo sell these as an optional extra for a few euro when you buy the V4, and I highly recommended adding one to your order.

  2. I assume you already have Docker installed and functional. On Arch, x11docker is available in AUR. Install with your AUR helper of choice.

    yay -S x11docker
    
  3. Clone the Quartus Docker repo and build the image:

    git clone https://github.com/faxm0dem/quartus-programmer-docker
    cd quartus-programmer-docker
    docker build -t quartus .
    
  4. Set udev rules for Quartus (on host) in /etc/udev/rules.d/50-usb-blaster.rules

    # USB-Blaster
    SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
    SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666"
    SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"
    
    # USB-Blaster II
    SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666"
    SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"
    

    Reload udev:

    udevadm control --reload
    
  5. Run the container:

    x11docker --clipboard --home=/home/clarkema/jit -- "--device=/dev/bus/usb/ --network none" quartus