Skip to content

Commit 6e18a8d

Browse files
committed
deploy: 1f72df2
1 parent 59e70f0 commit 6e18a8d

File tree

5 files changed

+163
-2
lines changed

5 files changed

+163
-2
lines changed

.doctrees/environment.pickle

494 Bytes
Binary file not shown.

.doctrees/guide/install.doctree

16.7 KB
Binary file not shown.

_sources/guide/install.rst.txt

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,87 @@ Bitstreams for *XC2C (coolrunner-II)* needs to be remapped using ``.map`` shippe
269269
-DISE_PATH=/somewhere/Xilinx/ISE_VERS/
270270
271271
default: ``/opt/Xilinx/14.7``.
272+
273+
Disabling/Enabling Cable or Vendor Drivers
274+
------------------------------------------
275+
276+
With the default ``cmake ..`` configuration, openFPGALoader enables
277+
``ENABLE_CABLE_ALL=ON`` and ``ENABLE_VENDORS_ALL=ON``. This means all cable
278+
and vendor drivers are enabled by default, then filtered only by OS
279+
capabilities and available dependencies.
280+
281+
To reduce binary size, speed up the build, or keep support limited to selected
282+
cables/vendors, you can explicitly enable or disable options.
283+
284+
These commands are equivalent:
285+
286+
.. code-block:: bash
287+
288+
cmake -DENABLE_CABLE_ALL=ON -DENABLE_VENDORS_ALL=ON ..
289+
# and
290+
cmake .. # Implicit default values
291+
292+
To disable all cable and vendor support:
293+
294+
.. code-block:: bash
295+
296+
cmake -DENABLE_CABLE_ALL=OFF -DENABLE_VENDORS_ALL=OFF ..
297+
298+
This produces an **openFPGALoader** binary with no cable/vendor support.
299+
Then re-enable only what you need by adding one or more options below.
300+
301+
Each item in the following lists is a CMake option name. Use them with
302+
``-D<OPTION>=ON`` to enable or ``-D<OPTION>=OFF`` to disable.
303+
304+
.. note::
305+
306+
The default value for each option is provided by ``ENABLE_CABLE_ALL`` and
307+
``ENABLE_VENDORS_ALL``.
308+
309+
Example (enable FTDI-based cables and Xilinx devices only):
310+
311+
.. code-block:: bash
312+
313+
cmake \
314+
-DENABLE_CABLE_ALL=OFF \
315+
-DENABLE_VENDORS_ALL=OFF \
316+
-DENABLE_FTDI_BASED_CABLE=ON \
317+
-DENABLE_XILINX_SUPPORT=ON \
318+
..
319+
320+
**Cable options**
321+
322+
- ``ENABLE_USB_SCAN``: Enable USB cable discovery/scanning support.
323+
- ``ENABLE_ANLOGIC_CABLE``: Enable Anlogic cable support (requires libUSB).
324+
- ``ENABLE_CH347``: Enable CH347 cable support (requires libUSB).
325+
- ``ENABLE_CMSISDAP``: Enable CMSIS-DAP interface support (requires hidapi).
326+
- ``ENABLE_DIRTYJTAG``: Enable DirtyJTAG cable support (requires libUSB).
327+
- ``ENABLE_ESP_USB``: Enable ESP32-S3 USB-JTAG cable support (requires libUSB).
328+
- ``ENABLE_JLINK``: Enable J-Link cable support (requires libUSB).
329+
- ``ENABLE_DFU``: Enable DFU-based cable support (requires libUSB).
330+
- ``ENABLE_FTDI_BASED_CABLE``: Enable FTDI-based cable drivers (requires libftdi).
331+
- ``ENABLE_GOWIN_GWU2X``: Enable Gowin GWU2X interface support.
332+
- ``ENABLE_SVF_JTAG``: Enable SVF JTAG playback support.
333+
- ``ENABLE_USB_BLASTERI``: Enable Altera USB-Blaster I support.
334+
- ``ENABLE_USB_BLASTERII``: Enable Altera USB-Blaster II support.
335+
- ``ENABLE_LIBGPIOD``: Enable libgpiod bitbang driver support (Linux only).
336+
- ``ENABLE_REMOTEBITBANG``: Enable remote-bitbang driver support.
337+
- ``ENABLE_XILINX_VIRTUAL_CABLE``: Enable Xilinx Virtual Cable (XVC) support.
338+
339+
**Vendor options**
340+
341+
- ``ENABLE_ALTERA_SUPPORT``: Enable Altera/Intel device family support.
342+
- ``ENABLE_ANLOGIC_SUPPORT``: Enable Anlogic device family support.
343+
- ``ENABLE_COLOGNECHIP_SUPPORT``: Enable Cologne Chip device family support (requires libftdi).
344+
- ``ENABLE_EFINIX_SUPPORT``: Enable Efinix device family support (requires libftdi).
345+
- ``ENABLE_GOWIN_SUPPORT``: Enable Gowin device family support.
346+
- ``ENABLE_ICE40_SUPPORT``: Enable Lattice iCE40 device family support (requires libftdi).
347+
- ``ENABLE_LATTICE_SUPPORT``: Enable Lattice device family support.
348+
- ``ENABLE_LATTICESSPI_SUPPORT``: Enable Lattice SSPI support (requires libftdi).
349+
- ``ENABLE_XILINX_SUPPORT``: Enable Xilinx device family support.
350+
351+
.. note::
352+
353+
SPI support is hardcoded to FTDI. When FTDI support is disabled, some
354+
vendor drivers are also disabled (*iCE40*, *Cologne Chip*, *Efinix*, and
355+
*Lattice SSPI*).

