split nand.c into nand/{core,fileio,tcl}.c
[openocd.git] / src / ecosboard.c
index 0cbba3e0a28f0903e1a40cee586f8a09c49caa37..7d0c3d057beb72cc3631f8ca5bf07d4d9cdf658f 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2007-2008 by Øyvind Harboe                              *
+ *   Copyright (C) 2007-2009 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  *
 #include "config.h"
 #endif
 
-#include "types.h"
-#include "jtag.h"
-#include "configuration.h"
-#include "xsvf.h"
-#include "svf.h"
-#include "nand.h"
-#include "pld.h"
-
-#include "server.h"
-#include "telnet_server.h"
-#include "gdb_server.h"
-#include "openocd.h"
-
-#include <time_support.h>
+#include <helper/types.h>
+#include <jtag/jtag.h>
+#include <helper/ioutil.h>
+#include <helper/configuration.h>
+#include <xsvf/xsvf.h>
+#include <svf/svf.h>
+#include <flash/nand.h>
+#include <pld/pld.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 <unistd.h>
 #include <stdio.h>
 
+#include <openocd.h>
+
+#ifdef CYGPKG_HAL_NIOS2
+#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)
@@ -497,8 +507,6 @@ static void zylinjtag_startNetwork(void)
 
        cyg_httpd_init_tcl_interpreter();
 
-       interp = httpstate.jim_interp;
-
        Jim_CreateCommand(httpstate.jim_interp, "log", zylinjtag_Jim_Command_log,
                        NULL, NULL);
        Jim_CreateCommand(httpstate.jim_interp, "zy1000_reboot",
@@ -684,7 +692,7 @@ static void zylinjtag_uart(cyg_addrword_t data)
                int oldopts = fcntl(session, F_GETFL, 0);
                fcntl(session, F_SETFL, oldopts | O_NONBLOCK); //
 
-               int serHandle = open("/dev/ser0", O_RDWR | O_NONBLOCK);
+               int serHandle = open(ZY1000_SER_DEV, O_RDWR | O_NONBLOCK);
                if (serHandle < 0)
                {
                        close(session);
@@ -837,21 +845,25 @@ void startUart(void)
        cyg_thread_resume(zylinjtag_uart_thread_handle);
 }
 
-int handle_uart_command(struct command_context *cmd_ctx, char *cmd,
-               char **args, int argc)
+static int zylinjtag_Jim_Command_uart(Jim_Interp *interp, int argc,
+               Jim_Obj * const *argv)
 {
        static int current_baud = 38400;
-       if (argc == 0)
+       if (argc == 1)
        {
                command_print(cmd_ctx, "%d", current_baud);
-               return ERROR_OK;
+               return JIM_OK;
        }
-       else if (argc != 1)
+       else if (argc != 2)
        {
-               return ERROR_INVALID_ARGUMENTS;
+               return JIM_ERR;
        }
 
-       current_baud = atol(args[0]);
+       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)
@@ -886,11 +898,11 @@ int handle_uart_command(struct command_context *cmd_ctx, char *cmd,
        int err;
        cyg_io_handle_t serial_handle;
 
-       err = cyg_io_lookup("/dev/ser0", &serial_handle);
+       err = cyg_io_lookup(ZY1000_SER_DEV, &serial_handle);
        if (err != ENOERR)
        {
-               LOG_ERROR("/dev/ser0 not found\n");
-               return ERROR_FAIL;
+               LOG_ERROR("Could not open serial port\n");
+               return JIM_ERR;
        }
 
        err = cyg_io_get_config(serial_handle,
@@ -899,8 +911,8 @@ int handle_uart_command(struct command_context *cmd_ctx, char *cmd,
                        &len);
        if (err != ENOERR)
        {
-               command_print(cmd_ctx, "Failed to get serial port settings %d", err);
-               return ERROR_OK;
+               LOG_ERROR("Failed to get serial port settings %d", err);
+               return JIM_ERR;
        }
        buf.baud = baud;
 
@@ -908,11 +920,11 @@ int handle_uart_command(struct command_context *cmd_ctx, char *cmd,
                        &len);
        if (err != ENOERR)
        {
-               command_print(cmd_ctx, "Failed to set serial port settings %d", err);
-               return ERROR_OK;
+               LOG_ERROR("Failed to set serial port settings %d", err);
+               return JIM_ERR;
        }
 
-       return ERROR_OK;
+       return JIM_OK;
 }
 
 bool logAllToSerial = false;
@@ -921,8 +933,6 @@ bool logAllToSerial = false;
 int boolParam(char *var);
 
 
-struct command_context *setup_command_handler(void);
-
 static const char *zylin_config_dir="/config/settings";
 
 static int add_default_dirs(void)
@@ -933,8 +943,6 @@ static int add_default_dirs(void)
        return ERROR_OK;
 }
 
-int ioutil_init(struct command_context *cmd_ctx);
-
 int main(int argc, char *argv[])
 {
        /* ramblockdevice will be the same address every time. The deflate app uses a buffer 16mBytes out, so we
@@ -1066,33 +1074,23 @@ int main(int argc, char *argv[])
 
        /* initialize commandline interface */
        struct command_context * cmd_ctx;
-       cmd_ctx = setup_command_handler();
+       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 BUILD_IOUTIL
        if (ioutil_init(cmd_ctx) != ERROR_OK)
-       {
                return EXIT_FAILURE;
-       }
-#endif
-
 
 #ifdef CYGPKG_PROFILE_GPROF
-       register_command(cmd_ctx, NULL, "ecosboard_profile", eCosBoard_handle_eCosBoard_profile_command,
+       COMMAND_REGISTER(cmd_ctx, NULL, "ecosboard_profile", eCosBoard_handle_eCosBoard_profile_command,
                        COMMAND_ANY, NULL);
 #endif
 
-       register_command(cmd_ctx, NULL, "uart", handle_uart_command, COMMAND_ANY,
-                       "uart <baud>  - forward uart on port 5555");
+       Jim_CreateCommand(httpstate.jim_interp, "uart", zylinjtag_Jim_Command_uart, NULL, NULL);
 
-       int errVal;
-       errVal = log_init(cmd_ctx);
-       if (errVal != ERROR_OK)
-       {
-               diag_printf("log_init() failed %d\n", errVal);
-               exit(-1);
-       }
+
+       log_init();
 
        set_log_output(cmd_ctx, log);
 
@@ -1109,6 +1107,11 @@ int main(int argc, char *argv[])
 
        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");
 

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)