Skip to content

sirop/hostmot2-firmware

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hostmot2-firmware: build assorted hostmot2 FPGA firmwares automatically

== Overview ==

This package includes the hostmot2 source files along with Makefiles and
other scripts to automatically build all the desired variants of the
firmwares.

It requires the no-cost version of Xilinx ISE.  I build with ISE 9.2.  This
version supports all FPGAs on Mesa cards with the exception of the 3x20-2M.
Newer versions appear to work, but with caveats (see below)

It also requires ghdl for building PIN and xml files.  The PIN file
format is intended to be human readable (not machine readable) so it is
not a requirement that it exactly match the format of existing PIN
files.  There is also an experimental xml description format.

== ISE Version Requirements

Refer to `cards.py` for information about required ISE versions for
particular cards.  Currently, by installing ISE 13.4 and ISE 9.2, firmware
can be built for all supported cards.

=== Obtaining ISE 9.2 WebPack ===

Xilinx still offers older versions of ISE free of charge.  At the time
of writing, the location is
    http://www.xilinx.com/webpack/classics/wpclassic/index.htm
and can also be reached from the xilinx.com front page by going to
"Products & Services", "Design Tools", "Logic Design Tools", "ISE
Classics", "Previous versions of ISE WebPack".

== Building ==

If necessary, create a set of symlinks to the required versions of ise.  For
32-bit versions up to 13.3 installed to /opt, settings will generally be found
automatically.  If they are not, you can create symlinks e.g.,
    settings9.sh -> /opt/Xilinx19/settings32.sh
    settings13.sh -> /opt/Xilinx13.4/settings32.sh

To build all bitfiles, pinfiles, and xmlfiles:
    make -j4                   # -j setting depends on RAM and # CPU cores
On my system (quad core AMD Phenom 9600) building the full set of
firmwares took about 75 minutes wall time with the -j4 setting shown
above.

To build just a subset of firmwares, create a file `firmwares-local.txt` to list the firmware(s) you want to build.
This list is used instead of the list in `firmwares.txt`.
The first word in each line specifies the hostmot2 card, and the remaining words specify the pinfiles.
For example, to build just the 'SV12' firmware for the '5i23' card, put just this line in 'firmwares-local.txt':
    i23 SV12

To build Debian packages:
    debian/gencontrol
    export MAKEFLAGS=-j4 dpkg-buildpackage
                               # -j setting depends on RAM and # CPU cores

To build tar packages (must be in a git checkout):
    make -j4                   # -j setting depends on RAM and # CPU cores
    make dist
    # or make dist-force if your working tree is dirty



== Testing ==

A representative firmware for each supported board type has been tested:
 * 5i20, 5i22-1M, 5i23 (PCI)
 * 7i43-400 (EPP)
 * 3x20-1M (PCI-Express)
 * 4i65, 4i68 (PC104+)
The 5i22-1.5M and 7i43-200 are not tested, but are expected to work.


== Incorporating new upstream source ==

Primary development of the hostmot2 fpga firmware is done by Mesa Electronics, who releases source in .zip format.
This repository integrates that source with a Linux-centric build infrastructure to produce Debian packages.
When incorporating upstream changes from Mesa, the following procedure should be used:
 1. Put the new source code release on the "upstream" branch as a single large commit
 1. Merge upstream and master into a (possibly local) testing branch
 1. Make additional commits to add new card support, adjust for changed filenames, etc
 1. Test on a representative set of boards
 1. When the result of testing is satisfactory, merge to master branch.  Push new master and upstream branches to git.linuxcnc.org.

In the rare cases that we make a change to a .vhd, .pin, or other file that comes from Mesa, this strategy with an upstream branch lets us retain that change
(or have it appear as a merge conflict, if it cannot be automatically applied),
instead of losing it when we receive a new set of base source files.

About

HostMot2 FPGA firmware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • VHDL 97.5%
  • Tcl 1.7%
  • Other 0.8%