doc/cable: move to yml

This commit is contained in:
Gwenhael Goavec-Merou 2022-02-20 15:47:35 +01:00
parent 7384573992
commit 4482deec18
5 changed files with 244 additions and 21 deletions

1
.gitignore vendored
View File

@ -43,4 +43,5 @@ build/
/doc/_build/
/doc/_theme/
/doc/compatibility/boards.inc
/doc/compatibility/cable.inc
/doc/compatibility/fpga.inc

199
doc/cable.yml Normal file
View File

@ -0,0 +1,199 @@
anlogicCable:
- Name: anlogic JTAG adapter
Description: JTAG adapter firmware for stm32
URL: https://github.com/AnlogicInfo/anlogic-usbjtag
arm-usb-ocd-h:
- Name: Olimex ARM-USB-OCD-H adapter
Description: High-speed 3-IN-1 fast USB ARM JTAG, USB-to-RS232 virtual port and power supply 5VDC device
URL: https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/
bus_blaster:
- Name: Dangerousprototypes Bus Blaster
Description: Jtag adapter based on ft2232
URL: http://dangerousprototypes.com/docs/Bus_Blaster
bus_blaster_b:
- Name: Dangerousprototypes Bus Blaster
Description: Jtag adapter based on ft2232 (interface B)
URL: http://dangerousprototypes.com/docs/Bus_Blaster
ch552_jtag:
- Name: ch552 JTAG adapter
Description: Tang Nano USB-JTAG interface. FT2232C clone firmware for CH552 microcontroler
URL: https://github.com/diodep/ch55x_jtag
cmsisdap:
- Name: ARM CMSIS DAP protocol interface
Description: ARM CMSIS DAP protocol interface (hid only)
URL: https://os.mbed.com/docs/mbed-os/v6.11/debug-test/daplink.html
gatemate_pgm:
- Name: gatemate pgm
Description: Cologne Chip GateMate FPGA Programmer. FT232H-based JTAG/SPI programmer cable
URL: https://colognechip.com/programmable-logic/gatemate/
gatemate_evb_jtag:
- Name: gatemate evb JTAG
Description: Cologne Chip GateMate JTAG programmer
URL: https://colognechip.com/programmable-logic/gatemate/
gatemate_evb_spi:
- Name: gatemate evb spi
Description: Cologne Chip GateMate SPI programmer
URL: https://colognechip.com/programmable-logic/gatemate/
dfu:
- Name: DFU interface
Description: DFU (Device Firmware Upgrade) USB device compatible with DFU protocol
URL: http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf
digilent:
- Name: digilent cable
Description: FT2232 JTAG / UART cable
diglent_b:
- Name: digilent cable
Description: digilent FT2232 JTAG / UART cable (interface B)
digilent_hs2:
- Name: digilent hs2 cable
Description: FT232H JTAG programmer cable from digilent
URL: https://store.digilentinc.com/jtag-hs2-programming-cable/
digilent_hs3:
- Name: digilent hs3
Description: JTAG programmer cable from digilent
URL: https://digilent.com/shop/jtag-hs3-programming-cable/
dirtyJtag:
- Name: dirty Jtag
Description: JTAG probe firmware for STM32F1
URL: https://github.com/jeanthom/DirtyJTAG
Note: Best to use release (1.4 or newer) or limit the --freq to 600000 with older releases.
New version `dirtyjtag2 <https://github.com/jeanthom/DirtyJTAG/tree/dirtyjtag2>`__ is also supported
efinix_spi_ft4232:
- Name: efinix SPI (ft4232)
Description: efinix SPI interface (FTDI4232 interface A)
efinix_jtag_ft4232:
- Name: efinix JTAG (ft4232)
Description: efinix JTAG interface (FTDI4232 interface B)
efinix_spi_ft2232:
- Name: efinix SPI (ft2232)
Description: efinix SPI interface (FTDI2232 interface A)
ft2232:
- Name: FT2232 C/D/H
Description: generic programmer cable based on Ftdi FT2232 (interface A)
- Name: Tang Nano (1k, 4k, 8k) USB-JTAG interface
Description: USB-JTAG/UART debugger based on BL702 microcontroler.
URL: https://github.com/sipeed/RV-Debugger-BL702
- Name: honeycomb USB-JTAG interface.
Description: FT2232C clone based on STM32F042 microcontroler
URL: https://github.com/Disasm/f042-ftdi
ft2232_b:
- Name: FT2232 C/D/H
Description: generic programmer cable based on Ftdi FT2232 (interface B)
ft231X:
- Name: FT231X
Description: generic USB<->UART converters in bitbang mode (with some limitations and workaround)
URL: https://www.ftdichip.com/old2020/Products/ICs/FT231X.html
ft232:
- Name: FT232H
Description: generic programmer cable based on Ftdi FT232Hx. One interface, MPSSE capable
URL: https://ftdichip.com/products/ft232hl/
ft232RL:
- Name: FT232RL
Description: generic USB<->UART converters in bitbang mode (with some limitations and workaround)
URL: https://ftdichip.com/products/ft232rl/
ft4232:
- Name: FT4232
Description: quad interface programmer cable. MPSSE capable.
URL: https://ftdichip.com/products/ft4232h-56q/
ecpix5-debug:
- Name: ecpix5-debug
Description: LambdaConcept ECPIX5 (45k/85k) UART/JTAG interface
URL: https://shop.lambdaconcept.com/home/46-ecpix-5.html
orbtrace:
- Name: orbtrace interface
Description: Open source FPGA-based debug and trace interface
URL: https://github.com/orbcode/orbtrace
tigard:
- Name: tigard
Description: SWD/JTAG/UART/SPI programmer based on Ftdi FT2232HQ
URL: https://www.crowdsupply.com/securinghw/tigard
usb-blaster:
- Name: intel USB Blaster I interface
Description: JTAG programmer cable from intel/altera (FT245 + EPM7064)
usb-blasterII:
- Name: intel USB Blaster II interface
Description: JTAG programmer cable from intel/altera (EZ-USB FX2 + EPM570)
URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_usb_blstr_ii_cable.pdf

