build: Digilent backend on by default on UNIX

The driver dlopen's libdjtg/libdmgr and degrades to "no probe" if
they're absent, so building it in has no cost or dependency.
BS_ENABLE_DIGILENT now defaults ON on UNIX (needs <dlfcn.h>); disable
with -DBS_ENABLE_DIGILENT=OFF. Docs updated; also fixes the quartiq
license note in CLAUDE.md (MIT, not BSD-2).
This commit is contained in:
2026-05-23 17:16:36 +02:00
parent 888f0eed5b
commit 8e3428788c
3 changed files with 31 additions and 19 deletions

View File

@@ -26,11 +26,12 @@ in `bsdl_files/`.
- CMake ≥ 3.10, gcc/clang
- `readline` (Arch: `readline`, Debian/Ubuntu: `libreadline-dev`)
- `libftd2xx` for FTDI probes (vendored in `libs/libftd2xx/`)
- *Optional, for Digilent SMT2/SMT2-NC boards:* the Digilent
- *To drive a Digilent SMT2/SMT2-NC probe:* the Digilent
[Adept Runtime](https://digilent.com/shop/software/digilent-adept/)
installed system-wide (provides `libdjtg.so` + `libdmgr.so`).
Nothing from Digilent is vendored — the backend is `dlopen`'d at
runtime.
runtime, so it's built in by default and simply reports no probe if
the libs are missing.
## Build
@@ -42,10 +43,10 @@ make
The binary is produced at `build/bs/bs`.
To enable the Digilent SMT2 backend:
The Digilent SMT2 backend is built by default on Linux. To leave it out:
```sh
cmake -DBS_ENABLE_DIGILENT=ON ..
cmake -DBS_ENABLE_DIGILENT=OFF ..
```
## Run
@@ -114,11 +115,12 @@ Use `help <command>` for per-command help.
in `modules/config/config.script` for pin mapping and TCK frequency.
- **SEGGER J-Link**
- **Linux GPIO** (sysfs; deprecated on recent kernels, libgpiod migration TBD)
- **Digilent JTAG-SMT2 / SMT2-NC** — optional, built when
`-DBS_ENABLE_DIGILENT=ON`. Required for the USB-JTAG on Xilinx eval
boards like the KCU105: those modules ship a Digilent-proprietary
firmware that does not respond to plain MPSSE, so the FTDI driver
appears to enumerate them but the JTAG chain stays silent.
- **Digilent JTAG-SMT2 / SMT2-NC** — built in by default on Linux
(`-DBS_ENABLE_DIGILENT=OFF` to drop it). Required for the USB-JTAG on
Xilinx eval boards like the KCU105: those modules ship a
Digilent-proprietary firmware that does not respond to plain MPSSE,
so the FTDI driver appears to enumerate them but the JTAG chain stays
silent.
## Known Xilinx caveats