67bbb3b366cbde9d05ad7e8ce3a249d009d45973
[fw/openocd] / src / jtag / interfaces.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2
3 /***************************************************************************
4  *   Copyright (C) 2005 by Dominic Rath                                    *
5  *   Dominic.Rath@gmx.de                                                   *
6  *                                                                         *
7  *   Copyright (C) 2007,2008 Ã˜yvind Harboe                                 *
8  *   oyvind.harboe@zylin.com                                               *
9  *                                                                         *
10  *   Copyright (C) 2009 SoftPLC Corporation                                *
11  *       http://softplc.com                                                *
12  *   dick@softplc.com                                                      *
13  *                                                                         *
14  *   Copyright (C) 2009 Zachary T Welch                                    *
15  *   zw@superlucidity.net                                                  *
16  *                                                                         *
17  *   Copyright (C) 2020, Ampere Computing LLC                              *
18  ***************************************************************************/
19
20 #ifdef HAVE_CONFIG_H
21 #include "config.h"
22 #endif
23
24 #include "interfaces.h"
25
26 /** @file
27  * This file includes declarations for all built-in jtag interfaces,
28  * which are then listed in the adapter_drivers array.
29  *
30  * Dynamic loading can be implemented be searching for shared libraries
31  * that contain an adapter_driver structure that can added to this list.
32  */
33
34 #if BUILD_PARPORT == 1
35 extern struct adapter_driver parport_adapter_driver;
36 #endif
37 #if BUILD_DUMMY == 1
38 extern struct adapter_driver dummy_adapter_driver;
39 #endif
40 #if BUILD_FTDI == 1
41 extern struct adapter_driver ftdi_adapter_driver;
42 #endif
43 #if BUILD_USB_BLASTER == 1 || BUILD_USB_BLASTER_2 == 1
44 extern struct adapter_driver usb_blaster_adapter_driver;
45 #endif
46 #if BUILD_ESP_USB_JTAG == 1
47 extern struct adapter_driver esp_usb_adapter_driver;
48 #endif
49 #if BUILD_JTAG_VPI == 1
50 extern struct adapter_driver jtag_vpi_adapter_driver;
51 #endif
52 #if BUILD_VDEBUG == 1
53 extern struct adapter_driver vdebug_adapter_driver;
54 #endif
55 #if BUILD_JTAG_DPI == 1
56 extern struct adapter_driver jtag_dpi_adapter_driver;
57 #endif
58 #if BUILD_FT232R == 1
59 extern struct adapter_driver ft232r_adapter_driver;
60 #endif
61 #if BUILD_AMTJTAGACCEL == 1
62 extern struct adapter_driver amt_jtagaccel_adapter_driver;
63 #endif
64 #if BUILD_EP93XX == 1
65 extern struct adapter_driver ep93xx_adapter_driver;
66 #endif
67 #if BUILD_AT91RM9200 == 1
68 extern struct adapter_driver at91rm9200_adapter_driver;
69 #endif
70 #if BUILD_GW16012 == 1
71 extern struct adapter_driver gw16012_adapter_driver;
72 #endif
73 #if BUILD_PRESTO
74 extern struct adapter_driver presto_adapter_driver;
75 #endif
76 #if BUILD_USBPROG == 1
77 extern struct adapter_driver usbprog_adapter_driver;
78 #endif
79 #if BUILD_OPENJTAG == 1
80 extern struct adapter_driver openjtag_adapter_driver;
81 #endif
82 #if BUILD_JLINK == 1
83 extern struct adapter_driver jlink_adapter_driver;
84 #endif
85 #if BUILD_VSLLINK == 1
86 extern struct adapter_driver vsllink_adapter_driver;
87 #endif
88 #if BUILD_RLINK == 1
89 extern struct adapter_driver rlink_adapter_driver;
90 #endif
91 #if BUILD_ULINK == 1
92 extern struct adapter_driver ulink_adapter_driver;
93 #endif
94 #if BUILD_ARMJTAGEW == 1
95 extern struct adapter_driver armjtagew_adapter_driver;
96 #endif
97 #if BUILD_BUSPIRATE == 1
98 extern struct adapter_driver buspirate_adapter_driver;
99 #endif
100 #if BUILD_REMOTE_BITBANG == 1
101 extern struct adapter_driver remote_bitbang_adapter_driver;
102 #endif
103 #if BUILD_HLADAPTER == 1
104 extern struct adapter_driver hl_adapter_driver;
105 #endif
106 #if BUILD_OSBDM == 1
107 extern struct adapter_driver osbdm_adapter_driver;
108 #endif
109 #if BUILD_OPENDOUS == 1
110 extern struct adapter_driver opendous_adapter_driver;
111 #endif
112 #if BUILD_SYSFSGPIO == 1
113 extern struct adapter_driver sysfsgpio_adapter_driver;
114 #endif
115 #if BUILD_LINUXGPIOD == 1
116 extern struct adapter_driver linuxgpiod_adapter_driver;
117 #endif
118 #if BUILD_XLNX_PCIE_XVC == 1
119 extern struct adapter_driver xlnx_pcie_xvc_adapter_driver;
120 #endif
121 #if BUILD_AICE == 1
122 extern struct adapter_driver aice_adapter_driver;
123 #endif
124 #if BUILD_BCM2835GPIO == 1
125 extern struct adapter_driver bcm2835gpio_adapter_driver;
126 #endif
127 #if BUILD_CMSIS_DAP_USB == 1 || BUILD_CMSIS_DAP_HID == 1
128 extern struct adapter_driver cmsis_dap_adapter_driver;
129 #endif
130 #if BUILD_KITPROG == 1
131 extern struct adapter_driver kitprog_adapter_driver;
132 #endif
133 #if BUILD_IMX_GPIO == 1
134 extern struct adapter_driver imx_gpio_adapter_driver;
135 #endif
136 #if BUILD_XDS110 == 1
137 extern struct adapter_driver xds110_adapter_driver;
138 #endif
139 #if BUILD_HLADAPTER_STLINK == 1
140 extern struct adapter_driver stlink_dap_adapter_driver;
141 #endif
142 #if BUILD_RSHIM == 1
143 extern struct adapter_driver rshim_dap_adapter_driver;
144 #endif
145 #if BUILD_AM335XGPIO == 1
146 extern struct adapter_driver am335xgpio_adapter_driver;
147 #endif
148
149 /**
150  * The list of built-in JTAG interfaces, containing entries for those
151  * drivers that were enabled by the @c configure script.
152  */
153 struct adapter_driver *adapter_drivers[] = {
154 #if BUILD_PARPORT == 1
155                 &parport_adapter_driver,
156 #endif
157 #if BUILD_DUMMY == 1
158                 &dummy_adapter_driver,
159 #endif
160 #if BUILD_FTDI == 1
161                 &ftdi_adapter_driver,
162 #endif
163 #if BUILD_USB_BLASTER || BUILD_USB_BLASTER_2 == 1
164                 &usb_blaster_adapter_driver,
165 #endif
166 #if BUILD_ESP_USB_JTAG == 1
167                 &esp_usb_adapter_driver,
168 #endif
169 #if BUILD_JTAG_VPI == 1
170                 &jtag_vpi_adapter_driver,
171 #endif
172 #if BUILD_VDEBUG == 1
173                 &vdebug_adapter_driver,
174 #endif
175 #if BUILD_JTAG_DPI == 1
176                 &jtag_dpi_adapter_driver,
177 #endif
178 #if BUILD_FT232R == 1
179                 &ft232r_adapter_driver,
180 #endif
181 #if BUILD_AMTJTAGACCEL == 1
182                 &amt_jtagaccel_adapter_driver,
183 #endif
184 #if BUILD_EP93XX == 1
185                 &ep93xx_adapter_driver,
186 #endif
187 #if BUILD_AT91RM9200 == 1
188                 &at91rm9200_adapter_driver,
189 #endif
190 #if BUILD_GW16012 == 1
191                 &gw16012_adapter_driver,
192 #endif
193 #if BUILD_PRESTO
194                 &presto_adapter_driver,
195 #endif
196 #if BUILD_USBPROG == 1
197                 &usbprog_adapter_driver,
198 #endif
199 #if BUILD_OPENJTAG == 1
200                 &openjtag_adapter_driver,
201 #endif
202 #if BUILD_JLINK == 1
203                 &jlink_adapter_driver,
204 #endif
205 #if BUILD_VSLLINK == 1
206                 &vsllink_adapter_driver,
207 #endif
208 #if BUILD_RLINK == 1
209                 &rlink_adapter_driver,
210 #endif
211 #if BUILD_ULINK == 1
212                 &ulink_adapter_driver,
213 #endif
214 #if BUILD_ARMJTAGEW == 1
215                 &armjtagew_adapter_driver,
216 #endif
217 #if BUILD_BUSPIRATE == 1
218                 &buspirate_adapter_driver,
219 #endif
220 #if BUILD_REMOTE_BITBANG == 1
221                 &remote_bitbang_adapter_driver,
222 #endif
223 #if BUILD_HLADAPTER == 1
224                 &hl_adapter_driver,
225 #endif
226 #if BUILD_OSBDM == 1
227                 &osbdm_adapter_driver,
228 #endif
229 #if BUILD_OPENDOUS == 1
230                 &opendous_adapter_driver,
231 #endif
232 #if BUILD_SYSFSGPIO == 1
233                 &sysfsgpio_adapter_driver,
234 #endif
235 #if BUILD_LINUXGPIOD == 1
236                 &linuxgpiod_adapter_driver,
237 #endif
238 #if BUILD_XLNX_PCIE_XVC == 1
239                 &xlnx_pcie_xvc_adapter_driver,
240 #endif
241 #if BUILD_AICE == 1
242                 &aice_adapter_driver,
243 #endif
244 #if BUILD_BCM2835GPIO == 1
245                 &bcm2835gpio_adapter_driver,
246 #endif
247 #if BUILD_CMSIS_DAP_USB == 1 || BUILD_CMSIS_DAP_HID == 1
248                 &cmsis_dap_adapter_driver,
249 #endif
250 #if BUILD_KITPROG == 1
251                 &kitprog_adapter_driver,
252 #endif
253 #if BUILD_IMX_GPIO == 1
254                 &imx_gpio_adapter_driver,
255 #endif
256 #if BUILD_XDS110 == 1
257                 &xds110_adapter_driver,
258 #endif
259 #if BUILD_HLADAPTER_STLINK == 1
260                 &stlink_dap_adapter_driver,
261 #endif
262 #if BUILD_RSHIM == 1
263                 &rshim_dap_adapter_driver,
264 #endif
265 #if BUILD_AM335XGPIO == 1
266                 &am335xgpio_adapter_driver,
267 #endif
268                 NULL,
269         };