View File

@ -3,22 +3,4 @@
Cables
######
* anlogic JTAG adapter
* `arm-usb-ocd-h <https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/>`__: jtag programmer cable from olimex
* `digilent_hs2 <https://store.digilentinc.com/jtag-hs2-programming-cable/>`__: jtag programmer cable from digilent
* `cmsisdap <https://os.mbed.com/docs/mbed-os/v6.11/debug-test/daplink.html>`__: ARM CMSIS DAP protocol interface (hid only)
* `Orbtrace <https://github.com/orbcode/orbtrace>`__: Open source FPGA-based debug and trace interface
* `DFU (Device Firmware Upgrade) <http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf>`__: USB device compatible with DFU protocol
* `DirtyJTAG <https://github.com/jeanthom/DirtyJTAG>`__: JTAG probe firmware for STM32F1
(Best to use release (1.4 or newer) or limit the --freq to 600000 with older releases.
New version `dirtyjtag2 <https://github.com/jeanthom/DirtyJTAG/tree/dirtyjtag2>`__ is also supported)
* Intel USB Blaster I & II : jtag programmer cable from intel/altera
* JTAG-HS3: jtag programmer cable from digilent
* FT2232: generic programmer cable based on Ftdi FT2232
* FT232RL and FT231X: generic USB<->UART converters in bitbang mode
* `Tang Nano USB-JTAG interface <https://github.com/diodep/ch55x_jtag>`__: FT2232C clone based on CH552 microcontroler
(with some limitations and workaround)
* `Tang Nano 4k USB-JTAG interface <https://github.com/sipeed/RV-Debugger-BL702>`__: USB-JTAG/UART debugger based on BL702 microcontroler.
* `Tigard <https://www.crowdsupply.com/securinghw/tigard>`__: SWD/JTAG/UART/SPI programmer based on Ftdi FT2232HQ
* `honeycomb USB-JTAG interface <https://github.com/Disasm/f042-ftdi>`__: FT2232C clone based on STM32F042 microcontroler
* `Cologne Chip GateMate FPGA Programmer <https://colognechip.com/programmable-logic/gatemate/>`__: FT232H-based JTAG/SPI programmer cable
.. include:: cable.inc

View File

@ -15,7 +15,9 @@ from data import (
ReadBoardDataFromYAML,
BoardDataToTable,
ReadFPGADataFromYAML,
FPGADataToTable
FPGADataToTable,
ReadCableDataFromYAML,
CableDataToTable
)
# -- General configuration ------------------------------------------------
@ -34,7 +36,7 @@ source_suffix = {
master_doc = "index"
project = u"openFPGALoader: universal utility for programming FPGA"
copyright = u"2019-2021, Gwenhael Goavec-Merou and contributors"
copyright = u"2019-2022, Gwenhael Goavec-Merou and contributors"
author = u"Gwenhael Goavec-Merou and contributors"
version = "latest"
@ -121,3 +123,7 @@ with (ROOT / "compatibility/boards.inc").open("w", encoding="utf-8") as wptr:
with (ROOT / "compatibility/fpga.inc").open("w", encoding="utf-8") as wptr:
wptr.write(FPGADataToTable(ReadFPGADataFromYAML()))
# -- Generate partial Cable compatibility page (`cable.inc`) with data from `cable.yml`
with (ROOT / "compatibility/cable.inc").open("w", encoding="utf-8") as wptr:
wptr.write(CableDataToTable(ReadCableDataFromYAML()))

View File

@ -80,3 +80,38 @@ def FPGADataToTable(data, tablefmt: str = "rst"):
headers=["Vendor", "Description", "Model", "Memory", "Flash"],
tablefmt=tablefmt
)
@dataclass
class Cable:
Name: str
Description: str
URL: str = None
Note: str = None
def ReadCableDataFromYAML():
with (ROOT / 'cable.yml').open('r', encoding='utf-8') as fptr:
data = yaml_load(fptr, yaml_loader)
for keyword, content in data.items():
data[keyword] = [Cable(**item) for item in content]
return data
def CableDataToTable(data, tablefmt: str = "rst"):
def processURL(name, url):
if url is None:
return f"{name}"
else:
return f"`{name} <{url}>`__"
return tabulate(
[
[
f"{vendor}",
processURL(item.Name, item.URL),
item.Description
] for vendor, content in data.items() for item in content
],
headers=["keyword", "Name", "Description"],
tablefmt=tablefmt
)