diff --git a/configure.in b/configure.in
index ef552f5c50f7084cca48e48c95b74de10bee256c..9250dc58385b09abf43f199ec099ed31d355e290 100644
--- a/configure.in
+++ b/configure.in
@@ -329,9 +329,13 @@ AC_ARG_ENABLE(amtjtagaccel,
   [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
 
 AC_ARG_ENABLE(ecosboard,
-  AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]), 
+  AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCos based JTAG debugger]), 
   [build_ecosboard=$enableval], [build_ecosboard=no])
 
+AC_ARG_ENABLE(zy1000,
+  AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]), 
+  [build_zy1000=$enableval], [build_zy1000=no])
+
 AC_ARG_ENABLE(ioutil,
   AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]), 
   [build_ioutil=$enableval], [build_ioutil=no])
@@ -400,7 +404,7 @@ AC_ARG_ENABLE(minidriver_dummy,
 
 build_minidriver=no
 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
-if test $build_ecosboard = yes; then
+if test $build_zy1000 = yes; then
   if test $build_minidriver = yes; then
     AC_MSG_ERROR([Multiple minidriver options have been enabled.])
   fi
@@ -408,7 +412,7 @@ if test $build_ecosboard = yes; then
       [Define to 1 if you have the <jtag_minidriver.h> header file.])
   build_minidriver=yes
 fi
-AC_MSG_RESULT($build_ecosboard)
+AC_MSG_RESULT($build_zy1000)
 
 
 AC_MSG_CHECKING([whether to enable dummy minidriver])
@@ -527,6 +531,12 @@ else
   AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
 fi
 
