Cadence virtual debug interface (vdebug) integration
[fw/openocd] / src / jtag / interfaces.c
index 4937adbac0d0c3d7021838205f1e585467c19e6c..ddf70cc240babb93a368e3c228a2aeecca047359 100644 (file)
@@ -12,6 +12,8 @@
  *   Copyright (C) 2009 Zachary T Welch                                    *
  *   zw@superlucidity.net                                                  *
  *                                                                         *
+ *   Copyright (C) 2020, Ampere Computing LLC                              *
+ *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   the Free Software Foundation; either version 2 of the License, or     *
@@ -23,9 +25,7 @@
  *   GNU General Public License for more details.                          *
  *                                                                         *
  *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
 
 /** @file
  * This file includes declarations for all built-in jtag interfaces,
- * which are then listed in the jtag_interfaces array.
+ * which are then listed in the adapter_drivers array.
  *
  * Dynamic loading can be implemented be searching for shared libraries
- * that contain a jtag_interface structure that can added to this list.
+ * that contain an adapter_driver structure that can added to this list.
  */
 
-#if BUILD_ZY1000 == 1
-extern struct jtag_interface zy1000_interface;
-#elif defined(BUILD_MINIDRIVER_DUMMY)
-extern struct jtag_interface minidummy_interface;
-#else /* standard drivers */
 #if BUILD_PARPORT == 1
-extern struct jtag_interface parport_interface;
+extern struct adapter_driver parport_adapter_driver;
 #endif
 #if BUILD_DUMMY == 1
-extern struct jtag_interface dummy_interface;
+extern struct adapter_driver dummy_adapter_driver;
+#endif
+#if BUILD_FTDI == 1
+extern struct adapter_driver ftdi_adapter_driver;
+#endif
+#if BUILD_USB_BLASTER == 1 || BUILD_USB_BLASTER_2 == 1
+extern struct adapter_driver usb_blaster_adapter_driver;
 #endif
-#if BUILD_FT2232_FTD2XX == 1
-extern struct jtag_interface ft2232_interface;
+#if BUILD_JTAG_VPI == 1
+extern struct adapter_driver jtag_vpi_adapter_driver;
 #endif
-#if BUILD_FT2232_LIBFTDI == 1
-extern struct jtag_interface ft2232_interface;
+#if BUILD_VDEBUG == 1
+extern struct adapter_driver vdebug_adapter_driver;
 #endif
-#if BUILD_USB_BLASTER_LIBFTDI == 1 || BUILD_USB_BLASTER_FTD2XX == 1
-extern struct jtag_interface usb_blaster_interface;
+#if BUILD_JTAG_DPI == 1
+extern struct adapter_driver jtag_dpi_adapter_driver;
+#endif
+#if BUILD_FT232R == 1
+extern struct adapter_driver ft232r_adapter_driver;
 #endif
 #if BUILD_AMTJTAGACCEL == 1
-extern struct jtag_interface amt_jtagaccel_interface;
+extern struct adapter_driver amt_jtagaccel_adapter_driver;
 #endif
 #if BUILD_EP93XX == 1
-extern struct jtag_interface ep93xx_interface;
+extern struct adapter_driver ep93xx_adapter_driver;
 #endif
 #if BUILD_AT91RM9200 == 1
-extern struct jtag_interface at91rm9200_interface;
+extern struct adapter_driver at91rm9200_adapter_driver;
 #endif
 #if BUILD_GW16012 == 1
-extern struct jtag_interface gw16012_interface;
+extern struct adapter_driver gw16012_adapter_driver;
 #endif
-#if BUILD_PRESTO_LIBFTDI == 1 || BUILD_PRESTO_FTD2XX == 1
-extern struct jtag_interface presto_interface;
+#if BUILD_PRESTO
+extern struct adapter_driver presto_adapter_driver;
 #endif
 #if BUILD_USBPROG == 1
-extern struct jtag_interface usbprog_interface;
+extern struct adapter_driver usbprog_adapter_driver;
+#endif
+#if BUILD_OPENJTAG == 1
+extern struct adapter_driver openjtag_adapter_driver;
 #endif
 #if BUILD_JLINK == 1
-extern struct jtag_interface jlink_interface;
+extern struct adapter_driver jlink_adapter_driver;
 #endif
 #if BUILD_VSLLINK == 1
