ecosboard: delete bit-rotted eCos code
authorØyvind Harboe <oyvind.harboe@zylin.com>
Mon, 5 Mar 2012 20:37:14 +0000 (21:37 +0100)
committerØyvind Harboe <oyvindharboe@gmail.com>
Tue, 13 Mar 2012 19:11:11 +0000 (19:11 +0000)
Change-Id: Iff7943eb9da3f41dcc45492acd0f36cf63b3497f
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Reviewed-on: http://openocd.zylin.com/503
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
Tested-by: jenkins
15 files changed:
README
configure.ac
src/Makefile.am
src/ecosboard.c [deleted file]
src/helper/Makefile.am
src/helper/command.c
src/helper/command.h
src/helper/ioutil.c
src/helper/replacements.h
src/helper/system.h
src/helper/time_support_ecos.c [deleted file]
src/jtag/zy1000/jtag_minidriver.h
src/jtag/zy1000/zy1000.c
src/server/Makefile.am
src/server/server.h

diff --git a/README b/README
index f49dd31fb1cbd85877581f6e7bc802aeddca12a9..c6186b231a3f9ad227692948590d819c967d50c9 100644 (file)
--- a/README
+++ b/README
@@ -249,7 +249,6 @@ options may be available there:
   --enable-ep93xx         Enable building support for EP93xx based SBCs
   --enable-at91rm9200     Enable building support for AT91RM9200 based SBCs
 
   --enable-ep93xx         Enable building support for EP93xx based SBCs
   --enable-at91rm9200     Enable building support for AT91RM9200 based SBCs
 
-  --enable-ecosboard      Enable building support for eCos based JTAG debugger
   --enable-zy1000         Enable ZY1000 interface
 
   --enable-minidriver-dummy
   --enable-zy1000         Enable ZY1000 interface
 
   --enable-minidriver-dummy
