mirror of
https://github.com/trabucayre/openFPGALoader.git
synced 2026-09-02 02:58:06 +02:00
update 4d93073e99
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Advanced usage of openFPGALoader — openFPGALoader: universal utility for programming FPGA latest documentation</title>
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
|
||||
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="FPGAs" href="../compatibility/fpga.html" />
|
||||
<link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
|
||||
</a>
|
||||
<div class="version">
|
||||
latest
|
||||
</div>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Advanced usage of openFPGALoader</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#resetting-an-fpga">Resetting an FPGA</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#using-negative-edge-for-tdo-s-sampling">Using negative edge for TDO’s sampling</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#reading-the-bitstream-from-stdin">Reading the bitstream from STDIN</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#automatic-file-type-detection-bypass">Automatic file type detection bypass</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#ft231-ft232-bitbang-mode-and-pins-configuration">FT231/FT232 bitbang mode and pins configuration</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#writing-to-an-arbitrary-address-in-flash-memory">Writing to an arbitrary address in flash memory</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#detect-read-write-on-primary-secondary-flash-memories">Detect/read/write on primary/secondary flash memories</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#using-an-alternative-directory-for-spioverjtag">Using an alternative directory for <em>spiOverJtag</em></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Compatibility</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/fpga.html">FPGAs</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/board.html">Boards</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/cable.html">Cables</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/xilinx.html">Xilinx notes</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../todo.html">To Do</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html" class="icon icon-home"></a> »</li>
|
||||
<li>Advanced usage of openFPGALoader</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/advanced.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="advanced-usage-of-openfpgaloader">
|
||||
<span id="advanced-usage"></span><h1>Advanced usage of openFPGALoader<a class="headerlink" href="#advanced-usage-of-openfpgaloader" title="Link to this heading">¶</a></h1>
|
||||
<section id="resetting-an-fpga">
|
||||
<h2>Resetting an FPGA<a class="headerlink" href="#resetting-an-fpga" title="Link to this heading">¶</a></h2>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span>-r
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="using-negative-edge-for-tdo-s-sampling">
|
||||
<h2>Using negative edge for TDO’s sampling<a class="headerlink" href="#using-negative-edge-for-tdo-s-sampling" title="Link to this heading">¶</a></h2>
|
||||
<p>If transaction are unstable you can try to change read edge by using</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span>--invert-read-edge
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="reading-the-bitstream-from-stdin">
|
||||
<h2>Reading the bitstream from STDIN<a class="headerlink" href="#reading-the-bitstream-from-stdin" title="Link to this heading">¶</a></h2>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cat<span class="w"> </span>/path/to/bitstream.ext<span class="w"> </span><span class="p">|</span><span class="w"> </span>openFPGALoader<span class="w"> </span>--file-type<span class="w"> </span>ext<span class="w"> </span><span class="o">[</span>options<span class="o">]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">--file-type</span></code> is required to detect file type.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>It’s possible to load a bitstream through network:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># FPGA side</span>
|
||||
nc<span class="w"> </span>-lp<span class="w"> </span>port<span class="w"> </span><span class="p">|</span><span class="w"> </span>openFPGALoader<span class="w"> </span>--file-type<span class="w"> </span>xxx<span class="w"> </span><span class="o">[</span>option<span class="o">]</span>
|
||||
|
||||
<span class="c1"># Bitstream side</span>
|
||||
nc<span class="w"> </span>-q<span class="w"> </span><span class="m">0</span><span class="w"> </span>host<span class="w"> </span>port<span class="w"> </span><<span class="w"> </span>/path/to/bitstream.ext
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="automatic-file-type-detection-bypass">
|
||||
<h2>Automatic file type detection bypass<a class="headerlink" href="#automatic-file-type-detection-bypass" title="Link to this heading">¶</a></h2>
|
||||
<p>Default behavior is to use file extension to determine file parser.
|
||||
To avoid this mechanism <code class="docutils literal notranslate"><span class="pre">--file-type</span> <span class="pre">type</span></code> must be used.</p>
|
||||
</section>
|
||||
<section id="ft231-ft232-bitbang-mode-and-pins-configuration">
|
||||
<h2>FT231/FT232 bitbang mode and pins configuration<a class="headerlink" href="#ft231-ft232-bitbang-mode-and-pins-configuration" title="Link to this heading">¶</a></h2>
|
||||
<p>FT232R and ft231X may be used as JTAG programmer.
|
||||
JTAG communications are emulated in bitbang mode.</p>
|
||||
<p>To use these devices user needs to provides both the cable and the pin mapping:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span><span class="o">[</span>options<span class="o">]</span><span class="w"> </span>-cft23XXX<span class="w"> </span>--pins<span class="o">=</span>TDI:TDO:TCK:TMS<span class="w"> </span>/path/to/bitstream.ext
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>where:</p>
|
||||
<ul class="simple">
|
||||
<li><p>ft23XXX may be <code class="docutils literal notranslate"><span class="pre">ft232RL</span></code> or <code class="docutils literal notranslate"><span class="pre">ft231X</span></code>.</p></li>
|
||||
<li><p>TDI:TDO:TCK:TMS may be the pin ID (0 <= id <= 7) or string value.</p></li>
|
||||
</ul>
|
||||
<p>allowed values are:</p>
|
||||
<table class="docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>value</p></th>
|
||||
<th class="head"><p>ID</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>TXD</p></td>
|
||||
<td><p>0</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>RXD</p></td>
|
||||
<td><p>1</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>RTS</p></td>
|
||||
<td><p>2</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>CTS</p></td>
|
||||
<td><p>3</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>DTR</p></td>
|
||||
<td><p>4</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>DSR</p></td>
|
||||
<td><p>5</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>DCD</p></td>
|
||||
<td><p>6</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>RI</p></td>
|
||||
<td><p>7</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<section id="writing-to-an-arbitrary-address-in-flash-memory">
|
||||
<h2>Writing to an arbitrary address in flash memory<a class="headerlink" href="#writing-to-an-arbitrary-address-in-flash-memory" title="Link to this heading">¶</a></h2>
|
||||
<p>With FPGA using an external SPI flash (<em>xilinx</em>, <em>lattice ECP5/nexus/ice40</em>, <em>anlogic</em>, <em>efinix</em>) option <code class="docutils literal notranslate"><span class="pre">-o</span></code> allows
|
||||
one to write raw binary file to an arbitrary adress in FLASH.</p>
|
||||
</section>
|
||||
<section id="detect-read-write-on-primary-secondary-flash-memories">
|
||||
<h2>Detect/read/write on primary/secondary flash memories<a class="headerlink" href="#detect-read-write-on-primary-secondary-flash-memories" title="Link to this heading">¶</a></h2>
|
||||
<p>With FPGA using two external SPI flash (some <em>xilinx</em> boards) option <code class="docutils literal notranslate"><span class="pre">--target-flash</span></code> allows to select the QSPI chip.</p>
|
||||
<p>To detect:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-b<span class="w"> </span>kcu105<span class="w"> </span>-f<span class="w"> </span>--target-flash<span class="w"> </span><span class="o">{</span>primary,secondary<span class="o">}</span><span class="w"> </span>--detect
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To read the primary flash memory:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-b<span class="w"> </span>kcu105<span class="w"> </span>-f<span class="w"> </span>--target-flash<span class="w"> </span>primary<span class="w"> </span>--dump-flash<span class="w"> </span>--file-size<span class="w"> </span>N_BYTES<span class="w"> </span>mydump.bin
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>and the second flash memory:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-b<span class="w"> </span>kcu105<span class="w"> </span>-f<span class="w"> </span>--target-flash<span class="w"> </span>secondary<span class="w"> </span>--dump-flash<span class="w"> </span>--file-size<span class="w"> </span>N_BYTES<span class="w"> </span>--secondary-bitstream<span class="w"> </span>mydump.bin
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To write on secondary flash memory:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-b<span class="w"> </span>kcu105<span class="w"> </span>-f<span class="w"> </span>--target-flash<span class="w"> </span>secondary<span class="w"> </span>--secondary-bitstream<span class="w"> </span>mySecondaryBitstream.bin
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="using-an-alternative-directory-for-spioverjtag">
|
||||
<h2>Using an alternative directory for <em>spiOverJtag</em><a class="headerlink" href="#using-an-alternative-directory-for-spioverjtag" title="Link to this heading">¶</a></h2>
|
||||
<p>By setting <code class="docutils literal notranslate"><span class="pre">OPENFPGALOADER_SOJ_DIR</span></code> it’s possible to override default
|
||||
<em>spiOverJtag</em> bitstreams directory:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">export</span><span class="w"> </span><span class="nv">OPENFPGALOADER_SOJ_DIR</span><span class="o">=</span>/somewhere
|
||||
openFPGALoader<span class="w"> </span>xxxx
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>or</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">OPENFPGALOADER_SOJ_DIR</span><span class="o">=</span>/somewhere<span class="w"> </span>openFPGALoader<span class="w"> </span>xxxx
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="troubleshooting.html" class="btn btn-neutral float-left" title="Troubleshooting" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="../compatibility/fpga.html" class="btn btn-neutral float-right" title="FPGAs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
|
||||
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
|
||||
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,189 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>First steps with openFPGALoader — openFPGALoader: universal utility for programming FPGA latest documentation</title>
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
|
||||
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="Installing openFPGALoader" href="install.html" />
|
||||
<link rel="prev" title="openFPGALoader: universal utility for programming FPGA" href="../index.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
|
||||
</a>
|
||||
<div class="version">
|
||||
latest
|
||||
</div>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">First steps with openFPGALoader</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#install">Install</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#programming-a-development-board">Programming a development board</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#programming-an-standalone-fpga">Programming an “standalone” FPGA</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced usage of openFPGALoader</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Compatibility</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/fpga.html">FPGAs</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/board.html">Boards</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/cable.html">Cables</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/xilinx.html">Xilinx notes</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../todo.html">To Do</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html" class="icon icon-home"></a> »</li>
|
||||
<li>First steps with openFPGALoader</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/first-steps.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="first-steps-with-openfpgaloader">
|
||||
<span id="first-steps"></span><h1>First steps with openFPGALoader<a class="headerlink" href="#first-steps-with-openfpgaloader" title="Link to this heading">¶</a></h1>
|
||||
<section id="install">
|
||||
<h2>Install<a class="headerlink" href="#install" title="Link to this heading">¶</a></h2>
|
||||
<p>Packages are available for Linux distributions, Windows (MSYS2) and macOS:</p>
|
||||
<ul class="simple">
|
||||
<li><p><em>Arch Linux</em>: <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">pacman</span> <span class="pre">-S</span> <span class="pre">openfpgaloader</span></code></p></li>
|
||||
<li><p><em>Fedora</em>: <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">dnf</span> <span class="pre">copr</span> <span class="pre">enable</span> <span class="pre">mobicarte/openFPGALoader;</span> <span class="pre">sudo</span> <span class="pre">dnf</span> <span class="pre">install</span> <span class="pre">openFPGALoader</span></code></p></li>
|
||||
<li><p><em>MSYS2</em>: <code class="docutils literal notranslate"><span class="pre">pacman</span> <span class="pre">-S</span> <span class="pre">mingw-w64-ucrt-x86_64-openFPGALoader</span></code></p></li>
|
||||
<li><p><em>macOS</em>: <code class="docutils literal notranslate"><span class="pre">brew</span> <span class="pre">install</span> <span class="pre">openfpgaloader</span></code></p></li>
|
||||
</ul>
|
||||
<p>More instructions for other installation scenarios are available in <a class="reference internal" href="install.html#install"><span class="std std-ref">Installing openFPGALoader</span></a>.</p>
|
||||
</section>
|
||||
<section id="programming-a-development-board">
|
||||
<h2>Programming a development board<a class="headerlink" href="#programming-a-development-board" title="Link to this heading">¶</a></h2>
|
||||
<p>Just simply replace <code class="docutils literal notranslate"><span class="pre">my_fpga_board</span></code> with any FPGA board from <a class="reference internal" href="../compatibility/board.html#compatibility-boards"><span class="std std-ref">Boards</span></a>
|
||||
(or <code class="docutils literal notranslate"><span class="pre">openFPGALoader</span> <span class="pre">--list-boards</span></code>) in any of the two commands below, depending on if you want to program the volatile
|
||||
part of your FPGA (faster but not persistent) or the flash part of your FPGA (slower but persistent):</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-b<span class="w"> </span>my_fpga_board<span class="w"> </span>my_bitstream.bit<span class="w"> </span><span class="c1"># Program to SRAM</span>
|
||||
openFPGALoader<span class="w"> </span>-b<span class="w"> </span>my_fpga_board<span class="w"> </span>-f<span class="w"> </span>my_bitstream.bit<span class="w"> </span><span class="c1"># Program to flash</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>When a bitstream file is compatible with both memory load and FLASH write, the default behavior is to load bitstream
|
||||
in memory.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="programming-an-standalone-fpga">
|
||||
<h2>Programming an “standalone” FPGA<a class="headerlink" href="#programming-an-standalone-fpga" title="Link to this heading">¶</a></h2>
|
||||
<p>If your FPGA doesn’t come with a built-in programmer or if you prefer to use an external cable, you can specify a cable
|
||||
to use from <a class="reference internal" href="../compatibility/cable.html#compatibility-cables"><span class="std std-ref">Cables</span></a> (or <code class="docutils literal notranslate"><span class="pre">openFPGALoader</span> <span class="pre">--list-cables</span></code>):</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-c<span class="w"> </span>my_cable<span class="w"> </span>my_bitstream.bit<span class="w"> </span><span class="c1"># Program to SRAM</span>
|
||||
openFPGALoader<span class="w"> </span>-c<span class="w"> </span>my_cable<span class="w"> </span>-f<span class="w"> </span>my_bitstream.bit<span class="w"> </span><span class="c1"># Program to flash</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>For some cable (like digilent adapters) signals from the converter are not just directly to the FPGA.
|
||||
For this case, the <code class="docutils literal notranslate"><span class="pre">-c</span></code> must be added.</p>
|
||||
</div>
|
||||
<div class="admonition hint">
|
||||
<p class="admonition-title">Hint</p>
|
||||
<p>FTDI/FTDI-compatible cable users: the <code class="docutils literal notranslate"><span class="pre">-d</span></code> option lets you specify a specific FTDI device:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-d<span class="w"> </span>/dev/ttyUSBX
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>When the <code class="docutils literal notranslate"><span class="pre">-d</span></code> option is not provided, openFPGALoader will opens the first FTDI adapter it finds.
|
||||
Therefore it is preferable to use this flag if your computer is connected to multiple FTDI devices.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="troubleshooting">
|
||||
<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading">¶</a></h2>
|
||||
<p>Please refer to <a class="reference internal" href="troubleshooting.html#troubleshooting"><span class="std std-ref">Troubleshooting</span></a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="../index.html" class="btn btn-neutral float-left" title="openFPGALoader: universal utility for programming FPGA" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="install.html" class="btn btn-neutral float-right" title="Installing openFPGALoader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
|
||||
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
|
||||
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,307 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Installing openFPGALoader — openFPGALoader: universal utility for programming FPGA latest documentation</title>
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
|
||||
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="Troubleshooting" href="troubleshooting.html" />
|
||||
<link rel="prev" title="First steps with openFPGALoader" href="first-steps.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
|
||||
</a>
|
||||
<div class="version">
|
||||
latest
|
||||
</div>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing openFPGALoader</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#linux">Linux</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#debian-ubuntu">Debian/Ubuntu</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#guix">Guix</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#arch-linux">Arch Linux</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#fedora">Fedora</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#from-source">From source</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#udev-rules">Udev rules</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#macos">macOS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#common">Common</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced usage of openFPGALoader</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Compatibility</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/fpga.html">FPGAs</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/board.html">Boards</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/cable.html">Cables</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/xilinx.html">Xilinx notes</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../todo.html">To Do</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html" class="icon icon-home"></a> »</li>
|
||||
<li>Installing openFPGALoader</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/install.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="installing-openfpgaloader">
|
||||
<span id="install"></span><h1>Installing openFPGALoader<a class="headerlink" href="#installing-openfpgaloader" title="Link to this heading">¶</a></h1>
|
||||
<section id="linux">
|
||||
<h2>Linux<a class="headerlink" href="#linux" title="Link to this heading">¶</a></h2>
|
||||
<section id="debian-ubuntu">
|
||||
<h3>Debian/Ubuntu<a class="headerlink" href="#debian-ubuntu" title="Link to this heading">¶</a></h3>
|
||||
<p>openFPGALoader is available in the default repositories:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>openfpgaloader
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="guix">
|
||||
<h3>Guix<a class="headerlink" href="#guix" title="Link to this heading">¶</a></h3>
|
||||
<p>openFPGALoader is available in the default repositories:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>guix<span class="w"> </span>install<span class="w"> </span>openfpgaloader
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To use openFPGALoader under GuixSystem without root privileges it is necessary to install the necessary udev rules. This can be done by extending <code class="docutils literal notranslate"><span class="pre">udev-service-type</span></code> in the <code class="docutils literal notranslate"><span class="pre">operating-system</span></code> configuration file with this package</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>udev-rules-service<span class="w"> </span><span class="s1">'openfpgaloader openfpgaloader #:groups '</span><span class="o">(</span><span class="se">\"</span>plugdev<span class="se">\"</span><span class="o">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Additionally, <code class="docutils literal notranslate"><span class="pre">plugdev</span></code> group should be registered in the <code class="docutils literal notranslate"><span class="pre">supplementary-groups</span></code> field of your <code class="docutils literal notranslate"><span class="pre">user-account``declaration.</span>  <span class="pre">Refer</span> <span class="pre">to</span> <span class="pre">``Base</span> <span class="pre">Services</span></code> section in the manual for examples.</p>
|
||||
</section>
|
||||
<section id="arch-linux">
|
||||
<h3>Arch Linux<a class="headerlink" href="#arch-linux" title="Link to this heading">¶</a></h3>
|
||||
<p>openFPGALoader is available in the default repositories:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>openfpgaloader
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Alternatively, you could build from source. First: install required libraries:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>git<span class="w"> </span>cmake<span class="w"> </span>make<span class="w"> </span>gcc<span class="w"> </span>pkgconf<span class="w"> </span>libftdi<span class="w"> </span>libusb<span class="w"> </span>zlib<span class="w"> </span>hidapi<span class="w"> </span>gzip
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Build step is similar as Debian</p>
|
||||
</section>
|
||||
<section id="fedora">
|
||||
<h3>Fedora<a class="headerlink" href="#fedora" title="Link to this heading">¶</a></h3>
|
||||
<p>openFPGALoader is available as a Copr repository:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>dnf<span class="w"> </span>copr<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>mobicarte/openFPGALoader
|
||||
sudo<span class="w"> </span>dnf<span class="w"> </span>install<span class="w"> </span>openFPGALoader
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="from-source">
|
||||
<h3>From source<a class="headerlink" href="#from-source" title="Link to this heading">¶</a></h3>
|
||||
<p>This application uses <code class="docutils literal notranslate"><span class="pre">libftdi1</span></code>, so this library must be installed (and, depending on the distribution, headers too):</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>git<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>gzip<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>libftdi1-2<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>libftdi1-dev<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>libhidapi-hidraw0<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>libhidapi-dev<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>libudev-dev<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>zlib1g-dev<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>cmake<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>pkg-config<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>make<span class="w"> </span><span class="se">\</span>
|
||||
<span class="w"> </span>g++
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="admonition hint">
|
||||
<p class="admonition-title">Hint</p>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">libudev-dev</span></code> is optional, may be replaced by <code class="docutils literal notranslate"><span class="pre">eudev-dev</span></code> or just not installed.</p>
|
||||
</div>
|
||||
<p>By default, <code class="docutils literal notranslate"><span class="pre">(e)udev</span></code> support is enabled (used to open a device by his <code class="docutils literal notranslate"><span class="pre">/dev/xx</span></code> node).
|
||||
If you don’t want this option, use:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-DENABLE_UDEV<span class="o">=</span>OFF
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>By default, <code class="docutils literal notranslate"><span class="pre">cmsisdap</span></code> support is enabled (used for colorlight I5, I9).
|
||||
If you don’t want this option, use:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-DENABLE_CMSISDAP<span class="o">=</span>OFF
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Alternatively you can manually specify the location of <code class="docutils literal notranslate"><span class="pre">libusb</span></code> and <code class="docutils literal notranslate"><span class="pre">libftdi1</span></code>:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-DUSE_PKGCONFIG<span class="o">=</span>OFF<span class="w"> </span><span class="se">\</span>
|
||||
-DLIBUSB_LIBRARIES<span class="o">=</span><path_to_libusb><span class="w"> </span><span class="se">\</span>
|
||||
-DLIBFTDI_LIBRARIES<span class="o">=</span><path_to_libftdi><span class="w"> </span><span class="se">\</span>
|
||||
-DLIBFTDI_VERSION<span class="o">=</span><version><span class="w"> </span><span class="se">\</span>
|
||||
-DCMAKE_CXX_FLAGS<span class="o">=</span><span class="s2">"-I<libusb_include_dir> -I<libftdi1_include_dir>"</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>You may also need to add this if you see link errors between <code class="docutils literal notranslate"><span class="pre">libusb</span></code> and <code class="docutils literal notranslate"><span class="pre">pthread</span></code>:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-DLINK_CMAKE_THREADS<span class="o">=</span>ON
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>By default, <code class="docutils literal notranslate"><span class="pre">libgpiod</span></code> support is enabled
|
||||
If you don’t want this option, use:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-DENABLE_LIBGPIOD<span class="o">=</span>OFF
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Additionaly you have to install <code class="docutils literal notranslate"><span class="pre">libgpiod</span></code></p>
|
||||
<p>To build the app:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/trabucayre/openFPGALoader
|
||||
<span class="nb">cd</span><span class="w"> </span>openFPGALoader
|
||||
mkdir<span class="w"> </span>build
|
||||
<span class="nb">cd</span><span class="w"> </span>build
|
||||
cmake<span class="w"> </span>..<span class="w"> </span><span class="c1"># add -DBUILD_STATIC=ON to build a static version</span>
|
||||
<span class="w"> </span><span class="c1"># add -DENABLE_UDEV=OFF to disable udev support and -d /dev/xxx</span>
|
||||
<span class="w"> </span><span class="c1"># add -DENABLE_CMSISDAP=OFF to disable CMSIS DAP support</span>
|
||||
cmake<span class="w"> </span>--build<span class="w"> </span>.
|
||||
<span class="c1"># or</span>
|
||||
make<span class="w"> </span>-j<span class="k">$(</span>nproc<span class="k">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To install</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>make<span class="w"> </span>install
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The default install path is <code class="docutils literal notranslate"><span class="pre">/usr/local</span></code>, to change it, use <code class="docutils literal notranslate"><span class="pre">-DCMAKE_INSTALL_PREFIX=myInstallDir</span></code> in cmake invokation.</p>
|
||||
</section>
|
||||
<section id="udev-rules">
|
||||
<h3>Udev rules<a class="headerlink" href="#udev-rules" title="Link to this heading">¶</a></h3>
|
||||
<p>By default, users have no access to converters.
|
||||
A rule file (<a class="reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/99-openfpgaloader.rules">99-openfpgaloader.rules</a>) for <code class="docutils literal notranslate"><span class="pre">udev</span></code> is provided at the root directory
|
||||
of this repository.
|
||||
These rules set access right and group (<code class="docutils literal notranslate"><span class="pre">plugdev</span></code>) when a converter is plugged.</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>cp<span class="w"> </span><span class="m">99</span>-openfpgaloader.rules<span class="w"> </span>/etc/udev/rules.d/
|
||||
sudo<span class="w"> </span>udevadm<span class="w"> </span>control<span class="w"> </span>--reload-rules<span class="w"> </span><span class="o">&&</span><span class="w"> </span>sudo<span class="w"> </span>udevadm<span class="w"> </span>trigger<span class="w"> </span><span class="c1"># force udev to take new rule</span>
|
||||
sudo<span class="w"> </span>usermod<span class="w"> </span>-a<span class="w"> </span><span class="nv">$USER</span><span class="w"> </span>-G<span class="w"> </span>plugdev<span class="w"> </span><span class="c1"># add user to plugdev group</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>After that you need to unplug and replug your device.</p>
|
||||
<div class="admonition hint">
|
||||
<p class="admonition-title">Hint</p>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">usermod</span></code> is used to add <code class="docutils literal notranslate"><span class="pre">$USER</span></code> as a member of <code class="docutils literal notranslate"><span class="pre">plugdev</span></code> group.
|
||||
However this update is not taken into account immediately: it’s required to
|
||||
logout from current session and login again.
|
||||
Check, by using <code class="docutils literal notranslate"><span class="pre">id</span> <span class="pre">$USER</span></code>, if <code class="docutils literal notranslate"><span class="pre">plugdev</span></code> is mentioned after <code class="docutils literal notranslate"><span class="pre">groups=</span></code>.
|
||||
An alternate (and temporary) solution is to use <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-</span> <span class="pre">$USER</span></code> to have
|
||||
your user seen as a member of <code class="docutils literal notranslate"><span class="pre">plugdev</span></code> group (works only for the current terminal).</p>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="macos">
|
||||
<h2>macOS<a class="headerlink" href="#macos" title="Link to this heading">¶</a></h2>
|
||||
<p>openFPGALoader is available as a <a class="reference external" href="https://brew.sh">Homebrew</a> formula:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>brew<span class="w"> </span>install<span class="w"> </span>openfpgaloader
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Alternatively, if you want to build it by hand:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>brew<span class="w"> </span>install<span class="w"> </span>--only-dependencies<span class="w"> </span>openfpgaloader
|
||||
brew<span class="w"> </span>install<span class="w"> </span>cmake<span class="w"> </span>pkg-config<span class="w"> </span>zlib<span class="w"> </span>gzip
|
||||
git<span class="w"> </span>clone<span class="w"> </span>https://github.com/trabucayre/openFPGALoader
|
||||
<span class="nb">cd</span><span class="w"> </span>openFPGALoader
|
||||
mkdir<span class="w"> </span>build
|
||||
<span class="nb">cd</span><span class="w"> </span>build
|
||||
cmake<span class="w"> </span>..
|
||||
make<span class="w"> </span>-j
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="windows">
|
||||
<h2>Windows<a class="headerlink" href="#windows" title="Link to this heading">¶</a></h2>
|
||||
</section>
|
||||
<section id="common">
|
||||
<h2>Common<a class="headerlink" href="#common" title="Link to this heading">¶</a></h2>
|
||||
<p>Bitstreams for <em>XC2C (coolrunner-II)</em> needs to be remapped using <code class="docutils literal notranslate"><span class="pre">.map</span></code> shipped with <em>ISE</em>.
|
||||
<em>ISE</em> path is set at configure time using:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-DISE_PATH<span class="o">=</span>/somewhere/Xilinx/ISE_VERS/
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>default: <code class="docutils literal notranslate"><span class="pre">/opt/Xilinx/14.7</span></code>.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="first-steps.html" class="btn btn-neutral float-left" title="First steps with openFPGALoader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="troubleshooting.html" class="btn btn-neutral float-right" title="Troubleshooting" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
|
||||
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
|
||||
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Troubleshooting — openFPGALoader: universal utility for programming FPGA latest documentation</title>
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
|
||||
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="Advanced usage of openFPGALoader" href="advanced.html" />
|
||||
<link rel="prev" title="Installing openFPGALoader" href="install.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
<div class="wy-grid-for-nav">
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
|
||||
</a>
|
||||
<div class="version">
|
||||
latest
|
||||
</div>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Troubleshooting</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it">I installed openFPGALoader but it says <cite>command not found</cite> when I try to launch it</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#gowin-device-could-not-communicate-since-last-bitstream-flashed-issue-206">Gowin device could not communicate since last bitstream flashed. (issue #206)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#jtag-init-failed">JTAG init failed</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#tang-primer-20k-program-slow-and-stucked-issue-250">Tang Primer 20k program slow and stucked (issue #250)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#cannot-flash-tang-nano-20k-issue-251">Cannot flash Tang Nano 20k (issue #251)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#cannot-flash-tang-nano-9k-issue-251">Cannot flash Tang Nano 9k (issue #251)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#unable-to-open-ftdi-device-4-usb-open-failed-issue-245">Unable to open FTDI device: -4 (usb_open() failed) (issue #245)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced usage of openFPGALoader</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Compatibility</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/fpga.html">FPGAs</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/board.html">Boards</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../compatibility/cable.html">Cables</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../vendors/xilinx.html">Xilinx notes</a></li>
|
||||
</ul>
|
||||
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../todo.html">To Do</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a>
|
||||
</nav>
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
<div role="navigation" aria-label="Page navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html" class="icon icon-home"></a> »</li>
|
||||
<li>Troubleshooting</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/troubleshooting.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
</div>
|
||||
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<section id="troubleshooting">
|
||||
<span id="id1"></span><h1>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading">¶</a></h1>
|
||||
<section id="i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it">
|
||||
<h2>I installed openFPGALoader but it says <cite>command not found</cite> when I try to launch it<a class="headerlink" href="#i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it" title="Link to this heading">¶</a></h2>
|
||||
<p>The correct spelling of the program is <em>openFPGALoader</em> with FPGA and the “L” of “Loader” in uppercase.
|
||||
Ensure the spelling of the program is correct.</p>
|
||||
</section>
|
||||
<section id="gowin-device-could-not-communicate-since-last-bitstream-flashed-issue-206">
|
||||
<h2>Gowin device could not communicate since last bitstream flashed. (issue <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/issues/206">#206</a>)<a class="headerlink" href="#gowin-device-could-not-communicate-since-last-bitstream-flashed-issue-206" title="Link to this heading">¶</a></h2>
|
||||
<p>Gowin’s FPGA may fails to be detected if <strong>JTAGSEL_N</strong> (pin 08 for <em>GW1N-4K</em>) is used as a GPIO.
|
||||
To recover you have to pull down this pin (before power up) to recover JTAG interface (<em>UG292 - JTAGSELL_N section</em>).</p>
|
||||
</section>
|
||||
<section id="jtag-init-failed">
|
||||
<h2>JTAG init failed<a class="headerlink" href="#jtag-init-failed" title="Link to this heading">¶</a></h2>
|
||||
<p>Avoid using USB hubs and connect it directly to your PC USB port.</p>
|
||||
</section>
|
||||
<section id="tang-primer-20k-program-slow-and-stucked-issue-250">
|
||||
<h2>Tang Primer 20k program slow and stucked (issue <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/issues/250">#250</a>)<a class="headerlink" href="#tang-primer-20k-program-slow-and-stucked-issue-250" title="Link to this heading">¶</a></h2>
|
||||
<p>Check your openFPGALoader version:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>openFPGALoader<span class="w"> </span>-V
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If it is older than release then v0.9.0, install the most recent version (from commit <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/commit/fe259fb78d185b3113661d04cd7efa9ae0232425">f5b89bff68a5e2147404a895c075773884077438</a> or later).</p>
|
||||
</section>
|
||||
<section id="cannot-flash-tang-nano-20k-issue-251">
|
||||
<h2>Cannot flash Tang Nano 20k (issue <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/issues/511">#251</a>)<a class="headerlink" href="#cannot-flash-tang-nano-20k-issue-251" title="Link to this heading">¶</a></h2>
|
||||
<p>Some firmware version cannot be flashed on Linux-based systems. Version 2024122312 is such an example. It seems this version was not published on the <a class="reference external" href="https://api.dl.sipeed.com/TANG/Debugger/onboard/BL616/">SiPeed website</a>, however some boards sold have this firmware.</p>
|
||||
<p>The cause of the problem is the debugger on the Tang Nano, specifically the firmware of this debugger. This firmware can be easily updated by following <a class="reference external" href="https://wiki.sipeed.com/hardware/en/tang/common-doc/update_debugger.html">these</a> steps.</p>
|
||||
</section>
|
||||
<section id="cannot-flash-tang-nano-9k-issue-251">
|
||||
<h2>Cannot flash Tang Nano 9k (issue <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/issues/251">#251</a>)<a class="headerlink" href="#cannot-flash-tang-nano-9k-issue-251" title="Link to this heading">¶</a></h2>
|
||||
<p>This is a device issue, erase its Embedded Flash using Official GoWin Programmer (preferentially in Windows) and SRAM too, then you can use openFPGALoader again.</p>
|
||||
</section>
|
||||
<section id="unable-to-open-ftdi-device-4-usb-open-failed-issue-245">
|
||||
<h2>Unable to open FTDI device: -4 (usb_open() failed) (issue <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/issues/245">#245</a>)<a class="headerlink" href="#unable-to-open-ftdi-device-4-usb-open-failed-issue-245" title="Link to this heading">¶</a></h2>
|
||||
<p>Edit your <cite>/etc/udev/rules.d/99-ftdi.rules</cite> file exchanging your programming device permissions.</p>
|
||||
<p>For more information, check the udev section from <a class="reference external" href="install.rst">this guide</a></p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||
<a href="install.html" class="btn btn-neutral float-left" title="Installing openFPGALoader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||
<a href="advanced.html" class="btn btn-neutral float-right" title="Advanced usage of openFPGALoader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>© Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
|
||||
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
|
||||
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
|
||||
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
|
||||
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user