+if test $build_zy1000 = yes; then
+  AC_DEFINE(BUILD_ZY1000, 1, [1 if you want ZY1000.])
+else
+  AC_DEFINE(BUILD_ZY1000, 0, [0 if you don't want ZY1000.])
+fi
+
 if test $build_ioutil = yes; then
   AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
 else
@@ -898,6 +908,7 @@ AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
 AM_CONDITIONAL(GIVEIO, test x$parport_use_giveio = xyes)
 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
+AM_CONDITIONAL(ZY1000, test $build_zy1000 = yes)
 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
diff --git a/src/ecosboard.c b/src/ecosboard.c
index 20907576c5c4030d71c9e29f880d52f8aee1213f..0b1bf36ee6d5dea99b7392df2255e5562046aecd 100644
--- a/src/ecosboard.c
+++ b/src/ecosboard.c
@@ -191,7 +191,6 @@ int zy1000_configuration_output_handler_log(struct command_context_s *context,
 }
 
 #ifdef CYGPKG_PROFILE_GPROF
-extern void start_profile(void);
 
 int eCosBoard_handle_eCosBoard_profile_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
@@ -304,7 +303,7 @@ void format(void)
 	e.len = ds.dev_size;
 	e.err_address = &err_addr;
 
-	diag_printf("Formatting 0x%08x bytes\n", ds.dev_size);
+	diag_printf("Formatting 0x%08x bytes\n", (int)ds.dev_size);
 	err = cyg_io_get_config(handle, CYG_IO_GET_CONFIG_FLASH_ERASE, &e, &len);
 	if (err != ENOERR)
 	{
@@ -421,8 +420,6 @@ static int zylinjtag_Jim_Command_reboot(Jim_Interp *interp, int argc,
 }
 
 
-extern Jim_Interp *interp;
-
 static void zylinjtag_startNetwork(void)
 {
 	// Bring TCP/IP up immediately before we're ready to accept commands.
@@ -860,7 +857,7 @@ int boolParam(char *var);
 
 command_context_t *setup_command_handler(void);
 
-extern const char *zylin_config_dir;
+static const char *zylin_config_dir="/config/settings";
 
 int add_default_dirs(void)
 {
@@ -1551,3 +1548,26 @@ static int logfs_fo_close(struct CYG_FILE_TAG *fp)
 	return ENOERR;
 }
 
+int loadFile(const char *fileName, void **data, int *len);
+
+/* boolean parameter stored on config */
+int boolParam(char *var)
+{
+	bool result = false;
+	char *name = alloc_printf("%s/%s", zylin_config_dir, var);
+	if (name == NULL)
+		return result;
+
+	void *data;
+	int len;
+	if (loadFile(name, &data, &len) == ERROR_OK)
+	{
+		if (len > 1)
+			len = 1;
+		result = strncmp((char *) data, "1", len) == 0;
+		free(data);
+	}
+	free(name);
+	return result;
+}
+
diff --git a/src/jtag/Makefile.am b/src/jtag/Makefile.am
index 58bbff362ee3bc010f9b63e57af6302ab440353c..5af6c74fa6c11156116ea7272becde1eff10fbac 100644
--- a/src/jtag/Makefile.am
+++ b/src/jtag/Makefile.am
@@ -9,7 +9,7 @@ DRIVERFILES =
 
 if MINIDRIVER
 
-if ECOSBOARD
+if ZY1000
 DRIVERFILES += zy1000/zy1000.c
 AM_CPPFLAGS += -I$(srcdir)/zy1000
 endif
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index cddceef4a061fa86733df98d9feb57bb2c4a1a2b..459f7fd0ed3a45ec7101d4737c47ea9cfd0c50f4 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -62,7 +62,7 @@
  */
 typedef enum tap_state
 {
-#if BUILD_ECOSBOARD
+#if BUILD_ZY1000
 	/* These are the old numbers. Leave as-is for now... */
 	TAP_RESET    = 0, TAP_IDLE = 8,
 	TAP_DRSELECT = 1, TAP_DRCAPTURE = 2, TAP_DRSHIFT = 3, TAP_DREXIT1 = 4,
diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
index fc2671e2bc0af02c3cf2fad4f327c68061f2a03d..ad4d886aceb4feda014c71d8347c8e4580ce3631 100644
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -49,7 +49,7 @@ static const Jim_Nvp nvp_jtag_tap_event[] = {
 /* jtag interfaces (parport, FTDI-USB, TI-USB, ...)
  */
 
-#if BUILD_ECOSBOARD == 1
+#if BUILD_ZY1000 == 1
 	extern jtag_interface_t zy1000_interface;
 #elif defined(BUILD_MINIDRIVER_DUMMY)
 	extern jtag_interface_t minidummy_interface;
@@ -119,7 +119,7 @@ static const Jim_Nvp nvp_jtag_tap_event[] = {
  * or some number of standard driver interfaces, never both.
  */
 jtag_interface_t *jtag_interfaces[] = {
-#if BUILD_ECOSBOARD == 1
+#if BUILD_ZY1000 == 1
 	&zy1000_interface,
 #elif defined(BUILD_MINIDRIVER_DUMMY)
 	&minidummy_interface,
diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c
index 4dbdef249192d86013d3e6ed204d2adedefff788..daac0772e1de310cdfbda62f8d4c047947291773 100644
--- a/src/jtag/zy1000/zy1000.c
+++ b/src/jtag/zy1000/zy1000.c
@@ -33,7 +33,6 @@
 #define ZYLIN_TIME __TIME__
 #define ZYLIN_OPENOCD "$Revision$"
 #define ZYLIN_OPENOCD_VERSION "Zylin JTAG ZY1000 " ZYLIN_VERSION " " ZYLIN_DATE " " ZYLIN_TIME
-const char *zylin_config_dir="/config/settings";
 
 /* low level command set
  */
@@ -783,27 +782,4 @@ void embeddedice_write_dcc(jtag_tap_t *tap, int reg_addr, u8 *buffer, int little
 	}
 }
 
-int loadFile(const char *fileName, void **data, int *len);
-
-/* boolean parameter stored on config */
-int boolParam(char *var)
-{
-	bool result = false;
-	char *name = alloc_printf("%s/%s", zylin_config_dir, var);
-	if (name == NULL)
-		return result;
-
-	void *data;
-	int len;
-	if (loadFile(name, &data, &len) == ERROR_OK)
-	{
-		if (len > 1)
-			len = 1;
-		result = strncmp((char *) data, "1", len) == 0;
-		free(data);
-	}
-	free(name);
-	return result;
-}
-