index 0b337129b752e8c49f1c3b07f9bc9e8d4d63eca0..0a9a658676dd83daf79586f778e494df152e9cee 100644 (file)
@@ -396,10 +396,6 @@ AC_ARG_ENABLE([amtjtagaccel],
   AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
   [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
 
   AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
   [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
 
-AC_ARG_ENABLE([ecosboard],
-  AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCos based JTAG debugger]),
-  [build_ecosboard=$enableval], [build_ecosboard=no])
-
 AC_ARG_ENABLE([zy1000_master],
   AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
   [build_zy1000_master=$enableval], [build_zy1000_master=no])
 AC_ARG_ENABLE([zy1000_master],
   AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
   [build_zy1000_master=$enableval], [build_zy1000_master=no])
@@ -632,12 +628,6 @@ else
   AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
 fi
 
   AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
 fi
 
-if test $build_ecosboard = yes; then
-  AC_DEFINE([BUILD_ECOSBOARD], [1], [1 if you want eCosBoard.])
-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
 if test $build_zy1000 = yes; then
   AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
 else
@@ -1104,7 +1094,6 @@ AM_CONDITIONAL([PARPORT], [test $build_parport = yes])
 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([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([ZY1000_MASTER], [test $build_zy1000_master = yes])
 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
 AM_CONDITIONAL([ZY1000], [test $build_zy1000 = yes])
 AM_CONDITIONAL([ZY1000_MASTER], [test $build_zy1000_master = yes])
 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
index 3a92fffee3c43bd426a6f22c1001449fef026d7e..c78e81c801fb48324a30578460b0e21104b1ab3a 100644 (file)
@@ -15,11 +15,7 @@ SUBDIRS = \
 lib_LTLIBRARIES = libopenocd.la
 bin_PROGRAMS = openocd
 
 lib_LTLIBRARIES = libopenocd.la
 bin_PROGRAMS = openocd
 
-if ECOSBOARD
-MAINFILE = ecosboard.c
-else
 MAINFILE = main.c
 MAINFILE = main.c
-endif
 
 openocd_SOURCES = $(MAINFILE)
 openocd_LDADD = libopenocd.la
 
 openocd_SOURCES = $(MAINFILE)
 openocd_LDADD = libopenocd.la
diff --git a/src/ecosboard.c b/src/ecosboard.c
deleted file mode 100644 (file)
index 0805e6f..0000000
+++ /dev/null
@@ -1,1670 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2007-2010 by Øyvind Harboe                              *
- *                                                                         *
- *   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 <helper/types.h>
-#include <jtag/jtag.h>
-#include <helper/ioutil.h>
-#include <helper/util.h>
-#include <helper/configuration.h>
-
-#include <server/server.h>
-#include <server/telnet_server.h>
-#include <server/gdb_server.h>
-#include <openocd.h>
-
-#include <helper/time_support.h>
-
-#include <sys/time.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <cyg/io/flash.h>
-#include <pkgconf/fs_jffs2.h>  // Address of JFFS2
-#include <network.h>
-
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <cyg/fileio/fileio.h>
-#include <dirent.h>
-#include <cyg/athttpd/http.h>
-#include <cyg/athttpd/socket.h>
-#include <cyg/athttpd/handler.h>
-#include <cyg/athttpd/cgi.h>
-#include <cyg/athttpd/forms.h>
-#include <cyg/discover/discover.h>
-#include <cyg/io/io.h>
-#include <cyg/io/serialio.h>
-#include <netinet/tcp.h>
-#include <cyg/hal/hal_diag.h>
-
-#include "rom.h"
-
-#ifdef CYGPKG_HAL_NIOS2
-#include <cyg/hal/io.h>
-#define ZY1000_SER_DEV "/dev/uart_0"
-#else
-#define ZY1000_SER_DEV "/dev/ser0"
-
-#endif
-
-
-#define MAX_IFS 64
-#if defined(CYGPKG_NET_FREEBSD_STACK)
-#include <tftp_support.h>
-/* posix compatibility broken*/
-struct tftpd_fileops fileops =
-{
-       (int (*)(const char *, int))open,
-       close,
-       (int (*)(int, const void *, int))write,
-       (int (*)(int, void *, int))read
-};
-
-#endif
-
-
-void diag_write(char *buf, int len)
-{
-       int j;
-       for (j = 0; j < len; j++)
-       {
-               diag_printf("%c", buf[j]);
-       }
-}
-
-static bool serialLog = true;
-static bool writeLog = true;
-
-char hwaddr[512];
-
-#ifdef CYGPKG_PROFILE_GPROF
-#include <cyg/profile/profile.h>
-
-extern char _stext, _etext; // Defined by the linker
-
-static char *start_of_code=&_stext;
-static char *end_of_code=&_etext;
-
-void start_profile(void)
-{
-       // This starts up the system-wide profiling, gathering
-       // profile information on all of the code, with a 16 byte
-       // "bucket" size, at a rate of 100us/profile hit.
-       // Note: a bucket size of 16 will give pretty good function
-       //       resolution.  Much smaller and the buffer becomes
-       //       much too large for very little gain.
-       // Note: a timer period of 100us is also a reasonable
-       //       compromise.  Any smaller and the overhead of
-       //       handling the timter (profile) interrupt could
-       //       swamp the system.  A fast processor might get
-       //       by with a smaller value, but a slow one could
-       //       even be swamped by this value.  If the value is
-       //       too large, the usefulness of the profile is reduced.
-
-       // no more interrupts than 1/10ms.
-       //profile_on((void *)0, (void *)0x40000, 16, 10000); // SRAM
-       //      profile_on(0, &_etext, 16, 10000); // SRAM & DRAM
-       profile_on(start_of_code, end_of_code, 16, 10000); // Nios DRAM
-}
-#endif
-
-static FILE *log;
-
-static char reboot_stack[2048];
-
-static void zylinjtag_reboot(cyg_addrword_t data)
-{
-       serialLog = true;
-       diag_printf("Rebooting in 500 ticks..\n");
-       cyg_thread_delay(500);
-       diag_printf("Unmounting /config..\n");
-       umount("/config");
-       diag_printf("Rebooting..\n");
-#ifdef CYGPKG_HAL_NIOS2
-       /* This will reboot & reconfigure the FPGA from the bootloader
-        * and on.
-        */
-       IOWR(REMOTE_UPDATE_BASE, 0x20, 0x1);
-#else
-       HAL_PLATFORM_RESET();
-#endif
-}
-static cyg_thread zylinjtag_thread_object;
-static cyg_handle_t zylinjtag_thread_handle;
-
-void reboot(void)
-{
-       cyg_thread_create(1, zylinjtag_reboot, (cyg_addrword_t) 0, "reboot Thread",
-                       (void *) reboot_stack, sizeof(reboot_stack),
-                       &zylinjtag_thread_handle, &zylinjtag_thread_object);
-       cyg_thread_resume(zylinjtag_thread_handle);
-}
-
-static char zylinjtag_reboot_port_stack[2048];
-static cyg_thread zylinjtag_reboot_port_thread_object;
-static cyg_handle_t zylinjtag_reboot_port_thread_handle;
-
-static void zylinjtag_reboot_port_task(cyg_addrword_t data)
-{
-       int so_reuseaddr_option = 1;
-
-       int fd;
-       if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-       {
-               LOG_ERROR("error creating socket: %s", strerror(errno));
-               exit(-1);
-       }
-
-       setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void*) &so_reuseaddr_option,
-                       sizeof(int));
-
-       struct sockaddr_in sin;
-       unsigned int address_size;
-       address_size = sizeof(sin);
-       memset(&sin, 0, sizeof(sin));
-       sin.sin_family = AF_INET;
-       sin.sin_addr.s_addr = INADDR_ANY;
-       sin.sin_port = htons(1234);
-
-       if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) == -1)
-       {
-               LOG_ERROR("couldn't bind to socket: %s", strerror(errno));
-               exit(-1);
-       }
-
-       if (listen(fd, 1) == -1)
-       {
-               LOG_ERROR("couldn't listen on socket: %s", strerror(errno));
-               exit(-1);
-       }
-       //      socket_nonblock(fd);
-
-
-       accept(fd, (struct sockaddr *) &sin, &address_size);
-
-       diag_printf("Got reboot signal on port 1234");
-
-       reboot();
-
-}
-
-void reboot_port(void)
-{
-       cyg_thread_create(1, zylinjtag_reboot_port_task, (cyg_addrword_t) 0, "wait for reboot signal on port 1234",
-                       (void *) zylinjtag_reboot_port_stack, sizeof(zylinjtag_reboot_port_stack),
-                       &zylinjtag_reboot_port_thread_handle, &zylinjtag_reboot_port_thread_object);
-       cyg_thread_resume(zylinjtag_reboot_port_thread_handle);
-}
-
-int configuration_output_handler(struct command_context *context,
-               const char* line)
-{
-       diag_printf("%s", line);
-
-       return ERROR_OK;
-}
-
-int zy1000_configuration_output_handler_log(struct command_context *context,
-               const char* line)
-{
-       LOG_USER_N("%s", line);
-
-       return ERROR_OK;
-}
-
-#ifdef CYGPKG_PROFILE_GPROF
-//extern int64_t totaltime;
-
-static int zylinjtag_Jim_Command_profile(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       if ((argc == 2) && (strcmp(Jim_GetString(argv[1], NULL), "stats")==0))
-       {
-//             profile_off();
-               //LOG_USER("Stats %dms sleeping in select()", (int)totaltime);
-       } else
-       {
-               LOG_USER("Profiling started");
-               start_profile();
-               //totaltime = 0;
-       }
-       return ERROR_OK;
-}
-
-#endif
-
-externC void phi_init_all_network_interfaces(void);
-
-struct command_context *cmd_ctx;
-
-static bool webRunning = false;
-
-void keep_webserver(void)
-{
-       // Target initialisation is only attempted at startup, so we sleep forever and
-       // let the http server bail us out(i.e. get config files set up).
-       diag_printf("OpenOCD has invoked exit().\n"
-               "Use web server to correct any configuration settings and reboot.\n");
-       if (!webRunning)
-               reboot();
-
-       // exit() will terminate the current thread and we we'll then sleep eternally or
-       // we'll have a reboot scheduled.
-}
-
-extern void printDccChar(char c);
-
-static char logBuffer[128 * 1024];
-static const int logSize = sizeof(logBuffer);
-int writePtr = 0;
-int logCount = 0;
-
-void _zylinjtag_diag_write_char(char c, void **param)
-{
-       if (writeLog)
-       {
-               logBuffer[writePtr] = c;
-               writePtr = (writePtr + 1) % logSize;
-               logCount++;
-       }
-       if (serialLog)
-       {
-               if (c == '\n')
-               {
-                       HAL_DIAG_WRITE_CHAR('\r');
-               }
-               HAL_DIAG_WRITE_CHAR(c);
-       }
-
-#ifdef CYGPKG_HAL_ZYLIN_PHI
-       printDccChar(c);
-#endif
-}
-
-void copyfile(char *name2, char *name1);
-
-void copydir(char *name, char *destdir);
-
-#if 0
-MTAB_ENTRY(romfs_mte1,
-               "/rom",
-               "romfs",
-               "",
-               (CYG_ADDRWORD) &filedata[0]);
-#endif
-
-void openocd_sleep_prelude(void)
-{
-       cyg_mutex_unlock(&httpstate.jim_lock);
-}
-
-void openocd_sleep_postlude(void)
-{
-       cyg_mutex_lock(&httpstate.jim_lock);
-}
-
-void format(void)
-{
-#ifdef CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1
-       diag_printf("Formatting JFFS2...\n");
-
-       cyg_io_handle_t handle;
-
-       Cyg_ErrNo err;
-       err = cyg_io_lookup(CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1, &handle);
-       if (err != ENOERR)
-       {
-               diag_printf("Flash Error cyg_io_lookup: %d\n", err);
-               reboot();
-       }
-
-       cyg_uint32 len;
-       cyg_io_flash_getconfig_devsize_t ds;
-       len = sizeof(ds);
-       err = cyg_io_get_config(handle, CYG_IO_GET_CONFIG_FLASH_DEVSIZE, &ds, &len);
-       if (err != ENOERR)
-       {
-               diag_printf("Flash error cyg_io_get_config %d\n", err);
-               reboot();
-       }
-
-       cyg_io_flash_getconfig_erase_t e;
-       len = sizeof(e);
-
-       e.offset = 0;
-       e.len = 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)
-       {
-               diag_printf("Flash erase error %d offset 0x%08x\n", err, e.err_address);
-               reboot();
-       }
-
-       diag_printf("Flash formatted successfully\n");
-#endif
-
-       reboot();
-}
-
-static int zylinjtag_Jim_Command_format_jffs2(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       if (argc != 1)
-       {
-               return JIM_ERR;
-       }
-
-       format();
-       for (;;)
-               ;
-}
-
-static int zylinjtag_Jim_Command_threads(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       cyg_handle_t thread = 0;
-       cyg_uint16 id = 0;
-       Jim_Obj *threads = Jim_NewListObj(interp, NULL, 0);
-
-       /* Loop over the threads, and generate a table row for
-        * each.
-        */
-       while (cyg_thread_get_next(&thread, &id))
-       {
-               Jim_Obj *threadObj = Jim_NewListObj(interp, NULL, 0);
-
-               cyg_thread_info info;
-               char *state_string;
-
-               cyg_thread_get_info(thread, id, &info);
-
-               if (info.name == NULL)
-                       info.name = "<no name>";
-
-               Jim_ListAppendElement(interp, threadObj, Jim_NewStringObj(interp,
-                               info.name, strlen(info.name)));
-
-               /* Translate the state into a string.
-                */
-               if (info.state == 0)
-                       state_string = "RUN";
-               else if (info.state & 0x04)
-                       state_string = "SUSP";
-               else
-                       switch (info.state & 0x1b)
-                       {
-                       case 0x01:
-                               state_string = "SLEEP";
-                               break;
-                       case 0x02:
-                               state_string = "CNTSLEEP";
-                               break;
-                       case 0x08:
-                               state_string = "CREATE";
-                               break;
-                       case 0x10:
-                               state_string = "EXIT";
-                               break;
-                       default:
-                               state_string = "????";
-                               break;
-                       }
-
-               Jim_ListAppendElement(interp, threadObj, Jim_NewStringObj(interp,
-                               state_string, strlen(state_string)));
-
-               Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp, id));
-               Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp,
-                               info.set_pri));
-               Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp,
-                               info.cur_pri));
-
-               Jim_ListAppendElement(interp, threads, threadObj);
-       }
-       Jim_SetResult(interp, threads);
-
-       return JIM_OK;
-}
-
-static int zylinjtag_Jim_Command_log(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
-
-       if (logCount >= logSize)
-       {
-               Jim_AppendString(httpstate.jim_interp, tclOutput, logBuffer + logCount
-                               % logSize, logSize - logCount % logSize);
-       }
-       Jim_AppendString(httpstate.jim_interp, tclOutput, logBuffer, writePtr);
-
-       Jim_SetResult(interp, tclOutput);
-       return JIM_OK;
-}
-
-static int zylinjtag_Jim_Command_reboot(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       reboot();
-       return JIM_OK;
-}
-
-static void zylinjtag_startNetwork(void)
-{
-       // Bring TCP/IP up immediately before we're ready to accept commands.
-       //
-       // That is as soon as a PING responds, we're accepting telnet sessions.
-#if defined(CYGPKG_NET_FREEBSD_STACK)
-       phi_init_all_network_interfaces();
-#else
-       lwip_init();
-#endif
-       if (!eth0_up)
-       {
-               diag_printf("Network not up and running\n");
-               exit(-1);
-       }
-
-       /* very first thing we want is a reboot capability */
-       reboot_port();
-
-#if defined(CYGPKG_NET_FREEBSD_STACK)
-       /*start TFTP*/
-       tftpd_start(69, &fileops);
-#endif
-
-       cyg_httpd_init_tcl_interpreter();
-
-       // Kludge! Why can't I do this from httpd.c??? I get linker errors...
-       // some of that --start/end-group stuff?
-    Jim_InitStaticExtensions(httpstate.jim_interp);
-
-       Jim_CreateCommand(httpstate.jim_interp, "log", zylinjtag_Jim_Command_log,
-                       NULL, NULL);
-       Jim_CreateCommand(httpstate.jim_interp, "zy1000_reboot",
-                       zylinjtag_Jim_Command_reboot, NULL, NULL);
-       Jim_CreateCommand(httpstate.jim_interp, "threads",
-                       zylinjtag_Jim_Command_threads, NULL, NULL);
-       Jim_CreateCommand(httpstate.jim_interp, "format_jffs2",
-                       zylinjtag_Jim_Command_format_jffs2, NULL, NULL);
-
-       cyg_httpd_start();
-
-       webRunning = true;
-
-       diag_printf("Web server running\n");
-
-       int s;
-       struct ifreq ifr;
-       s = socket(AF_INET, SOCK_DGRAM, 0);
-       if (s >= 0)
-       {
-               strcpy(ifr.ifr_name, "eth0");
-               int res;
-               res = ioctl(s, SIOCGIFHWADDR, &ifr);
-               close(s);
-
-               if (res < 0)
-               {
-                       diag_printf("Can't obtain MAC address\n");
-                       reboot();
-               }
-       }
-
-       sprintf(hwaddr, "%02x:%02x:%02x:%02x:%02x:%02x",
-                       (int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[0],
-                       (int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[1],
-                       (int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[2],
-                       (int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[3],
-                       (int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[4],
-                       (int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[5]);
-
-       discover_message
-                       = alloc_printf("ZY1000 Zylin JTAG debugger MAC %s", hwaddr);
-
-       discover_launch();
-}
-
-static void print_exception_handler(cyg_addrword_t data, cyg_code_t exception,
-               cyg_addrword_t info)
-{
-       writeLog = false;
-       serialLog = true;
-       char *infoStr = "unknown";
-       switch (exception)
-       {
-#ifdef CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
-       case CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION:
-       infoStr = "undefined instruction";
-       break;
-       case CYGNUM_HAL_VECTOR_SOFTWARE_INTERRUPT:
-       infoStr = "software interrupt";
-       break;
-       case CYGNUM_HAL_VECTOR_ABORT_PREFETCH:
-       infoStr = "abort prefetch";
-       break;
-       case CYGNUM_HAL_VECTOR_ABORT_DATA:
-       infoStr = "abort data";
-       break;
-#endif
-       default:
-               break;
-       }
-
-       diag_printf("Exception: %08x(%s) %08x\n", exception, infoStr, info);
-
-       diag_printf("Dumping log\n---\n");
-       if (logCount >= logSize)
-       {
-               diag_write(logBuffer + logCount % logSize, logSize - logCount % logSize);
-       }
-       diag_write(logBuffer, writePtr);
-
-       diag_printf("---\nLogdump complete.\n");
-       diag_printf("Exception: %08x(%s) %08x\n", exception, infoStr, info);
-       diag_printf("\n---\nRebooting\n");
-       HAL_PLATFORM_RESET();
-
-}
-
-#ifdef CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
-static void setHandler(cyg_code_t exception)
-{
-       cyg_exception_handler_t *old_handler;
-       cyg_addrword_t old_data;
-
-       cyg_exception_set_handler(exception, print_exception_handler, 0,
-                       &old_handler, &old_data);
-}
-#endif
-
-static cyg_thread zylinjtag_uart_thread_object;
-static cyg_handle_t zylinjtag_uart_thread_handle;
-static char uart_stack[4096];
-
-static char forwardBuffer[1024]; // NB! must be smaller than a TCP/IP packet!!!!!
-static char backwardBuffer[1024];
-
-void setNoDelay(int session, int flag)
-{
-#if 1
-       // This decreases latency dramatically for e.g. GDB load which
-       // does not have a sliding window protocol
-       //
-       // Can cause *lots* of TCP/IP packets to be sent and it would have
-       // to be enabled/disabled on the fly to avoid the CPU being
-       // overloaded...
-       setsockopt(session, /* socket affected */
-       IPPROTO_TCP, /* set option at TCP level */
-       TCP_NODELAY, /* name of option */
-       (char *) &flag, /* the cast is historical
-        cruft */
-       sizeof(int)); /* length of option value */
-#endif
-}
-
-#define TEST_TCPIP() 0
-
-#if TEST_TCPIP
-struct
-{
-       int req;
-       int actual;
-       int req2;
-       int actual2;
-} tcpipSent[512 * 1024];
-int cur;
-#endif
-
-static void zylinjtag_uart(cyg_addrword_t data)
-{
-       int so_reuseaddr_option = 1;
-
-       int fd;
-       if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-       {
-               LOG_ERROR("error creating socket: %s", strerror(errno));
-               exit(-1);
-       }
-
-       setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void*) &so_reuseaddr_option,
-                       sizeof(int));
-
-       struct sockaddr_in sin;
-       unsigned int address_size;
-       address_size = sizeof(sin);
-       memset(&sin, 0, sizeof(sin));
-       sin.sin_family = AF_INET;
-       sin.sin_addr.s_addr = INADDR_ANY;
-       sin.sin_port = htons(5555);
-
-       if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) == -1)
-       {
-               LOG_ERROR("couldn't bind to socket: %s", strerror(errno));
-               exit(-1);
-       }
-
-       if (listen(fd, 1) == -1)
-       {
-               LOG_ERROR("couldn't listen on socket: %s", strerror(errno));
-               exit(-1);
-       }
-       //      socket_nonblock(fd);
-
-
-       for (;;)
-       {
-               int session = accept(fd, (struct sockaddr *) &sin, &address_size);
-               if (session < 0)
-               {
-                       continue;
-               }
-
-               setNoDelay(session, 1);
-               int oldopts = fcntl(session, F_GETFL, 0);
-               fcntl(session, F_SETFL, oldopts | O_NONBLOCK); //
-
-               int serHandle = open(ZY1000_SER_DEV, O_RDWR | O_NONBLOCK);
-               if (serHandle < 0)
-               {
-                       close(session);
-                       continue;
-               }
-
-#ifdef CYGPKG_PROFILE_GPROF
-               start_profile();
-#endif
-               size_t actual = 0;
-               size_t actual2 = 0;
-               size_t pos, pos2;
-               pos = 0;
-               pos2 = 0;
-#if TEST_TCPIP
-               cur = 0;
-#endif
-               for (;;)
-               {
-                       fd_set write_fds;
-                       fd_set read_fds;
-                       FD_ZERO(&write_fds);
-                       FD_ZERO(&read_fds);
-                       int fd_max = -1;
-                       FD_SET(session, &read_fds);
-                       fd_max = session;
-                       FD_SET(serHandle, &read_fds);
-                       if (serHandle > fd_max)
-                       {
-                               fd_max = serHandle;
-                       }
-                       /* Wait... */
-
-                       cyg_thread_delay(5); // 50ms fixed delay to wait for data to be sent/received
-                       if ((actual == 0) && (actual2 == 0))
-                       {
-                               int retval = select(fd_max + 1, &read_fds, NULL, NULL, NULL);
-                               if (retval <= 0)
-                               {
-                                       break;
-                               }
-                       }
-
-                       if (actual2 <= 0)
-                       {
-                               memset(backwardBuffer, 's', sizeof(backwardBuffer));
-                               int t;
-                               t = read(serHandle, backwardBuffer,
-                                               sizeof(backwardBuffer));
-                               actual2 = t;
-                               if (t < 0)
-                               {
-                                       if (errno != EAGAIN)
-                                       {
-                                               goto closeSession;
-                                       }
-                                       actual2 = 0;
-                               }
-                               pos2 = 0;
-                       }
-
-                       size_t y = 0;
-                       if (actual2 > 0)
-                       {
-                               int written = write(session, backwardBuffer + pos2, actual2);
-                               if (written <= 0)
-                                       goto closeSession;
-                               actual2 -= written;
-                               pos2 += written;
-                               y = written;
-                       }
-
-                       if (FD_ISSET(session, &read_fds)
-                                       && (sizeof(forwardBuffer) > actual))
-                       {
-                               // NB! Here it is important that we empty the TCP/IP read buffer
-                               // to make transmission tick right
-                               memmove(forwardBuffer, forwardBuffer + pos, actual);
-                               pos = 0;
-                               int t;
-                               // this will block if there is no data at all
-                               t = read_socket(session, forwardBuffer + actual,
-                                               sizeof(forwardBuffer) - actual);
-                               if (t <= 0)
-                               {
-                                       goto closeSession;
-                               }
-                               actual += t;
-                       }
-
-                       int y2 = 0;
-                       if (actual > 0)
-                       {
-                               /* Do not put things into the serial buffer if it has something to send
-                                * as that can cause a single byte to be sent at the time.
-                                *
-                                *
-                                */
-                               int written = write(serHandle, forwardBuffer + pos, actual);
-                               if (written < 0)
-                               {
-                                       if (errno != EAGAIN)
-                                       {
-                                               goto closeSession;
-                                       }
-                                       // The serial buffer is full
-                                       written = 0;
-                               }
-                               else
-                               {
-                                       actual -= written;
-                                       pos += written;
-                               }
-                               y2 = written;
-                       }
-#if TEST_TCPIP
-                       if (cur < 1024)
-                       {
-                               tcpipSent[cur].req = x;
-                               tcpipSent[cur].actual = y;
-                               tcpipSent[cur].req2 = x2;
-                               tcpipSent[cur].actual2 = y2;
-                               cur++;
-                       }
-#endif
-               }
-               closeSession: close(session);
-               close(serHandle);
-
-#if TEST_TCPIP
-               int i;
-               for (i = 0; i < 1024; i++)
-               {
-                       diag_printf("%d %d %d %d\n", tcpipSent[i].req, tcpipSent[i].actual,
-                                       tcpipSent[i].req2, tcpipSent[i].actual2);
-
-               }
-#endif
-       }
-       close(fd);
-
-}
-
-void startUart(void)
-{
-       cyg_thread_create(1, zylinjtag_uart, (cyg_addrword_t) 0, "uart thread",
-                       (void *) uart_stack, sizeof(uart_stack),
-                       &zylinjtag_uart_thread_handle, &zylinjtag_uart_thread_object);
-       cyg_thread_set_priority(zylinjtag_uart_thread_handle, 1); // low priority as it sits in a busy loop
-       cyg_thread_resume(zylinjtag_uart_thread_handle);
-}
-
-static int zylinjtag_Jim_Command_uart(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       static int current_baud = 38400;
-       if (argc == 1)
-       {
-               Jim_SetResult(interp, Jim_NewIntObj(interp, current_baud));
-               return JIM_OK;
-       }
-       else if (argc != 2)
-       {
-               return JIM_ERR;
-       }
-
-       long new_baudrate;
-       if (Jim_GetLong(interp, argv[1], &new_baudrate) != JIM_OK)
-               return JIM_ERR;
-
-       current_baud = new_baudrate;
-
-       int baud;
-       switch (current_baud)
-       {
-       case 9600:
-               baud = CYGNUM_SERIAL_BAUD_9600;
-               break;
-       case 19200:
-               baud = CYGNUM_SERIAL_BAUD_19200;
-               break;
-       case 38400:
-               baud = CYGNUM_SERIAL_BAUD_38400;
-               break;
-       case 57600:
-               baud = CYGNUM_SERIAL_BAUD_57600;
-               break;
-       case 115200:
-               baud = CYGNUM_SERIAL_BAUD_115200;
-               break;
-       case 230400:
-               baud = CYGNUM_SERIAL_BAUD_230400;
-               break;
-       default:
-               Jim_SetResult(interp, Jim_NewStringObj(interp, "unsupported baudrate", -1));
-               return JIM_ERR;
-       }
-
-       cyg_serial_info_t buf;
-       cyg_uint32 len = 1;
-       //get existing serial configuration
-       len = sizeof(cyg_serial_info_t);
-       int err;
-       cyg_io_handle_t serial_handle;
-
-       err = cyg_io_lookup(ZY1000_SER_DEV, &serial_handle);
-       if (err != ENOERR)
-       {
-               Jim_SetResult(interp, Jim_NewStringObj(interp, "Could not open serial port", -1));
-               return JIM_ERR;
-       }
-
-       err = cyg_io_get_config(serial_handle,
-                       CYG_IO_GET_CONFIG_SERIAL_OUTPUT_DRAIN, &buf, &len);
-       err = cyg_io_get_config(serial_handle, CYG_IO_GET_CONFIG_SERIAL_INFO, &buf,
-                       &len);
-       if (err != ENOERR)
-       {
-               Jim_SetResult(interp, Jim_NewStringObj(interp, "Failed to get serial port settings", -1));
-               return JIM_ERR;
-       }
-       buf.baud = baud;
-
-       err = cyg_io_set_config(serial_handle, CYG_IO_SET_CONFIG_SERIAL_INFO, &buf,
-                       &len);
-       if (err != ENOERR)
-       {
-               Jim_SetResult(interp, Jim_NewStringObj(interp, "Failed to set serial port settings", -1));
-               return JIM_ERR;
-       }
-
-       return JIM_OK;
-}
-
-bool logAllToSerial = false;
-
-
-int boolParam(char *var);
-
-
-static const char *zylin_config_dir="/config/settings";
-
-static int add_default_dirs(void)
-{
-       add_script_search_dir(zylin_config_dir);
-       add_script_search_dir("/rom/lib/openocd");
-       add_script_search_dir("/rom");
-       return ERROR_OK;
-}
-
-int main(int argc, char *argv[])
-{
-       /* ramblockdevice will be the same address every time. The deflate app uses a buffer 16mBytes out, so we
-        * need to allocate towards the end of the heap.  */
-
-#ifdef CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
-       setHandler(CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION);
-       setHandler(CYGNUM_HAL_VECTOR_ABORT_PREFETCH);
-       setHandler(CYGNUM_HAL_VECTOR_ABORT_DATA);
-#endif
-
-       int err;
-
-       atexit(keep_webserver);
-
-       diag_init_putc(_zylinjtag_diag_write_char);
-       // We want this in the log.
-#ifdef CYGPKG_HAL_NIOS2
-       diag_printf("Zylin ZY1000 PCB revc.\n");
-#else
-       diag_printf("Zylin ZY1000 PCB revb.\n");
-#endif
-
-       err = mount("", "/ram", "ramfs");
-       if (err < 0)
-       {
-               diag_printf("unable to mount ramfs\n");
-       }
-       chdir("/ram");
-
-       char address[16];
-       sprintf(address, "%p", &filedata[0]);
-       err = mount(address, "/rom", "romfs");
-       if (err < 0)
-       {
-               diag_printf("unable to mount /rom\n");
-       }
-
-       err = mount("", "/log", "logfs");
-       if (err < 0)
-       {
-               diag_printf("unable to mount logfs\n");
-       }
-
-       err = mount("", "/tftp", "tftpfs");
-       if (err < 0)
-       {
-               diag_printf("unable to mount logfs\n");
-       }
-
-       log = fopen("/log/log", "w");
-       if (log == NULL)
-       {
-               diag_printf("Could not open log file /ram/log\n");
-               exit(-1);
-       }
-
-
-       copydir("/rom", "/ram/cgi");
-
-#ifdef CYGPKG_HAL_NIOS2
-       cyg_flashaddr_t err_address;
-#define UNCACHED_EXT_FLASH_BASE (0x80000000 + EXT_FLASH_BASE)
-       /* The revc flash is locked upon reset, unlock it */
-#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING
-       if ((err = flash_unlock((void *) UNCACHED_EXT_FLASH_BASE, EXT_FLASH_SPAN,
-                       (void **) &err_address)) != 0)
-       {
-               diag_printf("Error: could not unlock flash\n");
-       }
-#endif
-#endif
-
-
-       err = mount("/dev/flash1", "/config", "jffs2");
-       if (err < 0)
-       {
-               diag_printf("unable to mount jffs2, falling back to ram disk..\n");
-               err = mount("", "/config", "ramfs");
-               if (err < 0)
-               {
-                       diag_printf("unable to mount /config as ramdisk.\n");
-                       reboot();
-               }
-       }
-       else
-       {
-               /* are we using a ram disk instead of a flash disk? This is used
-                * for ZY1000 live demo...
-                *
-                * copy over flash disk to ram block device
-                */
-               if (boolParam("ramdisk"))
-               {
-                       diag_printf("Unmounting /config from flash and using ram instead\n");
-                       err = umount("/config");
-                       if (err < 0)
-                       {
-                               diag_printf("unable to unmount jffs\n");
-                               reboot();
-                       }
-
-                       err = mount("/dev/flash1", "/config2", "jffs2");
-                       if (err < 0)
-                       {
-                               diag_printf("unable to mount jffs\n");
-                               reboot();
-                       }
-
-                       err = mount("", "/config", "ramfs");
-                       if (err < 0)
-                       {
-                               diag_printf("unable to mount ram block device\n");
-                               reboot();
-                       }
-
-                       //              copydir("/config2", "/config");
-                       copyfile("/config2/ip", "/config/ip");
-                       copydir("/config2/settings", "/config/settings");
-
-                       umount("/config2");
-               }
-       }
-
-       mkdir(zylin_config_dir, 0777);
-       char *dirname = alloc_printf("%s/target", zylin_config_dir);
-       mkdir(dirname, 0777);
-       free(dirname);
-       dirname = alloc_printf("%s/board", zylin_config_dir);
-       mkdir(dirname, 0777);
-       free(dirname);
-       dirname = alloc_printf("%s/event", zylin_config_dir);
-       mkdir(dirname, 0777);
-       free(dirname);
-
-       logAllToSerial = boolParam("logserial");
-
-       // We need the network & web server in case there is something wrong with
-       // the config files that invoke exit()
-       zylinjtag_startNetwork();
-
-       /* we're going to access the jim interpreter from here on... */
-       openocd_sleep_postlude();
-       startUart();
-
-       add_default_dirs();
-
-       /* initialize commandline interface */
-       struct command_context * cmd_ctx;
-       struct command_context *setup_command_handler(Jim_Interp *interp);
-       cmd_ctx = setup_command_handler(httpstate.jim_interp);
-       command_set_output_handler(cmd_ctx, configuration_output_handler, NULL);
-       command_context_mode(cmd_ctx, COMMAND_CONFIG);
-
-       if (util_init(cmd_ctx) != ERROR_OK)
-               return EXIT_FAILURE;
-
-       if (ioutil_init(cmd_ctx) != ERROR_OK)
-               return EXIT_FAILURE;
-
-#ifdef CYGPKG_PROFILE_GPROF
-       Jim_CreateCommand(httpstate.jim_interp, "zy1000_profile", zylinjtag_Jim_Command_profile,
-                       NULL, NULL);
-#endif
-
-       Jim_CreateCommand(httpstate.jim_interp, "zy1000_uart", zylinjtag_Jim_Command_uart, NULL, NULL);
-
-
-       log_init();
-
-       set_log_output(cmd_ctx, log);
-
-       LOG_DEBUG("log init complete");
-
-       //      diag_printf("Executing config files\n");
-
-       if (logAllToSerial)
-       {
-               diag_printf(
-                                "%s/logserial = 1 => sending log output to serial port using \"debug_level 3\" as default.\n", zylin_config_dir);
-               command_run_line(cmd_ctx, "debug_level 3");
-       }
-
-       command_run_linef(cmd_ctx, "script /rom/openocd.cfg");
-
-       int ret;
-       ret = server_init(cmd_ctx);
-       if (ERROR_OK != ret)
-               return EXIT_FAILURE;
-
-       /* we MUST always run the init command as it will launch telnet sessions */
-       command_run_line(cmd_ctx, "init");
-
-       // FIX!!!  Yuk!
-       // diag_printf() is really invoked from many more places than we trust it
-       // not to cause instabilities(e.g. invoking fputc() from an interrupt is *BAD*).
-       //
-       // Disabling it here is safe and gives us enough logged debug output for now. Crossing
-       // fingers that it doesn't cause any crashes.
-       diag_printf("Init complete, GDB & telnet servers launched.\n");
-       command_set_output_handler(cmd_ctx,
-                       zy1000_configuration_output_handler_log, NULL);
-       if (!logAllToSerial)
-       {
-               serialLog = false;
-       }
-
-       /* handle network connections */
-       server_loop(cmd_ctx);
-       openocd_sleep_prelude();
-
-       /* shut server down */
-       server_quit();
-
-       /* free commandline interface */
-       command_done(cmd_ctx);
-       umount("/config");
-
-       exit(0);
-       for (;;)
-               ;
-}
-
-cyg_int32 cyg_httpd_exec_cgi_tcl(char *file_name);
-cyg_int32 homeForm(CYG_HTTPD_STATE *p)
-{
-       cyg_httpd_exec_cgi_tcl("/ram/cgi/index.tcl");
-       return 0;
-}
-
-CYG_HTTPD_HANDLER_TABLE_ENTRY(root_label, "/", homeForm);
-
-CYG_HTTPD_MIME_TABLE_ENTRY(text_mime_label, "text", "text/plain");
-CYG_HTTPD_MIME_TABLE_ENTRY(bin_mime_label, "bin", "application/octet-stream");
-
-#include <pkgconf/system.h>
-#include <pkgconf/hal.h>
-#include <pkgconf/kernel.h>
-#include <pkgconf/io_fileio.h>
-#include <pkgconf/fs_rom.h>
-
-#include <cyg/kernel/ktypes.h>         // base kernel types
-#include <cyg/infra/cyg_trac.h>        // tracing macros
-#include <cyg/infra/cyg_ass.h>         // assertion macros
-#include <cyg/fileio/fileio.h>
-#include <cyg/kernel/kapi.h>
-#include <cyg/infra/diag.h>
-
-//==========================================================================
-// Eventually we want to eXecute In Place from the ROM in a protected
-// environment, so we'll need executables to be aligned to a boundary
-// suitable for MMU protection. A suitable boundary would be the 4k
-// boundary in all the CPU architectures I am currently aware of.
-
-// Forward definitions
-
-// Filesystem operations
-static int tftpfs_mount(cyg_fstab_entry *fste, cyg_mtab_entry *mte);
-static int tftpfs_umount(cyg_mtab_entry *mte);
-static int tftpfs_open(cyg_mtab_entry *mte, cyg_dir dir, const char *name,
-               int mode, cyg_file *fte);
-static int tftpfs_fo_read(struct CYG_FILE_TAG *fp, struct CYG_UIO_TAG *uio);
-static int tftpfs_fo_write(struct CYG_FILE_TAG *fp, struct CYG_UIO_TAG *uio);
-
-// File operations
-static int tftpfs_fo_fsync(struct CYG_FILE_TAG *fp, int mode);
-static int tftpfs_fo_close(struct CYG_FILE_TAG *fp);
-static int tftpfs_fo_lseek(struct CYG_FILE_TAG *fp, off_t *apos, int whence);
-
-//==========================================================================
-// Filesystem table entries
-
-// -------------------------------------------------------------------------
-// Fstab entry.
-// This defines the entry in the filesystem table.
-// For simplicity we use _FILESYSTEM synchronization for all accesses since
-// we should never block in any filesystem operations.
-#if 1
-FSTAB_ENTRY(tftpfs_fste, "tftpfs", 0,
-               CYG_SYNCMODE_NONE,
-               tftpfs_mount,
-               tftpfs_umount,
-               tftpfs_open,
-               (cyg_fsop_unlink *)cyg_fileio_erofs,
-               (cyg_fsop_mkdir *)cyg_fileio_erofs,
-               (cyg_fsop_rmdir *)cyg_fileio_erofs,
-               (cyg_fsop_rename *)cyg_fileio_erofs,
-               (cyg_fsop_link *)cyg_fileio_erofs,
-               (cyg_fsop_opendir *)cyg_fileio_erofs,
-               (cyg_fsop_chdir *)cyg_fileio_erofs,
-               (cyg_fsop_stat *)cyg_fileio_erofs,
-               (cyg_fsop_getinfo *)cyg_fileio_erofs,
-               (cyg_fsop_setinfo *)cyg_fileio_erofs);
-#endif
-
-// -------------------------------------------------------------------------
-// mtab entry.
-// This defines a single ROMFS loaded into ROM at the configured address
-//
-// MTAB_ENTRY(rom_mte, // structure name
-//             "/rom",         // mount point
-//             "romfs",        // FIlesystem type
-//             "",             // hardware device
-//  (CYG_ADDRWORD) CYGNUM_FS_ROM_BASE_ADDRESS  // Address in ROM
-//);
-
-
-// -------------------------------------------------------------------------
-// File operations.
-// This set of file operations are used for normal open files.
-
-static cyg_fileops tftpfs_fileops =
-{ tftpfs_fo_read, tftpfs_fo_write, tftpfs_fo_lseek,
-               (cyg_fileop_ioctl *) cyg_fileio_erofs, cyg_fileio_seltrue,
-               tftpfs_fo_fsync, tftpfs_fo_close,
-               (cyg_fileop_fstat *) cyg_fileio_erofs,
-               (cyg_fileop_getinfo *) cyg_fileio_erofs,
-               (cyg_fileop_setinfo *) cyg_fileio_erofs, };
-
-// -------------------------------------------------------------------------
-// tftpfs_mount()
-// Process a mount request. This mainly finds root for the
-// filesystem.
-
-static int tftpfs_mount(cyg_fstab_entry *fste, cyg_mtab_entry *mte)
-{
-       return ENOERR;
-}
-
-static int tftpfs_umount(cyg_mtab_entry *mte)
-{
-       return ENOERR;
-}
-
-struct Tftp
-{
-       int write;
-       int readFile;
-       cyg_uint8 *mem;
-       int actual;
-       char *server;
-       int port;
-       char *file;
-};
-
-static void freeTftp(struct Tftp *t)
-{
-       if (t == NULL)
-               return;
-       if (t->mem)
-               free(t->mem);
-       if (t->server)
-               free(t->server);
-       if (t->file)
-               free(t->file);
-       free(t);
-}
-
-static const int tftpMaxSize = 8192 * 1024;
-static int tftpfs_open(cyg_mtab_entry *mte, cyg_dir dir, const char *name,
-               int mode, cyg_file *file)
-{
-       struct Tftp *tftp;
-       tftp = malloc(sizeof(struct Tftp));
-       if (tftp == NULL)
-               return EMFILE;
-       memset(tftp, 0, sizeof(struct Tftp));
-
-       file->f_flag |= mode & CYG_FILE_MODE_MASK;
-       file->f_type = CYG_FILE_TYPE_FILE;
-       file->f_ops = &tftpfs_fileops;
-       file->f_offset = 0;
-       file->f_data = 0;
-       file->f_xops = 0;
-
-       tftp->mem = malloc(tftpMaxSize);
-       if (tftp->mem == NULL)
-       {
-               freeTftp(tftp);
-               return EMFILE;
-       }
-
-       char *server = strchr(name, '/');
-       if (server == NULL)
-       {
-               freeTftp(tftp);
-               return EMFILE;
-       }
-
-       tftp->server = malloc(server - name + 1);
-       if (tftp->server == NULL)
-       {
-               freeTftp(tftp);
-               return EMFILE;
-       }
-       strncpy(tftp->server, name, server - name);
-       tftp->server[server - name] = 0;
-
-       tftp->port = 0; /* default port 69 */
-       char *port;
-       port = strchr(tftp->server, ':');
-       if (port != NULL)
-       {
-               tftp->port = atoi(port + 1);
-               *port = 0;
-       }
-
-       tftp->file = strdup(server + 1);
-       if (tftp->file == NULL)
-       {
-               freeTftp(tftp);
-               return EMFILE;
-       }
-
-       file->f_data = (CYG_ADDRWORD) tftp;
-
-       return ENOERR;
-}
-
-static int fetchTftp(struct Tftp *tftp)
-{
-       if (!tftp->readFile)
-       {
-               int err;
-               tftp->actual = tftp_client_get(tftp->file, tftp->server, tftp->port, tftp->mem,
-                               tftpMaxSize, TFTP_OCTET, &err);
-
-               if (tftp->actual < 0)
-               {
-                       return EMFILE;
-               }
-               tftp->readFile = 1;
-       }
-       return ENOERR;
-}
-
-// -------------------------------------------------------------------------
-// tftpfs_fo_write()
-// Read data from file.
-
-static int tftpfs_fo_read(struct CYG_FILE_TAG *fp, struct CYG_UIO_TAG *uio)
-{
-       struct Tftp *tftp = (struct Tftp *) fp->f_data;
-
-       if (fetchTftp(tftp) != ENOERR)
-               return EMFILE;
-
-       int i;
-       off_t pos = fp->f_offset;
-       int resid = 0;
-       for (i = 0; i < uio->uio_iovcnt; i++)
-       {
-               cyg_iovec *iov = &uio->uio_iov[i];
-               char *buf = (char *) iov->iov_base;
-               off_t len = iov->iov_len;
-
-               if (len + pos > tftp->actual)
-               {
-                       len = tftp->actual - pos;
-               }
-               resid += iov->iov_len - len;
-
-               memcpy(buf, tftp->mem + pos, len);
-               pos += len;
-
-       }
-       uio->uio_resid = resid;
-       fp->f_offset = pos;
-
-       return ENOERR;
-}
-
-static int tftpfs_fo_write(struct CYG_FILE_TAG *fp, struct CYG_UIO_TAG *uio)
-{
-       struct Tftp *tftp = (struct Tftp *) fp->f_data;
-
-       int i;
-       off_t pos = fp->f_offset;
-       int resid = 0;
-       for (i = 0; i < uio->uio_iovcnt; i++)
-       {
-               cyg_iovec *iov = &uio->uio_iov[i];
-               char *buf = (char *) iov->iov_base;
-               off_t len = iov->iov_len;
-
-               if (len + pos > tftpMaxSize)
-               {
-                       len = tftpMaxSize - pos;
-               }
-               resid += iov->iov_len - len;
-
-               memcpy(tftp->mem + pos, buf, len);
-               pos += len;
-
-       }
-       uio->uio_resid = resid;
-       fp->f_offset = pos;
-
-       tftp->write = 1;
-
-       return ENOERR;
-}
-
-static int tftpfs_fo_fsync(struct CYG_FILE_TAG *fp, int mode)
-{
-       int error = ENOERR;
-       return error;
-}
-
-// -------------------------------------------------------------------------
-// romfs_fo_close()
-// Close a file. We just clear out the data pointer.
-
-static int tftpfs_fo_close(struct CYG_FILE_TAG *fp)
-{
-       struct Tftp *tftp = (struct Tftp *) fp->f_data;
-       int error = ENOERR;
-
-       if (tftp->write)
-       {
-               tftp_client_put(tftp->file, tftp->server, 0, tftp->mem, fp->f_offset,
-                               TFTP_OCTET, &error);
-       }
-
-       freeTftp(tftp);
-       fp->f_data = 0;
-       return error;
-}
-
-// -------------------------------------------------------------------------
-// romfs_fo_lseek()
-// Seek to a new file position.
-
-static int tftpfs_fo_lseek(struct CYG_FILE_TAG *fp, off_t *apos, int whence)
-{
-       struct Tftp *tftp = (struct Tftp *) fp->f_data;
-       off_t pos = *apos;
-
-       if (fetchTftp(tftp) != ENOERR)
-               return EMFILE;
-
-       switch (whence)
-       {
-       case SEEK_SET:
-               // Pos is already where we want to be.
-               break;
-
-       case SEEK_CUR:
-               // Add pos to current offset.
-               pos += fp->f_offset;
-               break;
-
-       case SEEK_END:
-               // Add pos to file size.
-               pos += tftp->actual;
-               break;
-
-       default:
-               return EINVAL;
-       }
-
-       // Check that pos is still within current file size, or at the
-       // very end.
-       if (pos < 0 || pos > tftp->actual)
-               return EINVAL;
-
-       // All OK, set fp offset and return new position.
-       *apos = fp->f_offset = pos;
-
-       return ENOERR;
-}
-
-void usleep(int us)
-{
-       if (us > 10000)
-               cyg_thread_delay(us / 10000 + 1);
-       else
-               HAL_DELAY_US(us);
-}
-
-// Chunked version.
-cyg_int32 show_log_entry(CYG_HTTPD_STATE *phttpstate)
-{
-       cyg_httpd_start_chunked("text");
-       if (logCount >= logSize)
-       {
-               cyg_httpd_write_chunked(logBuffer + logCount % logSize, logSize
-                               - logCount % logSize);
-       }
-       cyg_httpd_write_chunked(logBuffer, writePtr);
-       cyg_httpd_end_chunked();
-       return -1;
-}
-
-CYG_HTTPD_HANDLER_TABLE_ENTRY(show_log, "/ram/log", show_log_entry);
-
-// Filesystem operations
-static int logfs_mount(cyg_fstab_entry *fste, cyg_mtab_entry *mte);
-static int logfs_umount(cyg_mtab_entry *mte);
-static int logfs_open(cyg_mtab_entry *mte, cyg_dir dir, const char *name,
-               int mode, cyg_file *fte);
-static int logfs_fo_write(struct CYG_FILE_TAG *fp, struct CYG_UIO_TAG *uio);
-
-// File operations
-static int logfs_fo_fsync(struct CYG_FILE_TAG *fp, int mode);
-static int logfs_fo_close(struct CYG_FILE_TAG *fp);
-
-#include <cyg/io/devtab.h>
-
-//==========================================================================
-// Filesystem table entries
-
-// -------------------------------------------------------------------------
-// Fstab entry.
-// This defines the entry in the filesystem table.
-// For simplicity we use _FILESYSTEM synchronization for all accesses since
-// we should never block in any filesystem operations.
-FSTAB_ENTRY(logfs_fste, "logfs", 0,
-               CYG_SYNCMODE_FILE_FILESYSTEM | CYG_SYNCMODE_IO_FILESYSTEM,
-               logfs_mount,
-               logfs_umount,
-               logfs_open,
-               (cyg_fsop_unlink *)cyg_fileio_erofs,
-               (cyg_fsop_mkdir *)cyg_fileio_erofs,
-               (cyg_fsop_rmdir *)cyg_fileio_erofs,
-               (cyg_fsop_rename *)cyg_fileio_erofs,
-               (cyg_fsop_link *)cyg_fileio_erofs,
-               (cyg_fsop_opendir *)cyg_fileio_erofs,
-               (cyg_fsop_chdir *)cyg_fileio_erofs,
-               (cyg_fsop_stat *)cyg_fileio_erofs,
-               (cyg_fsop_getinfo *)cyg_fileio_erofs,
-               (cyg_fsop_setinfo *)cyg_fileio_erofs);
-
-// -------------------------------------------------------------------------
-// File operations.
-// This set of file operations are used for normal open files.
-
-static cyg_fileops logfs_fileops =
-{ (cyg_fileop_read *) cyg_fileio_erofs, (cyg_fileop_write *) logfs_fo_write,
-               (cyg_fileop_lseek *) cyg_fileio_erofs,
-               (cyg_fileop_ioctl *) cyg_fileio_erofs, cyg_fileio_seltrue,
-               logfs_fo_fsync, logfs_fo_close, (cyg_fileop_fstat *) cyg_fileio_erofs,
-               (cyg_fileop_getinfo *) cyg_fileio_erofs,
-               (cyg_fileop_setinfo *) cyg_fileio_erofs, };
-
-// -------------------------------------------------------------------------
-// logfs_mount()
-// Process a mount request. This mainly finds root for the
-// filesystem.
-
-static int logfs_mount(cyg_fstab_entry *fste, cyg_mtab_entry *mte)
-{
-       return ENOERR;
-}
-
-static int logfs_umount(cyg_mtab_entry *mte)
-{
-       return ENOERR;
-}
-
-static int logfs_open(cyg_mtab_entry *mte, cyg_dir dir, const char *name,
-               int mode, cyg_file *file)
-{
-       file->f_flag |= mode & CYG_FILE_MODE_MASK;
-       file->f_type = CYG_FILE_TYPE_FILE;
-       file->f_ops = &logfs_fileops;
-       file->f_offset = 0;
-       file->f_data = 0;
-       file->f_xops = 0;
-       return ENOERR;
-}
-
-// -------------------------------------------------------------------------
-// logfs_fo_write()
-// Write data to file.
-
-static int logfs_fo_write(struct CYG_FILE_TAG *fp, struct CYG_UIO_TAG *uio)
-{
-       int i;
-       for (i = 0; i < uio->uio_iovcnt; i++)
-       {
-               cyg_iovec *iov = &uio->uio_iov[i];
-               char *buf = (char *) iov->iov_base;
-               off_t len = iov->iov_len;
-
-               diag_write(buf, len);
-       }
-       uio->uio_resid = 0;
-
-       return ENOERR;
-}
-static int logfs_fo_fsync(struct CYG_FILE_TAG *fp, int mode)
-{
-       return ENOERR;
-}
-
-// -------------------------------------------------------------------------
-// romfs_fo_close()
-// Close a file. We just clear out the data pointer.
-
-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;
-}
-
index c9479b43edb18aba62a6f098f952e75d63059262..6189b63ab1ab69f58d55fde635ed0d370cca288e 100644 (file)
@@ -3,13 +3,7 @@ include $(top_srcdir)/common.mk
 METASOURCES = AUTO
 noinst_LTLIBRARIES = libhelper.la
 
 METASOURCES = AUTO
 noinst_LTLIBRARIES = libhelper.la
 
-if ECOSBOARD
-CONFIGFILES = time_support_ecos.c
-else
 CONFIGFILES = options.c time_support_common.c
 CONFIGFILES = options.c time_support_common.c
-endif
-
-
 
 libhelper_la_SOURCES = \
        binarybuffer.c \
 
 libhelper_la_SOURCES = \
        binarybuffer.c \
index c218f3fc0b9afabbfbf4df6fe915ebac2955ce03..fb1a709a5dee6f65c4f326e105a6d561a0bdf70e 100644 (file)
 #include "config.h"
 #endif
 
 #include "config.h"
 #endif
 
-#if !BUILD_ECOSBOARD
 /* see Embedder-HOWTO.txt in Jim Tcl project hosted on BerliOS*/
 #define JIM_EMBEDDED
 /* see Embedder-HOWTO.txt in Jim Tcl project hosted on BerliOS*/
 #define JIM_EMBEDDED
-#endif
 
 /* @todo the inclusion of target.h here is a layering violation */
 #include <jtag/jtag.h>
 
 /* @todo the inclusion of target.h here is a layering violation */
 #include <jtag/jtag.h>
@@ -1280,7 +1278,6 @@ struct command_context *command_init(const char *startup_tcl, Jim_Interp *interp
        context->output_handler = NULL;
        context->output_handler_priv = NULL;
 
        context->output_handler = NULL;
        context->output_handler_priv = NULL;
 
-#if !BUILD_ECOSBOARD
        /* Create a jim interpreter if we were not handed one */
        if (interp == NULL) {
                /* Create an interpreter */
        /* Create a jim interpreter if we were not handed one */
        if (interp == NULL) {
                /* Create an interpreter */
@@ -1289,7 +1286,7 @@ struct command_context *command_init(const char *startup_tcl, Jim_Interp *interp
                Jim_RegisterCoreCommands(interp);
                Jim_InitStaticExtensions(interp);
        }
                Jim_RegisterCoreCommands(interp);
                Jim_InitStaticExtensions(interp);
        }
-#endif
+
        context->interp = interp;
 
        /* Stick to lowercase for HostOS strings. */
        context->interp = interp;
 
        /* Stick to lowercase for HostOS strings. */
@@ -1349,7 +1346,6 @@ int command_context_mode(struct command_context *cmd_ctx, enum command_mode mode
 
 void process_jim_events(struct command_context *cmd_ctx)
 {
 
 void process_jim_events(struct command_context *cmd_ctx)
 {
-#if !BUILD_ECOSBOARD
        static int recursion;
        if (recursion)
                return;
        static int recursion;
        if (recursion)
                return;
@@ -1357,7 +1353,6 @@ void process_jim_events(struct command_context *cmd_ctx)
        recursion++;
        Jim_ProcessEvents(cmd_ctx->interp, JIM_ALL_EVENTS | JIM_DONT_WAIT);
        recursion--;
        recursion++;
        Jim_ProcessEvents(cmd_ctx->interp, JIM_ALL_EVENTS | JIM_DONT_WAIT);
        recursion--;
-#endif
 }
 
 #define DEFINE_PARSE_NUM_TYPE(name, type, func, min, max) \
 }
 
 #define DEFINE_PARSE_NUM_TYPE(name, type, func, min, max) \
index 01316a1a56d1c23292ac2bb3ec8411f515e3916d..7cd5cc4c76fcf23205f3acaf5a993e6d7879da97 100644 (file)
 
 #include <helper/types.h>
 
 
 #include <helper/types.h>
 
-/* Integrate the JIM TCL interpretor into the command processing. */
-#if BUILD_ECOSBOARD
-#include <stdio.h>
-#include <stdarg.h>
-#endif
-
 #include <jim.h>
 #include <jim-nvp.h>
 
 #include <jim.h>
 #include <jim-nvp.h>
 
index 4e9d6878eae396b72b3c533ac80b630aaffbcc20..684950d148899a888754179d8b939402b2835dce 100644 (file)
 #include <ifaddrs.h>
 #endif
 #ifdef HAVE_MALLOC_H
 #include <ifaddrs.h>
 #endif
 #ifdef HAVE_MALLOC_H
-#if !BUILD_ECOSBOARD
 #include <malloc.h>
 #endif
 #include <malloc.h>
 #endif
-#endif
 
 /* loads a file and returns a pointer to it in memory. The file contains
  * a 0 byte(sentinel) after len bytes - the length of the file. */
 
 /* loads a file and returns a pointer to it in memory. The file contains
  * a 0 byte(sentinel) after len bytes - the length of the file. */
index 6f2e959519090163e3ca645b3479df698b58d2fc..ceb22584ccaa7fed50887989bfbfc017842f143d 100644 (file)
@@ -128,12 +128,8 @@ static inline unsigned usleep(unsigned int usecs)
        return 0;
 }
 #else
        return 0;
 }
 #else
-#if BUILD_ECOSBOARD
-void usleep(int us);
-#else
 #error no usleep defined for your platform
 #endif
 #error no usleep defined for your platform
 #endif
-#endif
 #endif /* HAVE_USLEEP */
 
 /* Windows specific */
 #endif /* HAVE_USLEEP */
 
 /* Windows specific */
index 85e0b1ee91413c76278816453b89b2e9dd2a8c5e..82d0cae7e8b1027d0134c30f60efa6a25597762e 100644 (file)
@@ -45,9 +45,6 @@
 /* --- AC_HEADER_TIME --- */
 
 /* +++ platform specific headers +++ */
 /* --- AC_HEADER_TIME --- */
 
 /* +++ platform specific headers +++ */
-#if BUILD_ECOSBOARD == 1
-#include <pkgconf/system.h>
-#endif
 #ifdef _WIN32
 #include <winsock2.h>
 #include <ws2tcpip.h>
 #ifdef _WIN32
 #include <winsock2.h>
 #include <ws2tcpip.h>
diff --git a/src/helper/time_support_ecos.c b/src/helper/time_support_ecos.c
deleted file mode 100644 (file)
index 110edd2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************
- *   Copyright (C) 2006 by Dominic Rath                                    *
- *   Dominic.Rath@gmx.de                                                   *
- *                                                                         *
- *   Copyright (C) 2007,2008 Øyvind Harboe                                 *
- *   oyvind.harboe@zylin.com                                               *
- *                                                                         *
- *   Copyright (C) 2008 by Spencer Oliver                                  *
- *   spen@spen-soft.co.uk                                                  *
- *                                                                         *
- *   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 "time_support.h"
-
-#include <cyg/kernel/kapi.h>
-
-int64_t timeval_ms()
-{
-       /* Faster/less noisy implementation of getting ms when
-        * profiling
-        */
-       static const int ms_per_tick =
-               (CYGNUM_HAL_RTC_NUMERATOR / CYGNUM_HAL_RTC_DENOMINATOR) / 1000000;
-       cyg_tick_count_t cur_time = cyg_current_time();
-       return ((int)cur_time) * ms_per_tick;
-}
index 15d921838ad41346ffe3b5e094b4478cd37be803..ac6da53632445745590855dc57c4d197bfb04423 100644 (file)
 
 #if BUILD_ZY1000_MASTER
 
 
 #if BUILD_ZY1000_MASTER
 
-#if BUILD_ECOSBOARD
-#include <cyg/hal/hal_io.h>            /* low level i/o */
-#include <cyg/hal/hal_intr.h>                  /* low level i/o */
-#define ZY1000_PEEK(a, b) HAL_READ_UINT32(a, b)
-#define ZY1000_POKE(a, b) HAL_WRITE_UINT32(a, b)
-#else
 #define ZY1000_PEEK(a, b) do {b = *((volatile uint32_t *)(a)); } while (0)
 #define ZY1000_POKE(a, b) do {*((volatile uint32_t *)(a)) = b; } while (0)
 extern volatile void *zy1000_jtag_master;
 #define ZY1000_JTAG_BASE ((unsigned long)zy1000_jtag_master)
 #define ZY1000_PEEK(a, b) do {b = *((volatile uint32_t *)(a)); } while (0)
 #define ZY1000_POKE(a, b) do {*((volatile uint32_t *)(a)) = b; } while (0)
 extern volatile void *zy1000_jtag_master;
 #define ZY1000_JTAG_BASE ((unsigned long)zy1000_jtag_master)
-#endif
 
 #else
 
 
 #else
 
index e61a61839010b6d237eab872f4f3db0b96be9b37..027049d84bbaf926dbfafffcbd533f0f9700ba25 100644 (file)
 
 #include <netinet/tcp.h>
 
 
 #include <netinet/tcp.h>
 
-#if BUILD_ECOSBOARD
-#include "zy1000_version.h"
-
-#include <cyg/hal/hal_io.h>            /* low level i/o */
-#include <cyg/hal/hal_diag.h>
-
-#ifdef CYGPKG_HAL_NIOS2
-#include <cyg/hal/io.h>
-#include <cyg/firmwareutil/firmwareutil.h>
-#define ZYLIN_KHZ 60000
-#else
-#define ZYLIN_KHZ 64000
-#endif
-
-#define ZYLIN_VERSION GIT_ZY1000_VERSION
-#define ZYLIN_DATE __DATE__
-#define ZYLIN_TIME __TIME__
-#define ZYLIN_OPENOCD GIT_OPENOCD_VERSION
-#define ZYLIN_OPENOCD_VERSION "ZY1000 " ZYLIN_VERSION " " ZYLIN_DATE
-
-#else
 /* Assume we're connecting to a revc w/60MHz clock. */
 #define ZYLIN_KHZ 60000
 /* Assume we're connecting to a revc w/60MHz clock. */
 #define ZYLIN_KHZ 60000
-#endif
 
 /* The software needs to check if it's in RCLK mode or not */
 static bool zy1000_rclk;
 
 /* The software needs to check if it's in RCLK mode or not */
 static bool zy1000_rclk;
@@ -312,111 +290,6 @@ static int jim_zy1000_server(Jim_Interp *interp, int argc, Jim_Obj * const *argv
 }
 #endif
 
 }
 #endif
 
-#if BUILD_ECOSBOARD
-/* Give TELNET a way to find out what version this is */
-static int jim_zy1000_version(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
-{
-       if ((argc < 1) || (argc > 3))
-               return JIM_ERR;
-       const char *version_str = NULL;
-
-       if (argc == 1)
-               version_str = ZYLIN_OPENOCD_VERSION;
-       else {
-               const char *str = Jim_GetString(argv[1], NULL);
-               const char *str2 = NULL;
-               if (argc > 2)
-                       str2 = Jim_GetString(argv[2], NULL);
-               if (strcmp("openocd", str) == 0)
-                       version_str = ZYLIN_OPENOCD;
-               else if (strcmp("zy1000", str) == 0)
-                       version_str = ZYLIN_VERSION;
-               else if (strcmp("date", str) == 0)
-                       version_str = ZYLIN_DATE;
-               else if (strcmp("time", str) == 0)
-                       version_str = ZYLIN_TIME;
-               else if (strcmp("pcb", str) == 0) {
-#ifdef CYGPKG_HAL_NIOS2
-                       version_str = "c";
-#else
-                       version_str = "b";
-#endif
-               }
-#ifdef CYGPKG_HAL_NIOS2
-               else if (strcmp("fpga", str) == 0) {
-
-                       /* return a list of 32 bit integers to describe the expected
-                        * and actual FPGA
-                        */
-                       static char *fpga_id = "0x12345678 0x12345678 0x12345678 0x12345678";
-                       uint32_t id, timestamp;
-                       HAL_READ_UINT32(SYSID_BASE, id);
-                       HAL_READ_UINT32(SYSID_BASE+4, timestamp);
-                       sprintf(fpga_id,
-                               "0x%08x 0x%08x 0x%08x 0x%08x",
-                               id,
-                               timestamp,
-                               SYSID_ID,
-                               SYSID_TIMESTAMP);
-                       version_str = fpga_id;
-                       if ((argc > 2) && (strcmp("time", str2) == 0)) {
-                               time_t last_mod = timestamp;
-                               char *t = ctime(&last_mod);
-                               t[strlen(t)-1] = 0;
-                               version_str = t;
-                       }
-               }
-#endif
-
-               else
-                       return JIM_ERR;
-       }
-
-       Jim_SetResult(interp, Jim_NewStringObj(interp, version_str, -1));
-
-       return JIM_OK;
-}
-#endif
-
-#ifdef CYGPKG_HAL_NIOS2
-
-
-struct info_forward {
-       void *data;
-       struct cyg_upgrade_info *upgraded_file;
-};
-
-static void report_info(void *data, const char *format, va_list args)
-{
-       char *s = alloc_vprintf(format, args);
-       LOG_USER_N("%s", s);
-       free(s);
-}
-
-struct cyg_upgrade_info firmware_info = {
-       (uint8_t *)0x84000000,
-       "/ram/firmware.phi",
-       "Firmware",
-       0x0300000,
-       0x1f00000 -
-       0x0300000,
-       "ZylinNiosFirmware\n",
-       report_info,
-};
-
-/* File written to /ram/firmware.phi before arriving at this fn */
-static int jim_zy1000_writefirmware(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
-{
-       if (argc != 1)
-               return JIM_ERR;
-
-       if (!cyg_firmware_upgrade(NULL, firmware_info))
-               return JIM_ERR;
-
-       return JIM_OK;
-}
-#endif
-
 static int zylinjtag_Jim_Command_powerstatus(Jim_Interp *interp,
        int argc,
        Jim_Obj * const *argv)
 static int zylinjtag_Jim_Command_powerstatus(Jim_Interp *interp,
        int argc,
        Jim_Obj * const *argv)
@@ -918,17 +791,7 @@ static const struct command_registration zy1000_commands[] = {
                        "With no arguments, prints status.",
                .usage = "('on'|'off)",
        },
                        "With no arguments, prints status.",
                .usage = "('on'|'off)",
        },
-#if BUILD_ZY1000_MASTER
-#if BUILD_ECOSBOARD
-       {
-               .name = "zy1000_version",
-               .mode = COMMAND_ANY,
-               .jim_handler = jim_zy1000_version,
-               .help = "Print version info for zy1000.",
-               .usage = "['openocd'|'zy1000'|'date'|'time'|'pcb'|'fpga']",
-       },
-#endif
-#else
+#if !BUILD_ZY1000_MASTER
        {
                .name = "zy1000_server",
                .mode = COMMAND_ANY,
        {
                .name = "zy1000_server",
                .mode = COMMAND_ANY,
@@ -943,15 +806,6 @@ static const struct command_registration zy1000_commands[] = {
                .jim_handler = zylinjtag_Jim_Command_powerstatus,
                .help = "Returns power status of target",
        },
                .jim_handler = zylinjtag_Jim_Command_powerstatus,
                .help = "Returns power status of target",
        },
-#ifdef CYGPKG_HAL_NIOS2
-       {
-               .name = "updatezy1000firmware",
-               .mode = COMMAND_ANY,
-               .jim_handler = jim_zy1000_writefirmware,
-               .help = "writes firmware to flash",
-               /* .usage = "some_string", */
-       },
-#endif
        COMMAND_REGISTRATION_DONE
 };
 
        COMMAND_REGISTRATION_DONE
 };
 
@@ -1269,12 +1123,6 @@ static void writeShiftValue(uint8_t *data, int bits)
 
 #if BUILD_ZY1000_MASTER
 
 
 #if BUILD_ZY1000_MASTER
 
-#if BUILD_ECOSBOARD
-static char watchdog_stack[2048];
-static cyg_thread watchdog_thread_object;
-static cyg_handle_t watchdog_thread_handle;
-#endif
-
 #ifdef WATCHDOG_BASE
 /* If we connect to port 8888 we must send a char every 10s or the board resets itself */
 static void watchdog_server(cyg_addrword_t data)
 #ifdef WATCHDOG_BASE
 /* If we connect to port 8888 we must send a char every 10s or the board resets itself */
 static void watchdog_server(cyg_addrword_t data)
@@ -1359,16 +1207,14 @@ int interface_jtag_add_sleep(uint32_t us)
 }
 #endif
 
 }
 #endif
 
