1 /***************************************************************************
2 * Copyright (C) 2005 by Dominic Rath *
3 * Dominic.Rath@gmx.de *
5 * Copyright (C) 2007,2008 Øyvind Harboe *
6 * oyvind.harboe@zylin.com *
8 * Copyright (C) 2009 SoftPLC Corporation *
12 * Copyright (C) 2009 Zachary T Welch *
13 * zw@superlucidity.net *
15 * Copyright (C) 2020, Ampere Computing LLC *
17 * This program is free software; you can redistribute it and/or modify *
18 * it under the terms of the GNU General Public License as published by *
19 * the Free Software Foundation; either version 2 of the License, or *
20 * (at your option) any later version. *
22 * This program is distributed in the hope that it will be useful, *
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
25 * GNU General Public License for more details. *
27 * You should have received a copy of the GNU General Public License *
28 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
29 ***************************************************************************/
35 #include "interfaces.h"
38 * This file includes declarations for all built-in jtag interfaces,
39 * which are then listed in the adapter_drivers array.
41 * Dynamic loading can be implemented be searching for shared libraries
42 * that contain an adapter_driver structure that can added to this list.
46 extern struct adapter_driver zy1000_adapter_driver;
47 #elif defined(BUILD_MINIDRIVER_DUMMY)
48 extern struct adapter_driver minidummy_adapter_driver;
49 #else /* standard drivers */
50 #if BUILD_PARPORT == 1
51 extern struct adapter_driver parport_adapter_driver;
54 extern struct adapter_driver dummy_adapter_driver;
57 extern struct adapter_driver ftdi_adapter_driver;
59 #if BUILD_USB_BLASTER == 1 || BUILD_USB_BLASTER_2 == 1
60 extern struct adapter_driver usb_blaster_adapter_driver;
62 #if BUILD_JTAG_VPI == 1
63 extern struct adapter_driver jtag_vpi_adapter_driver;
65 #if BUILD_JTAG_DPI == 1
66 extern struct adapter_driver jtag_dpi_adapter_driver;
69 extern struct adapter_driver ft232r_adapter_driver;
71 #if BUILD_AMTJTAGACCEL == 1
72 extern struct adapter_driver amt_jtagaccel_adapter_driver;
75 extern struct adapter_driver ep93xx_adapter_driver;
77 #if BUILD_AT91RM9200 == 1
78 extern struct adapter_driver at91rm9200_adapter_driver;
80 #if BUILD_GW16012 == 1
81 extern struct adapter_driver gw16012_adapter_driver;
84 extern struct adapter_driver presto_adapter_driver;
86 #if BUILD_USBPROG == 1
87 extern struct adapter_driver usbprog_adapter_driver;
89 #if BUILD_OPENJTAG == 1
90 extern struct adapter_driver openjtag_adapter_driver;
93 extern struct adapter_driver jlink_adapter_driver;
95 #if BUILD_VSLLINK == 1
96 extern struct adapter_driver vsllink_adapter_driver;
99 extern struct adapter_driver rlink_adapter_driver;
102 extern struct adapter_driver ulink_adapter_driver;
104 #if BUILD_ARMJTAGEW == 1
105 extern struct adapter_driver armjtagew_adapter_driver;
107 #if BUILD_BUSPIRATE == 1
108 extern struct adapter_driver buspirate_adapter_driver;
110 #if BUILD_REMOTE_BITBANG == 1
111 extern struct adapter_driver remote_bitbang_adapter_driver;
113 #if BUILD_HLADAPTER == 1
114 extern struct adapter_driver hl_adapter_driver;
117 extern struct adapter_driver osbdm_adapter_driver;
119 #if BUILD_OPENDOUS == 1
120 extern struct adapter_driver opendous_adapter_driver;
122 #if BUILD_SYSFSGPIO == 1
123 extern struct adapter_driver sysfsgpio_adapter_driver;
125 #if BUILD_LINUXGPIOD == 1
126 extern struct adapter_driver linuxgpiod_adapter_driver;
128 #if BUILD_XLNX_PCIE_XVC == 1
129 extern struct adapter_driver xlnx_pcie_xvc_adapter_driver;
132 extern struct adapter_driver aice_adapter_driver;
134 #if BUILD_BCM2835GPIO == 1
135 extern struct adapter_driver bcm2835gpio_adapter_driver;
137 #if BUILD_CMSIS_DAP_USB == 1 || BUILD_CMSIS_DAP_HID == 1
138 extern struct adapter_driver cmsis_dap_adapter_driver;
140 #if BUILD_KITPROG == 1
141 extern struct adapter_driver kitprog_adapter_driver;
143 #if BUILD_IMX_GPIO == 1
144 extern struct adapter_driver imx_gpio_adapter_driver;
146 #if BUILD_XDS110 == 1
147 extern struct adapter_driver xds110_adapter_driver;
149 #if BUILD_HLADAPTER_STLINK == 1
150 extern struct adapter_driver stlink_dap_adapter_driver;
153 extern struct adapter_driver rshim_dap_adapter_driver;
155 #endif /* standard drivers */
158 * The list of built-in JTAG interfaces, containing entries for those
159 * drivers that were enabled by the @c configure script.
161 * The list should be defined to contain either one minidriver interface
162 * or some number of standard driver interfaces, never both.
164 struct adapter_driver *adapter_drivers[] = {
165 #if BUILD_ZY1000 == 1
166 &zy1000_adapter_driver,
167 #elif defined(BUILD_MINIDRIVER_DUMMY)
168 &minidummy_adapter_driver,
169 #else /* standard drivers */
170 #if BUILD_PARPORT == 1
171 &parport_adapter_driver,
174 &dummy_adapter_driver,
177 &ftdi_adapter_driver,
179 #if BUILD_USB_BLASTER || BUILD_USB_BLASTER_2 == 1
180 &usb_blaster_adapter_driver,
182 #if BUILD_JTAG_VPI == 1
183 &jtag_vpi_adapter_driver,
185 #if BUILD_JTAG_DPI == 1
186 &jtag_dpi_adapter_driver,
188 #if BUILD_FT232R == 1
189 &ft232r_adapter_driver,
191 #if BUILD_AMTJTAGACCEL == 1
192 &amt_jtagaccel_adapter_driver,
194 #if BUILD_EP93XX == 1
195 &ep93xx_adapter_driver,
197 #if BUILD_AT91RM9200 == 1
198 &at91rm9200_adapter_driver,
200 #if BUILD_GW16012 == 1
201 &gw16012_adapter_driver,
204 &presto_adapter_driver,
206 #if BUILD_USBPROG == 1
207 &usbprog_adapter_driver,
209 #if BUILD_OPENJTAG == 1
210 &openjtag_adapter_driver,
213 &jlink_adapter_driver,
215 #if BUILD_VSLLINK == 1
216 &vsllink_adapter_driver,
219 &rlink_adapter_driver,
222 &ulink_adapter_driver,
224 #if BUILD_ARMJTAGEW == 1
225 &armjtagew_adapter_driver,
227 #if BUILD_BUSPIRATE == 1
228 &buspirate_adapter_driver,
230 #if BUILD_REMOTE_BITBANG == 1
231 &remote_bitbang_adapter_driver,
233 #if BUILD_HLADAPTER == 1
237 &osbdm_adapter_driver,
239 #if BUILD_OPENDOUS == 1
240 &opendous_adapter_driver,
242 #if BUILD_SYSFSGPIO == 1
243 &sysfsgpio_adapter_driver,
245 #if BUILD_LINUXGPIOD == 1
246 &linuxgpiod_adapter_driver,
248 #if BUILD_XLNX_PCIE_XVC == 1
249 &xlnx_pcie_xvc_adapter_driver,
252 &aice_adapter_driver,
254 #if BUILD_BCM2835GPIO == 1
255 &bcm2835gpio_adapter_driver,
257 #if BUILD_CMSIS_DAP_USB == 1 || BUILD_CMSIS_DAP_HID == 1
258 &cmsis_dap_adapter_driver,
260 #if BUILD_KITPROG == 1
261 &kitprog_adapter_driver,
263 #if BUILD_IMX_GPIO == 1
264 &imx_gpio_adapter_driver,
266 #if BUILD_XDS110 == 1
267 &xds110_adapter_driver,
269 #if BUILD_HLADAPTER_STLINK == 1
270 &stlink_dap_adapter_driver,
273 &rshim_dap_adapter_driver,
275 #endif /* standard drivers */