-extern struct jtag_interface vsllink_interface;
+extern struct adapter_driver vsllink_adapter_driver;
 #endif
 #if BUILD_RLINK == 1
-extern struct jtag_interface rlink_interface;
+extern struct adapter_driver rlink_adapter_driver;
 #endif
 #if BUILD_ULINK == 1
-extern struct jtag_interface ulink_interface;
+extern struct adapter_driver ulink_adapter_driver;
 #endif
 #if BUILD_ARMJTAGEW == 1
-extern struct jtag_interface armjtagew_interface;
+extern struct adapter_driver armjtagew_adapter_driver;
 #endif
 #if BUILD_BUSPIRATE == 1
-extern struct jtag_interface buspirate_interface;
+extern struct adapter_driver buspirate_adapter_driver;
 #endif
 #if BUILD_REMOTE_BITBANG == 1
-extern struct jtag_interface remote_bitbang_interface;
+extern struct adapter_driver remote_bitbang_adapter_driver;
 #endif
-#if BUILD_STLINK == 1
-extern struct jtag_interface stlink_interface;
+#if BUILD_HLADAPTER == 1
+extern struct adapter_driver hl_adapter_driver;
 #endif
 #if BUILD_OSBDM == 1
-extern struct jtag_interface osbdm_interface;
+extern struct adapter_driver osbdm_adapter_driver;
+#endif
+#if BUILD_OPENDOUS == 1
+extern struct adapter_driver opendous_adapter_driver;
+#endif
+#if BUILD_SYSFSGPIO == 1
+extern struct adapter_driver sysfsgpio_adapter_driver;
+#endif
+#if BUILD_LINUXGPIOD == 1
+extern struct adapter_driver linuxgpiod_adapter_driver;
+#endif
+#if BUILD_XLNX_PCIE_XVC == 1
+extern struct adapter_driver xlnx_pcie_xvc_adapter_driver;
+#endif
+#if BUILD_AICE == 1
+extern struct adapter_driver aice_adapter_driver;
+#endif
+#if BUILD_BCM2835GPIO == 1
+extern struct adapter_driver bcm2835gpio_adapter_driver;
+#endif
+#if BUILD_CMSIS_DAP_USB == 1 || BUILD_CMSIS_DAP_HID == 1
+extern struct adapter_driver cmsis_dap_adapter_driver;
+#endif
+#if BUILD_KITPROG == 1
+extern struct adapter_driver kitprog_adapter_driver;
+#endif
+#if BUILD_IMX_GPIO == 1
+extern struct adapter_driver imx_gpio_adapter_driver;
+#endif
+#if BUILD_XDS110 == 1
+extern struct adapter_driver xds110_adapter_driver;
+#endif
+#if BUILD_HLADAPTER_STLINK == 1
+extern struct adapter_driver stlink_dap_adapter_driver;
+#endif
+#if BUILD_RSHIM == 1
+extern struct adapter_driver rshim_dap_adapter_driver;
 #endif
-#endif /* standard drivers */
 
 /**
  * The list of built-in JTAG interfaces, containing entries for those
  * drivers that were enabled by the @c configure script.
- *
- * The list should be defined to contain either one minidriver interface
- * or some number of standard driver interfaces, never both.
  */
