ftdi: replace proprietary libftd2xx with open-source libftdi1
The Olimex ARM-USB-OCD (and any FT2232 with a custom USB id) couldn't be enumerated by libftd2xx and needed a manual ftdi_sio unbind. libftdi1 (libusb) opens any VID:PID and auto-detaches the kernel driver. - rewrite drivers/ftdi_jtag on libftdi1: enumerate a known VID:PID list (incl. Olimex 15ba:0003/002b) with per-chip channel counts, open by bus/addr + interface, MPSSE via ftdi_write_data/ftdi_read_data (+ SEND_IMMEDIATE for deterministic reads). MPSSE command building, pin map and clocking unchanged. - CMake: link libftdi1 + libusb-1.0 (pkg-config), drop FTDILIB/FTD2XX defines and the libftd2xx.a link; remove the vendored src/libs/libftd2xx. - registry: NXP LPC2103 (ARM7TDMI-S) entry, IDCODE 0x4F1F0F0F. - docs updated (deps, layout, decision note, roadmap phase 8). Validated on hardware: ARM-USB-OCD enumerates, jtag_scan reads the LPC2103 IDCODE 0x4F1F0F0F, target_info -> [cpu, ARM7] prog: arm_flash. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,10 @@ and Microsemi IGLOO2 M2GL010T (`m2gl010t-fg484.bsd`). Add more by dropping
|
||||
- `readline` (Arch: `readline`, Debian/Ubuntu: `libreadline-dev`)
|
||||
- `libyaml` for the FPGA registry, found via pkg-config `yaml-0.1`
|
||||
(Arch: `libyaml`, Debian/Ubuntu: `libyaml-dev`)
|
||||
- `libftd2xx` for FTDI probes (vendored in `src/libs/libftd2xx/`)
|
||||
- `libftdi1` + `libusb-1.0` for FTDI/Olimex probes, via pkg-config
|
||||
`libftdi1` (Arch: `libftdi`, Debian/Ubuntu: `libftdi1-dev`). Open
|
||||
source — no vendored proprietary SDK; works with any VID:PID and
|
||||
auto-detaches the kernel `ftdi_sio` driver.
|
||||
- *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`).
|
||||
@@ -176,9 +179,8 @@ shows it).
|
||||
## Repository layout
|
||||
|
||||
```
|
||||
src/ — code + libs —
|
||||
src/
|
||||
├── bs/ Application (readline REPL)
|
||||
├── libs/libftd2xx/ Vendored FTDI SDK
|
||||
└── modules/
|
||||
├── jtag_core/ TAP state machine, IR/DR shifts
|
||||
├── bsdl_parser/ .bsd loader
|
||||
|
||||
Reference in New Issue
Block a user