hla: if the idcode callback returns 0, treat as a wildcard 73/1673/2
authorPaul Fertser <fercerpav@gmail.com>
Sun, 29 Sep 2013 15:12:17 +0000 (19:12 +0400)
committerSpencer Oliver <spen@spen-soft.co.uk>
Thu, 3 Oct 2013 11:24:24 +0000 (11:24 +0000)
Also document the callback accordingly.

Change-Id: I7e8ef481e8b5391b763b7f7187fac023e9fe04df
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1673
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/jtag/drivers/ti_icdi_usb.c
src/jtag/hla/hla_interface.c
src/jtag/hla/hla_layout.h

index 0d7d943bede0ed04734930860b4c3bb152d34b68..c9b8435f2c9297e404be405a5f913d95676d3def 100644 (file)
@@ -284,6 +284,7 @@ static int icdi_get_cmd_result(void *handle)
 
 static int icdi_usb_idcode(void *handle, uint32_t *idcode)
 {
+       *idcode = 0;
        return ERROR_OK;
 }
 
index 0176a4823820229be5bf75d1c1945094f4c43176..00e454917a3830b2881b2fd635632379a9892aba 100644 (file)
@@ -84,7 +84,8 @@ int hl_interface_init_target(struct target *t)
                uint32_t expected = t->tap->expected_ids[ii];
 
                /* treat "-expected-id 0" as a "don't-warn" wildcard */
-               if (!expected || (t->tap->idcode == expected)) {
+               if (!expected || !t->tap->idcode ||
+                   (t->tap->idcode == expected)) {
                        found = 1;
                        break;
                }
index d7b5d9353f5d77c24f962e4fa24df3a604af496a..ccc3a003e83d18aa0906b8cbdcc9ae11ababff4b 100644 (file)
@@ -62,8 +62,17 @@ struct hl_layout_api_s {
                        uint32_t count, const uint8_t *buffer);
        /** */
        int (*write_debug_reg) (void *handle, uint32_t addr, uint32_t val);
-       /** */
-       int (*idcode) (void *fd, uint32_t *idcode);
+       /**
+        * Read the idcode of the target connected to the adapter
+        *
+        * If the adapter doesn't support idcode retrieval, this callback should
+        * store 0 to indicate a wildcard match.
+        *
+        * @param handle A pointer to the device-specific handle
+        * @param idcode Storage for the detected idcode
+        * @returns ERROR_OK on success, or an error code on failure.
+        */
+       int (*idcode) (void *handle, uint32_t *idcode);
        /** */
        enum target_state (*state) (void *fd);
 };

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)