-struct jtag_interface *jtag_interfaces[] = {
-#if BUILD_ZY1000 == 1
-               &zy1000_interface,
-#elif defined(BUILD_MINIDRIVER_DUMMY)
-               &minidummy_interface,
-#else /* standard drivers */
+struct adapter_driver *adapter_drivers[] = {
 #if BUILD_PARPORT == 1
-               &parport_interface,
+               &parport_adapter_driver,
 #endif
 #if BUILD_DUMMY == 1
-               &dummy_interface,
+               &dummy_adapter_driver,
 #endif
-#if BUILD_FT2232_FTD2XX == 1
-               &ft2232_interface,
+#if BUILD_FTDI == 1
+               &ftdi_adapter_driver,
 #endif
-#if BUILD_FT2232_LIBFTDI == 1
-               &ft2232_interface,
+#if BUILD_USB_BLASTER || BUILD_USB_BLASTER_2 == 1
+               &usb_blaster_adapter_driver,
 #endif
-#if BUILD_USB_BLASTER_LIBFTDI == 1 || BUILD_USB_BLASTER_FTD2XX == 1
-               &usb_blaster_interface,
+#if BUILD_JTAG_VPI == 1
+               &jtag_vpi_adapter_driver,
+#endif
+#if BUILD_VDEBUG == 1
+               &vdebug_adapter_driver,
+#endif
+#if BUILD_JTAG_DPI == 1
+               &jtag_dpi_adapter_driver,
+#endif
+#if BUILD_FT232R == 1
+               &ft232r_adapter_driver,
 #endif
 #if BUILD_AMTJTAGACCEL == 1
-               &amt_jtagaccel_interface,
+               &amt_jtagaccel_adapter_driver,
 #endif
 #if BUILD_EP93XX == 1
-               &ep93xx_interface,
+               &ep93xx_adapter_driver,
 #endif
 #if BUILD_AT91RM9200 == 1
-               &at91rm9200_interface,
+               &at91rm9200_adapter_driver,
 #endif
 #if BUILD_GW16012 == 1
-               &gw16012_interface,
+               &gw16012_adapter_driver,
 #endif
-#if BUILD_PRESTO_LIBFTDI == 1 || BUILD_PRESTO_FTD2XX == 1
-               &presto_interface,
+#if BUILD_PRESTO
+               &presto_adapter_driver,
 #endif
 #if BUILD_USBPROG == 1
-               &usbprog_interface,
+               &usbprog_adapter_driver,
+#endif
+#if BUILD_OPENJTAG == 1
+               &openjtag_adapter_driver,
 #endif
 #if BUILD_JLINK == 1
-               &jlink_interface,
+               &jlink_adapter_driver,
 #endif
 #if BUILD_VSLLINK == 1
-               &vsllink_interface,
+               &vsllink_adapter_driver,
 #endif
 #if BUILD_RLINK == 1
-               &rlink_interface,
+               &rlink_adapter_driver,
 #endif
 #if BUILD_ULINK == 1
-               &ulink_interface,
+               &ulink_adapter_driver,
 #endif
 #if BUILD_ARMJTAGEW == 1
-               &armjtagew_interface,
+               &armjtagew_adapter_driver,
 #endif
 #if BUILD_BUSPIRATE == 1
-               &buspirate_interface,
+               &buspirate_adapter_driver,
 #endif
 #if BUILD_REMOTE_BITBANG == 1
-               &remote_bitbang_interface,
+               &remote_bitbang_adapter_driver,
 #endif
-#if BUILD_STLINK == 1
-               &stlink_interface,
+#if BUILD_HLADAPTER == 1
+               &hl_adapter_driver,
 #endif
 #if BUILD_OSBDM == 1
-               &osbdm_interface,
+               &osbdm_adapter_driver,
+#endif
+#if BUILD_OPENDOUS == 1
+               &opendous_adapter_driver,
+#endif
+#if BUILD_SYSFSGPIO == 1
+               &sysfsgpio_adapter_driver,
+#endif
+#if BUILD_LINUXGPIOD == 1
+               &linuxgpiod_adapter_driver,
+#endif
+#if BUILD_XLNX_PCIE_XVC == 1
+               &xlnx_pcie_xvc_adapter_driver,
+#endif
+#if BUILD_AICE == 1
+               &aice_adapter_driver,
+#endif
+#if BUILD_BCM2835GPIO == 1
+               &bcm2835gpio_adapter_driver,
+#endif
+#if BUILD_CMSIS_DAP_USB == 1 || BUILD_CMSIS_DAP_HID == 1
+               &cmsis_dap_adapter_driver,
+#endif
+#if BUILD_KITPROG == 1
+               &kitprog_adapter_driver,
+#endif
+#if BUILD_IMX_GPIO == 1
+               &imx_gpio_adapter_driver,
+#endif
+#if BUILD_XDS110 == 1
+               &xds110_adapter_driver,
+#endif
+#if BUILD_HLADAPTER_STLINK == 1
+               &stlink_dap_adapter_driver,
+#endif
+#if BUILD_RSHIM == 1
+               &rshim_dap_adapter_driver,
 #endif
-#endif /* standard drivers */
                NULL,
        };
-
-void jtag_interface_modules_load(const char *path)
-{
-       /* @todo: implement dynamic module loading for JTAG interface drivers */
-}