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, write to the *
27 * Free Software Foundation, Inc., *
28 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
29 ***************************************************************************/
35 #include "interfaces.h"
38 * This file includes declarations for all built-in jtag interfaces,
39 * which are then listed in the jtag_interfaces array.
41 * Dynamic loading can be implemented be searching for shared libraries
42 * that contain a jtag_interface structure that can added to this list.
46 extern struct jtag_interface zy1000_interface
;
47 #elif defined(BUILD_MINIDRIVER_DUMMY)
48 extern struct jtag_interface minidummy_interface
;
49 #else /* standard drivers */
50 #if BUILD_PARPORT == 1
51 extern struct jtag_interface parport_interface
;
54 extern struct jtag_interface dummy_interface
;
56 #if BUILD_FT2232_FTD2XX == 1
57 extern struct jtag_interface ft2232_interface
;
59 #if BUILD_FT2232_LIBFTDI == 1
60 extern struct jtag_interface ft2232_interface
;
63 extern struct jtag_interface ftdi_interface
;
65 #if BUILD_USB_BLASTER_LIBFTDI == 1 || BUILD_USB_BLASTER_FTD2XX == 1
66 extern struct jtag_interface usb_blaster_interface
;
68 #if BUILD_AMTJTAGACCEL == 1
69 extern struct jtag_interface amt_jtagaccel_interface
;
72 extern struct jtag_interface ep93xx_interface
;
74 #if BUILD_AT91RM9200 == 1
75 extern struct jtag_interface at91rm9200_interface
;
77 #if BUILD_GW16012 == 1
78 extern struct jtag_interface gw16012_interface
;
80 #if BUILD_PRESTO_LIBFTDI == 1 || BUILD_PRESTO_FTD2XX == 1
81 extern struct jtag_interface presto_interface
;
83 #if BUILD_USBPROG == 1
84 extern struct jtag_interface usbprog_interface
;
87 extern struct jtag_interface jlink_interface
;
89 #if BUILD_VSLLINK == 1
90 extern struct jtag_interface vsllink_interface
;
93 extern struct jtag_interface rlink_interface
;
96 extern struct jtag_interface ulink_interface
;
98 #if BUILD_ARMJTAGEW == 1
99 extern struct jtag_interface armjtagew_interface
;
101 #if BUILD_BUSPIRATE == 1
102 extern struct jtag_interface buspirate_interface
;
104 #if BUILD_REMOTE_BITBANG == 1
105 extern struct jtag_interface remote_bitbang_interface
;
107 #if BUILD_STLINK == 1
108 extern struct jtag_interface stlink_interface
;
111 extern struct jtag_interface osbdm_interface
;
113 #if BUILD_OPENDOUS == 1
114 extern struct jtag_interface opendous_interface
;
116 #if BUILD_SYSFSGPIO == 1
117 extern struct jtag_interface sysfsgpio_interface
;
119 #endif /* standard drivers */
122 * The list of built-in JTAG interfaces, containing entries for those
123 * drivers that were enabled by the @c configure script.
125 * The list should be defined to contain either one minidriver interface
126 * or some number of standard driver interfaces, never both.
128 struct jtag_interface
*jtag_interfaces
[] = {
129 #if BUILD_ZY1000 == 1
131 #elif defined(BUILD_MINIDRIVER_DUMMY)
132 &minidummy_interface
,
133 #else /* standard drivers */
134 #if BUILD_PARPORT == 1
140 #if BUILD_FT2232_FTD2XX == 1
143 #if BUILD_FT2232_LIBFTDI == 1
149 #if BUILD_USB_BLASTER_LIBFTDI == 1 || BUILD_USB_BLASTER_FTD2XX == 1
150 &usb_blaster_interface
,
152 #if BUILD_AMTJTAGACCEL == 1
153 &amt_jtagaccel_interface
,
155 #if BUILD_EP93XX == 1
158 #if BUILD_AT91RM9200 == 1
159 &at91rm9200_interface
,
161 #if BUILD_GW16012 == 1
164 #if BUILD_PRESTO_LIBFTDI == 1 || BUILD_PRESTO_FTD2XX == 1
167 #if BUILD_USBPROG == 1
173 #if BUILD_VSLLINK == 1
182 #if BUILD_ARMJTAGEW == 1
183 &armjtagew_interface
,
185 #if BUILD_BUSPIRATE == 1
186 &buspirate_interface
,
188 #if BUILD_REMOTE_BITBANG == 1
189 &remote_bitbang_interface
,
191 #if BUILD_STLINK == 1
197 #if BUILD_OPENDOUS == 1
200 #if BUILD_SYSFSGPIO == 1
201 &sysfsgpio_interface
,
203 #endif /* standard drivers */
207 void jtag_interface_modules_load(const char *path
)
209 /* @todo: implement dynamic module loading for JTAG interface drivers */