git-svn-id: svn://svn.berlios.de/openocd/trunk@572 b42882b7-edfa-0310-969c-e2dbd0fdcd60tags/v0.1.0
@@ -30,6 +30,10 @@ AC_ARG_ENABLE(parport, | |||
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]), | |||
[build_parport=$enableval], [build_parport=no]) | |||
AC_ARG_ENABLE(dummy, | |||
AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]), | |||
[build_dummy=$enableval], [build_dummy=no]) | |||
case "${host_cpu}" in | |||
i?86|x86*) | |||
AC_ARG_ENABLE(parport_ppdev, | |||
@@ -144,6 +148,14 @@ else | |||
AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.]) | |||
fi | |||
if test $build_dummy = yes; then | |||
build_bitbang=yes | |||
AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.]) | |||
else | |||
AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.]) | |||
fi | |||
if test $build_ep93xx = yes; then | |||
build_bitbang=yes | |||
AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.]) | |||
@@ -243,6 +255,7 @@ AM_CONFIG_HEADER(config.h) | |||
AM_INIT_AUTOMAKE(openocd, 1.0) | |||
AM_CONDITIONAL(PARPORT, test $build_parport = yes) | |||
AM_CONDITIONAL(DUMMY, test $build_dummy = yes) | |||
AM_CONDITIONAL(GIVEIO, test $parport_use_giveio = yes) | |||
AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes) | |||
AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes) | |||
@@ -25,6 +25,12 @@ else | |||
PARPORTFILES = | |||
endif | |||
if DUMMY | |||
DUMMYFILES = dummy.c | |||
else | |||
DUMMYFILES = | |||
endif | |||
if FT2232_LIBFTDI | |||
FT2232FILES = ft2232.c | |||
else | |||
@@ -87,7 +93,7 @@ else | |||
USBPROGFILES = | |||
endif | |||
libjtag_a_SOURCES = jtag.c $(BITBANGFILES) $(PARPORTFILES) $(FT2232FILES) $(AMTJTAGACCELFILES) $(EP93XXFILES) \ | |||
libjtag_a_SOURCES = jtag.c $(BITBANGFILES) $(PARPORTFILES) $(DUMMYFILES) $(FT2232FILES) $(AMTJTAGACCELFILES) $(EP93XXFILES) \ | |||
$(AT91RM9200FILES) $(GW16012FILES) $(BITQFILES) $(PRESTOFILES) $(USBPROGFILES) $(ECOSBOARDFILES) | |||
noinst_HEADERS = bitbang.h jtag.h |
@@ -0,0 +1,105 @@ | |||
/*************************************************************************** | |||
* Copyright (C) 2008 by Øyvind Harboe * | |||
* oyvind.harboe@zylin.com * | |||
* * | |||
* 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 * | |||
* (at your option) any later version. * | |||
* * | |||
* This program is distributed in the hope that it will be useful, * | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of * | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |||
* 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. * | |||
***************************************************************************/ | |||
#ifdef HAVE_CONFIG_H | |||
#include "config.h" | |||
#endif | |||
#include "replacements.h" | |||
#include "jtag.h" | |||
#include "bitbang.h" | |||
int dummy_speed(int speed); | |||
int dummy_register_commands(struct command_context_s *cmd_ctx); | |||
int dummy_init(void); | |||
int dummy_quit(void); | |||
/* The dummy driver is used to easily check the code path | |||
* where the target is unresponsive. | |||
*/ | |||
jtag_interface_t dummy_interface = | |||
{ | |||
.name = "dummy", | |||
.execute_queue = bitbang_execute_queue, | |||
.speed = dummy_speed, | |||
.register_commands = dummy_register_commands, | |||
.init = dummy_init, | |||
.quit = dummy_quit, | |||
}; | |||
int dummy_read(void); | |||
void dummy_write(int tck, int tms, int tdi); | |||
void dummy_reset(int trst, int srst); | |||
void dummy_led(int on); | |||
bitbang_interface_t dummy_bitbang = | |||
{ | |||
.read = dummy_read, | |||
.write = dummy_write, | |||
.reset = dummy_reset, | |||
.blink = dummy_led | |||
}; | |||
int dummy_read(void) | |||
{ | |||
return 1; | |||
} | |||
void dummy_write(int tck, int tms, int tdi) | |||
{ | |||
} | |||
void dummy_reset(int trst, int srst) | |||
{ | |||
} | |||
int dummy_speed(int speed) | |||
{ | |||
return ERROR_OK; | |||
} | |||
int dummy_register_commands(struct command_context_s *cmd_ctx) | |||
{ | |||
return ERROR_OK; | |||
} | |||
int dummy_init(void) | |||
{ | |||
bitbang_interface = &dummy_bitbang; | |||
return ERROR_OK; | |||
} | |||
int dummy_quit(void) | |||
{ | |||
return ERROR_OK; | |||
} | |||
void dummy_led(int on) | |||
{ | |||
} | |||
@@ -156,7 +156,11 @@ static int hasKHz = 0; | |||
#if BUILD_PARPORT == 1 | |||
extern jtag_interface_t parport_interface; | |||
#endif | |||
#if BUILD_DUMMY == 1 | |||
extern jtag_interface_t dummy_interface; | |||
#endif | |||
#if BUILD_FT2232_FTD2XX == 1 | |||
extern jtag_interface_t ft2232_interface; | |||
#endif | |||
@@ -196,6 +200,9 @@ jtag_interface_t *jtag_interfaces[] = { | |||
#if BUILD_PARPORT == 1 | |||
&parport_interface, | |||
#endif | |||
#if BUILD_DUMMY == 1 | |||
&dummy_interface, | |||
#endif | |||
#if BUILD_FT2232_FTD2XX == 1 | |||
&ft2232_interface, | |||
#endif | |||