- preserve cortex_m3 C_MASKINTS during resume/step
[openocd.git] / src / ecosboard.c
index 7cab4879b2cd9f78096ff6b5e098b4fc055344fe..ed7492c667c7bd2c6e8a98ac8af2445ac27bb278 100644 (file)
@@ -98,7 +98,7 @@ struct tftpd_fileops fileops =
 
 #endif
 
-#define ZYLIN_VERSION "1.46"
+#define ZYLIN_VERSION "1.47"
 #define ZYLIN_DATE __DATE__
 #define ZYLIN_TIME __TIME__
 /* hmmm....  we can't pick up the right # during build if we've checked this out
@@ -119,6 +119,7 @@ void diag_write(char *buf, int len)
 static bool serialLog = true;
 static bool writeLog = true;
 
+char hwaddr[512];
 
 struct FastLoad
 {
@@ -796,7 +797,9 @@ void _zylinjtag_diag_write_char(char c, void **param)
                HAL_DIAG_WRITE_CHAR(c);
        }
 
+#ifdef CYGPKG_HAL_ZYLIN_PHI
        printDccChar(c);
+#endif
 }
 
 #define SHOW_RESULT(a, b) diag_printf(#a " failed %d\n", (int)b)
@@ -1215,33 +1218,9 @@ zylinjtag_Jim_Command_mac(Jim_Interp *interp,
                                    int argc,
                Jim_Obj * const *argv)
 {
-       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)
-               {
-                       return JIM_OK;
-               }
-       }
 
        Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
 
-       char hwaddr[512];
-       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]);
-
        Jim_AppendString(httpstate.jim_interp, tclOutput, hwaddr, strlen(hwaddr));
 
        Jim_SetResult(interp, tclOutput);
@@ -1295,6 +1274,7 @@ zylinjtag_Jim_Command_ip(Jim_Interp *interp,
 
 extern Jim_Interp *interp;
 
+
 static void zylinjtag_startNetwork()
 {
        // Bring TCP/IP up immediately before we're ready to accept commands.
@@ -1337,6 +1317,34 @@ static void zylinjtag_startNetwork()
 
        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();
 }
 
@@ -1352,6 +1360,7 @@ print_exception_handler(cyg_addrword_t data, cyg_code_t exception, cyg_addrword_
        char *infoStr = "unknown";
        switch (exception)
        {
+#ifdef CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
        case CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION:
                infoStr = "undefined instruction";
                break;
@@ -1364,6 +1373,7 @@ print_exception_handler(cyg_addrword_t data, cyg_code_t exception, cyg_addrword_
        case CYGNUM_HAL_VECTOR_ABORT_DATA:
                infoStr = "abort data";
                break;
+#endif
        default:
                break;
        }
@@ -1487,7 +1497,9 @@ zylinjtag_uart(cyg_addrword_t data)
                        continue;
                }
 
+#ifdef CYGPKG_PROFILE_GPROF
                start_profile();
+#endif
                int actual = 0;
                int actual2 = 0;
                int pos, pos2;
@@ -1631,15 +1643,20 @@ void startUart(void)
 
 int handle_uart_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
-       if (argc != 1)
+       static int current_baud = 38400;
+       if (argc == 0)
+       {
+               command_print(cmd_ctx, "%d", current_baud);
+               return ERROR_OK;
+       } else if (argc != 1)
        {
-               command_print(cmd_ctx, "usage: uart <baudrate>");
                return ERROR_INVALID_ARGUMENTS;
        }
 
-       int baud = atol(args[0]);
+       current_baud = atol(args[0]);
 
-       switch (baud)
+       int baud;
+       switch (current_baud)
        {
        case 9600:
                baud = CYGNUM_SERIAL_BAUD_9600;
@@ -1731,9 +1748,11 @@ int main(int argc, char *argv[])
        ramblockdevice=(cyg_uint8 *)malloc(ramblockdevice_size);
        memset(ramblockdevice, 0xff, ramblockdevice_size);
 
+#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;
        err = cyg_io_lookup("/dev/ser0", &serial_handle);

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)