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 * 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. *
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. *
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 ***************************************************************************/
33 #include "interfaces.h"
36 * This file includes declarations for all built-in jtag interfaces,
37 * which are then listed in the adapter_drivers array.
39 * Dynamic loading can be implemented be searching for shared libraries
40 * that contain an adapter_driver structure that can added to this list.
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;
52 extern struct adapter_driver dummy_adapter_driver;
55 extern struct adapter_driver ftdi_adapter_driver;
57 #if BUILD_USB_BLASTER == 1 || BUILD_USB_BLASTER_2 == 1
58 extern struct adapter_driver usb_blaster_adapter_driver;
60 #if BUILD_JTAG_VPI == 1
61 extern struct adapter_driver jtag_vpi_adapter_driver;
64 extern struct adapter_driver ft232r_adapter_driver;
66 #if BUILD_AMTJTAGACCEL == 1
67 extern struct adapter_driver amt_jtagaccel_adapter_driver;
70 extern struct adapter_driver ep93xx_adapter_driver;
72 #if BUILD_AT91RM9200 == 1
73 extern struct adapter_driver at91rm9200_adapter_driver;
75 #if BUILD_GW16012 == 1
76 extern struct adapter_driver gw16012_adapter_driver;
79 extern struct adapter_driver presto_adapter_driver;
81 #if BUILD_USBPROG == 1
82 extern struct adapter_driver usbprog_adapter_driver;
84 #if BUILD_OPENJTAG == 1
85 extern struct adapter_driver openjtag_adapter_driver;
88 extern struct adapter_driver jlink_adapter_driver;
90 #if BUILD_VSLLINK == 1
91 extern struct adapter_driver vsllink_adapter_driver;
94 extern struct adapter_driver rlink_adapter_driver;
97 extern struct adapter_driver ulink_adapter_driver;
99 #if BUILD_ARMJTAGEW == 1
100 extern struct adapter_driver armjtagew_adapter_driver;
102 #if BUILD_BUSPIRATE == 1
103 extern struct adapter_driver buspirate_adapter_driver;
105 #if BUILD_REMOTE_BITBANG == 1
106 extern struct adapter_driver remote_bitbang_adapter_driver;
108 #if BUILD_HLADAPTER == 1
109 extern struct adapter_driver hl_adapter_driver;
112 extern struct adapter_driver osbdm_adapter_driver;
114 #if BUILD_OPENDOUS == 1
115 extern struct adapter_driver opendous_adapter_driver;
117 #if BUILD_SYSFSGPIO == 1
118 extern struct adapter_driver sysfsgpio_adapter_driver;
121 extern struct adapter_driver aice_adapter_driver;
123 #if BUILD_BCM2835GPIO == 1
124 extern struct adapter_driver bcm2835gpio_adapter_driver;
126 #if BUILD_CMSIS_DAP == 1
127 extern struct adapter_driver cmsis_dap_adapter_driver;
129 #if BUILD_KITPROG == 1
130 extern struct adapter_driver kitprog_adapter_driver;
132 #if BUILD_IMX_GPIO == 1
133 extern struct adapter_driver imx_gpio_adapter_driver;
135 #if BUILD_XDS110 == 1
136 extern struct adapter_driver xds110_adapter_driver;
138 #if BUILD_HLADAPTER == 1
139 extern struct adapter_driver stlink_dap_adapter_driver;
141 #endif /* standard drivers */
144 * The list of built-in JTAG interfaces, containing entries for those
145 * drivers that were enabled by the @c configure script.
147 * The list should be defined to contain either one minidriver interface
148 * or some number of standard driver interfaces, never both.
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,
160 &dummy_adapter_driver,
163 &ftdi_adapter_driver,
165 #if BUILD_USB_BLASTER || BUILD_USB_BLASTER_2 == 1
166 &usb_blaster_adapter_driver,
168 #if BUILD_JTAG_VPI == 1
169 &jtag_vpi_adapter_driver,
171 #if BUILD_FT232R == 1
172 &ft232r_adapter_driver,
174 #if BUILD_AMTJTAGACCEL == 1
175 &amt_jtagaccel_adapter_driver,
177 #if BUILD_EP93XX == 1
178 &ep93xx_adapter_driver,
180 #if BUILD_AT91RM9200 == 1
181 &at91rm9200_adapter_driver,
183 #if BUILD_GW16012 == 1
184 &gw16012_adapter_driver,
187 &presto_adapter_driver,
189 #if BUILD_USBPROG == 1
190 &usbprog_adapter_driver,
192 #if BUILD_OPENJTAG == 1
193 &openjtag_adapter_driver,
196 &jlink_adapter_driver,
198 #if BUILD_VSLLINK == 1
199 &vsllink_adapter_driver,
202 &rlink_adapter_driver,
205 &ulink_adapter_driver,
207 #if BUILD_ARMJTAGEW == 1
208 &armjtagew_adapter_driver,
210 #if BUILD_BUSPIRATE == 1
211 &buspirate_adapter_driver,
213 #if BUILD_REMOTE_BITBANG == 1
214 &remote_bitbang_adapter_driver,
216 #if BUILD_HLADAPTER == 1
220 &osbdm_adapter_driver,
222 #if BUILD_OPENDOUS == 1
223 &opendous_adapter_driver,
225 #if BUILD_SYSFSGPIO == 1
226 &sysfsgpio_adapter_driver,
229 &aice_adapter_driver,
231 #if BUILD_BCM2835GPIO == 1
232 &bcm2835gpio_adapter_driver,
234 #if BUILD_CMSIS_DAP == 1
235 &cmsis_dap_adapter_driver,
237 #if BUILD_KITPROG == 1
238 &kitprog_adapter_driver,
240 #if BUILD_IMX_GPIO == 1
241 &imx_gpio_adapter_driver,
243 #if BUILD_XDS110 == 1
244 &xds110_adapter_driver,
246 #if BUILD_HLADAPTER == 1
247 &stlink_dap_adapter_driver,
249 #endif /* standard drivers */
253 void adapter_driver_modules_load(const char *path)
255 /* @todo: implement dynamic module loading for adapter drivers */