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