17d45415ae56581b0794b70d1bd1490504ec0777
[openocd.git] / src / jtag / interfaces.c
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 * This program is free software; you can redistribute it and/or modify *
16 * it under the terms of the GNU General Public License as published by *
17 * the Free Software Foundation; either version 2 of the License, or *
18 * (at your option) any later version. *
19 * *
20 * This program is distributed in the hope that it will be useful, *
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
23 * GNU General Public License for more details. *
24 * *
25 * You should have received a copy of the GNU General Public License *
26 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
27 ***************************************************************************/
28
29 #ifdef HAVE_CONFIG_H
30 #include "config.h"
31 #endif
32
33 #include "interfaces.h"
34
35 /** @file
36 * This file includes declarations for all built-in jtag interfaces,
37 * which are then listed in the adapter_drivers array.
38 *
39 * Dynamic loading can be implemented be searching for shared libraries
40 * that contain an adapter_driver structure that can added to this list.
41 */
42
43 #if BUILD_ZY1000 == 1
44 extern struct adapter_driver zy1000_adapter_driver;
45 #elif defined(BUILD_MINIDRIVER_DUMMY)
46 extern struct adapter_driver minidummy_adapter_driver;
47 #else /* standard drivers */
48 #if BUILD_PARPORT == 1
49 extern struct adapter_driver parport_adapter_driver;
50 #endif
51 #if BUILD_DUMMY == 1
52 extern struct adapter_driver dummy_adapter_driver;
53 #endif
54 #if BUILD_FTDI == 1
55 extern struct adapter_driver ftdi_adapter_driver;
56 #endif
57 #if BUILD_USB_BLASTER == 1 || BUILD_USB_BLASTER_2 == 1
58 extern struct adapter_driver usb_blaster_adapter_driver;
59 #endif
60 #if BUILD_JTAG_VPI == 1
61 extern struct adapter_driver jtag_vpi_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_AICE == 1
121 extern struct adapter_driver aice_adapter_driver;
122 #endif
123 #if BUILD_BCM2835GPIO == 1
124 extern struct adapter_driver bcm2835gpio_adapter_driver;
125 #endif
126 #if BUILD_CMSIS_DAP == 1
127 extern struct adapter_driver cmsis_dap_adapter_driver;
128 #endif
129 #if BUILD_KITPROG == 1
130 extern struct adapter_driver kitprog_adapter_driver;
131 #endif
132 #if BUILD_IMX_GPIO == 1
133 extern struct adapter_driver imx_gpio_adapter_driver;
134 #endif
135 #if BUILD_XDS110 == 1
136 extern struct adapter_driver xds110_adapter_driver;
137 #endif
138 #if BUILD_HLADAPTER == 1
139 extern struct adapter_driver stlink_dap_adapter_driver;
140 #endif
141 #endif /* standard drivers */
142
143 /**
144 * The list of built-in JTAG interfaces, containing entries for those
145 * drivers that were enabled by the @c configure script.
146 *
147 * The list should be defined to contain either one minidriver interface
148 * or some number of standard driver interfaces, never both.
149 */
150 struct adapter_driver *adapter_drivers[] = {
151 #if BUILD_ZY1000 == 1
152 &zy1000_adapter_driver,
153 #elif defined(BUILD_MINIDRIVER_DUMMY)
154 &minidummy_adapter_driver,
155 #else /* standard 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_FT232R == 1
172 &ft232r_adapter_driver,
173 #endif
174 #if BUILD_AMTJTAGACCEL == 1
175 &amt_jtagaccel_adapter_driver,
176 #endif
177 #if BUILD_EP93XX == 1
178 &ep93xx_adapter_driver,
179 #endif
180 #if BUILD_AT91RM9200 == 1
181 &at91rm9200_adapter_driver,
182 #endif
183 #if BUILD_GW16012 == 1
184 &gw16012_adapter_driver,
185 #endif
186 #if BUILD_PRESTO
187 &presto_adapter_driver,
188 #endif
189 #if BUILD_USBPROG == 1
190 &usbprog_adapter_driver,
191 #endif
192 #if BUILD_OPENJTAG == 1
193 &openjtag_adapter_driver,
194 #endif
195 #if BUILD_JLINK == 1
196 &jlink_adapter_driver,
197 #endif
198 #if BUILD_VSLLINK == 1
199 &vsllink_adapter_driver,
200 #endif
201 #if BUILD_RLINK == 1
202 &rlink_adapter_driver,
203 #endif
204 #if BUILD_ULINK == 1
205 &ulink_adapter_driver,
206 #endif
207 #if BUILD_ARMJTAGEW == 1
208 &armjtagew_adapter_driver,
209 #endif
210 #if BUILD_BUSPIRATE == 1
211 &buspirate_adapter_driver,
212 #endif
213 #if BUILD_REMOTE_BITBANG == 1
214 &remote_bitbang_adapter_driver,
215 #endif
216 #if BUILD_HLADAPTER == 1
217 &hl_adapter_driver,
218 #endif
219 #if BUILD_OSBDM == 1
220 &osbdm_adapter_driver,
221 #endif
222 #if BUILD_OPENDOUS == 1
223 &opendous_adapter_driver,
224 #endif
225 #if BUILD_SYSFSGPIO == 1
226 &sysfsgpio_adapter_driver,
227 #endif
228 #if BUILD_AICE == 1
229 &aice_adapter_driver,
230 #endif
231 #if BUILD_BCM2835GPIO == 1
232 &bcm2835gpio_adapter_driver,
233 #endif
234 #if BUILD_CMSIS_DAP == 1
235 &cmsis_dap_adapter_driver,
236 #endif
237 #if BUILD_KITPROG == 1
238 &kitprog_adapter_driver,
239 #endif
240 #if BUILD_IMX_GPIO == 1
241 &imx_gpio_adapter_driver,
242 #endif
243 #if BUILD_XDS110 == 1
244 &xds110_adapter_driver,
245 #endif
246 #if BUILD_HLADAPTER == 1
247 &stlink_dap_adapter_driver,
248 #endif
249 #endif /* standard drivers */
250 NULL,
251 };
252
253 void adapter_driver_modules_load(const char *path)
254 {
255 /* @todo: implement dynamic module loading for adapter drivers */
256 }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)