-#if BUILD_ZY1000_MASTER && !BUILD_ECOSBOARD
+#if BUILD_ZY1000_MASTER
 volatile void *zy1000_jtag_master;
 #include <sys/mman.h>
 #endif
 
 int zy1000_init(void)
 {
 volatile void *zy1000_jtag_master;
 #include <sys/mman.h>
 #endif
 
 int zy1000_init(void)
 {
-#if BUILD_ECOSBOARD
-       LOG_USER("%s", ZYLIN_OPENOCD_VERSION);
-#elif BUILD_ZY1000_MASTER
+#if BUILD_ZY1000_MASTER
        int fd = open("/dev/mem", O_RDWR | O_SYNC);
        if (fd == -1) {
                LOG_ERROR("No access to /dev/mem");
        int fd = open("/dev/mem", O_RDWR | O_SYNC);
        if (fd == -1) {
                LOG_ERROR("No access to /dev/mem");
@@ -1400,17 +1246,6 @@ int zy1000_init(void)
        /* deassert resets. Important to avoid infinite loop waiting for SRST to deassert */
        zy1000_reset(0, 0);
 
        /* deassert resets. Important to avoid infinite loop waiting for SRST to deassert */
        zy1000_reset(0, 0);
 
-#if BUILD_ZY1000_MASTER
-#if BUILD_ECOSBOARD
-#ifdef WATCHDOG_BASE
-       cyg_thread_create(1, watchdog_server, (cyg_addrword_t) 0, "watchdog tcip/ip server",
-               (void *) watchdog_stack, sizeof(watchdog_stack),
-               &watchdog_thread_handle, &watchdog_thread_object);
-       cyg_thread_resume(watchdog_thread_handle);
-#endif
-#endif
-#endif
-
        return ERROR_OK;
 }
 
        return ERROR_OK;
 }
 
index a7c318ce696b3016dbbe90a5486de0fc64f98d1d..04d3035f452870fda945cd3721f88a6a6bc5cd1f 100644 (file)
@@ -5,9 +5,7 @@ noinst_LTLIBRARIES = libserver.la
 noinst_HEADERS = server.h telnet_server.h gdb_server.h
 libserver_la_SOURCES = server.c telnet_server.c gdb_server.c
 
 noinst_HEADERS = server.h telnet_server.h gdb_server.h
 libserver_la_SOURCES = server.c telnet_server.c gdb_server.c
 
-if !ECOSBOARD
 libserver_la_SOURCES += server_stubs.c
 libserver_la_SOURCES += server_stubs.c
-endif
 
 libserver_la_CFLAGS =
 if IS_MINGW
 
 libserver_la_CFLAGS =
 if IS_MINGW
index b6ff5ed932fbeb7ff1085dfc85729a9644b534fb..bbcfdc0fafb045c04968bd42f84081604d533e5d 100644 (file)
@@ -87,11 +87,11 @@ int connection_write(struct connection *connection, const void *data, int len);
 int connection_read(struct connection *connection, void *data, int len);
 
 /**
 int connection_read(struct connection *connection, void *data, int len);
 
 /**
- * Used by server_loop(), defined in server_stubs.c or ecosboard.c
+ * Used by server_loop(), defined in server_stubs.c
  */
 void openocd_sleep_prelude(void);
 /**
  */
 void openocd_sleep_prelude(void);
 /**
- * Used by server_loop(), defined in server_stubs.c or ecosboard.c
+ * Used by server_loop(), defined in server_stubs.c
  */
 void openocd_sleep_postlude(void);
 
  */
 void openocd_sleep_postlude(void);
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)