guide/install.html

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,80 @@ <h2>Common<a class="headerlink" href="#common" title="Link to this heading">¶</
249249
</pre></div>
250250
</div>
251251
<p>default: <code class="docutils literal notranslate"><span class="pre">/opt/Xilinx/14.7</span></code>.</p>
252+
<section id="disabling-enabling-cable-or-vendor-drivers">
253+
<h3>Disabling/Enabling Cable or Vendor Drivers<a class="headerlink" href="#disabling-enabling-cable-or-vendor-drivers" title="Link to this heading"></a></h3>
254+
<p>With the default <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">..</span></code> configuration, openFPGALoader enables
255+
<code class="docutils literal notranslate"><span class="pre">ENABLE_CABLE_ALL=ON</span></code> and <code class="docutils literal notranslate"><span class="pre">ENABLE_VENDORS_ALL=ON</span></code>. This means all cable
256+
and vendor drivers are enabled by default, then filtered only by OS
257+
capabilities and available dependencies.</p>
258+
<p>To reduce binary size, speed up the build, or keep support limited to selected
259+
cables/vendors, you can explicitly enable or disable options.</p>
260+
<p>These commands are equivalent:</p>
261+
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span>-DENABLE_CABLE_ALL<span class="o">=</span>ON<span class="w"> </span>-DENABLE_VENDORS_ALL<span class="o">=</span>ON<span class="w"> </span>..
262+
<span class="c1"># and</span>
263+
cmake<span class="w"> </span>..<span class="w"> </span><span class="c1"># Implicit default values</span>
264+
</pre></div>
265+
</div>
266+
<p>To disable all cable and vendor support:</p>
267+
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span>-DENABLE_CABLE_ALL<span class="o">=</span>OFF<span class="w"> </span>-DENABLE_VENDORS_ALL<span class="o">=</span>OFF<span class="w"> </span>..
268+
</pre></div>
269+
</div>
270+
<p>This produces an <strong>openFPGALoader</strong> binary with no cable/vendor support.
271+
Then re-enable only what you need by adding one or more options below.</p>
272+
<p>Each item in the following lists is a CMake option name. Use them with
273+
<code class="docutils literal notranslate"><span class="pre">-D&lt;OPTION&gt;=ON</span></code> to enable or <code class="docutils literal notranslate"><span class="pre">-D&lt;OPTION&gt;=OFF</span></code> to disable.</p>
274+
<div class="admonition note">
275+
<p class="admonition-title">Note</p>
276+
<p>The default value for each option is provided by <code class="docutils literal notranslate"><span class="pre">ENABLE_CABLE_ALL</span></code> and
277+
<code class="docutils literal notranslate"><span class="pre">ENABLE_VENDORS_ALL</span></code>.</p>
278+
</div>
279+
<p>Example (enable FTDI-based cables and Xilinx devices only):</p>
280+
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span><span class="se">\</span>
281+
<span class="w"> </span>-DENABLE_CABLE_ALL<span class="o">=</span>OFF<span class="w"> </span><span class="se">\</span>
282+
<span class="w"> </span>-DENABLE_VENDORS_ALL<span class="o">=</span>OFF<span class="w"> </span><span class="se">\</span>
283+
<span class="w"> </span>-DENABLE_FTDI_BASED_CABLE<span class="o">=</span>ON<span class="w"> </span><span class="se">\</span>
284+
<span class="w"> </span>-DENABLE_XILINX_SUPPORT<span class="o">=</span>ON<span class="w"> </span><span class="se">\</span>
285+
<span class="w"> </span>..
286+
</pre></div>
287+
</div>
288+
<p><strong>Cable options</strong></p>
289+
<ul class="simple">
290+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_USB_SCAN</span></code>: Enable USB cable discovery/scanning support.</p></li>
291+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_ANLOGIC_CABLE</span></code>: Enable Anlogic cable support (requires libUSB).</p></li>
292+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_CH347</span></code>: Enable CH347 cable support (requires libUSB).</p></li>
293+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_CMSISDAP</span></code>: Enable CMSIS-DAP interface support (requires hidapi).</p></li>
294+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_DIRTYJTAG</span></code>: Enable DirtyJTAG cable support (requires libUSB).</p></li>
295+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_ESP_USB</span></code>: Enable ESP32-S3 USB-JTAG cable support (requires libUSB).</p></li>
296+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_JLINK</span></code>: Enable J-Link cable support (requires libUSB).</p></li>
297+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_DFU</span></code>: Enable DFU-based cable support (requires libUSB).</p></li>
298+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_FTDI_BASED_CABLE</span></code>: Enable FTDI-based cable drivers (requires libftdi).</p></li>
299+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_GOWIN_GWU2X</span></code>: Enable Gowin GWU2X interface support.</p></li>
300+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_SVF_JTAG</span></code>: Enable SVF JTAG playback support.</p></li>
301+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_USB_BLASTERI</span></code>: Enable Altera USB-Blaster I support.</p></li>
302+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_USB_BLASTERII</span></code>: Enable Altera USB-Blaster II support.</p></li>
303+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_LIBGPIOD</span></code>: Enable libgpiod bitbang driver support (Linux only).</p></li>
304+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_REMOTEBITBANG</span></code>: Enable remote-bitbang driver support.</p></li>
305+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_XILINX_VIRTUAL_CABLE</span></code>: Enable Xilinx Virtual Cable (XVC) support.</p></li>
306+
</ul>
307+
<p><strong>Vendor options</strong></p>
308+
<ul class="simple">
309+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_ALTERA_SUPPORT</span></code>: Enable Altera/Intel device family support.</p></li>
310+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_ANLOGIC_SUPPORT</span></code>: Enable Anlogic device family support.</p></li>
311+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_COLOGNECHIP_SUPPORT</span></code>: Enable Cologne Chip device family support (requires libftdi).</p></li>
312+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_EFINIX_SUPPORT</span></code>: Enable Efinix device family support (requires libftdi).</p></li>
313+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_GOWIN_SUPPORT</span></code>: Enable Gowin device family support.</p></li>
314+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_ICE40_SUPPORT</span></code>: Enable Lattice iCE40 device family support (requires libftdi).</p></li>
315+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_LATTICE_SUPPORT</span></code>: Enable Lattice device family support.</p></li>
316+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_LATTICESSPI_SUPPORT</span></code>: Enable Lattice SSPI support (requires libftdi).</p></li>
317+
<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_XILINX_SUPPORT</span></code>: Enable Xilinx device family support.</p></li>
318+
</ul>
319+
<div class="admonition note">
320+
<p class="admonition-title">Note</p>
321+
<p>SPI support is hardcoded to FTDI. When FTDI support is disabled, some
322+
vendor drivers are also disabled (<em>iCE40</em>, <em>Cologne Chip</em>, <em>Efinix</em>, and
323+
<em>Lattice SSPI</em>).</p>
324+
</div>
325+
</section>
252326
</section>
253327
</section>
254328

@@ -297,7 +371,10 @@ <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for p
297371
<li class="toctree-l3"><a class="reference internal" href="#cross-compilation-from-linux">Cross-compilation from Linux</a></li>
298372
</ul>
299373
</li>
300-
<li class="toctree-l2"><a class="reference internal" href="#common">Common</a></li>
374+
<li class="toctree-l2"><a class="reference internal" href="#common">Common</a><ul>
375+
<li class="toctree-l3"><a class="reference internal" href="#disabling-enabling-cable-or-vendor-drivers">Disabling/Enabling Cable or Vendor Drivers</a></li>
376+
</ul>
377+
</li>
301378
</ul>
302379
</li>
303380
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)