mips_ejtag: cache ejtag version to avoid recalculation 62/1462/3
authorOleksij Rempel <linux@rempel-privat.de>
Fri, 28 Jun 2013 20:49:48 +0000 (22:49 +0200)
committerSpencer Oliver <spen@spen-soft.co.uk>
Wed, 17 Jul 2013 14:32:56 +0000 (14:32 +0000)
Some parts of code are version specific. It will be easier
if we extract ejtag version and store it some where.

Change-Id: I8f9addc42108cba5ae9d61b8ade8f9d7f02a0fb5
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Reviewed-on: http://openocd.zylin.com/1462
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/mips_ejtag.c
src/target/mips_ejtag.h

index 2f0dfde9c3d5e2f427cb7a34758c86bafb919b4e..3726191273b78ad1aafd1e47a1f5ecf79aa3f156 100644 (file)
@@ -273,7 +273,6 @@ int mips_ejtag_exit_debug(struct mips_ejtag *ejtag_info)
 
 int mips_ejtag_init(struct mips_ejtag *ejtag_info)
 {
 
 int mips_ejtag_init(struct mips_ejtag *ejtag_info)
 {
-       uint32_t ejtag_version;
        int retval;
 
        retval = mips_ejtag_get_impcode(ejtag_info, &ejtag_info->impcode);
        int retval;
 
        retval = mips_ejtag_get_impcode(ejtag_info, &ejtag_info->impcode);
@@ -282,25 +281,25 @@ int mips_ejtag_init(struct mips_ejtag *ejtag_info)
        LOG_DEBUG("impcode: 0x%8.8" PRIx32 "", ejtag_info->impcode);
 
        /* get ejtag version */
        LOG_DEBUG("impcode: 0x%8.8" PRIx32 "", ejtag_info->impcode);
 
        /* get ejtag version */
-       ejtag_version = ((ejtag_info->impcode >> 29) & 0x07);
+       ejtag_info->ejtag_version = ((ejtag_info->impcode >> 29) & 0x07);
 
 
-       switch (ejtag_version) {
-               case 0:
+       switch (ejtag_info->ejtag_version) {
+               case EJTAG_VERSION_20:
                        LOG_DEBUG("EJTAG: Version 1 or 2.0 Detected");
                        break;
                        LOG_DEBUG("EJTAG: Version 1 or 2.0 Detected");
                        break;
-               case 1:
+               case EJTAG_VERSION_25:
                        LOG_DEBUG("EJTAG: Version 2.5 Detected");
                        break;
                        LOG_DEBUG("EJTAG: Version 2.5 Detected");
                        break;
-               case 2:
+               case EJTAG_VERSION_26:
                        LOG_DEBUG("EJTAG: Version 2.6 Detected");
                        break;
                        LOG_DEBUG("EJTAG: Version 2.6 Detected");
                        break;
-               case 3:
+               case EJTAG_VERSION_31:
                        LOG_DEBUG("EJTAG: Version 3.1 Detected");
                        break;
                        LOG_DEBUG("EJTAG: Version 3.1 Detected");
                        break;
-               case 4:
+               case EJTAG_VERSION_41:
                        LOG_DEBUG("EJTAG: Version 4.1 Detected");
                        break;
                        LOG_DEBUG("EJTAG: Version 4.1 Detected");
                        break;
-               case 5:
+               case EJTAG_VERSION_51:
                        LOG_DEBUG("EJTAG: Version 5.1 Detected");
                        break;
                default:
                        LOG_DEBUG("EJTAG: Version 5.1 Detected");
                        break;
                default:
index 59f91b50b7d743c243ba5be7769a0d0966209f77..19b2c7574339c0d439554867931c5b8f0586ff99 100644 (file)
 #define        EJTAG_DBCn_BLM_SHIFT    4
 #define        EJTAG_DBCn_BE                   (1 << 0)
 
 #define        EJTAG_DBCn_BLM_SHIFT    4
 #define        EJTAG_DBCn_BE                   (1 << 0)
 
+#define EJTAG_VERSION_20               0
+#define EJTAG_VERSION_25               1
+#define EJTAG_VERSION_26               2
+#define EJTAG_VERSION_31               3
+#define EJTAG_VERSION_41               4
+#define EJTAG_VERSION_51               5
+
 struct mips_ejtag {
        struct jtag_tap *tap;
        uint32_t impcode;
 struct mips_ejtag {
        struct jtag_tap *tap;
        uint32_t impcode;
@@ -132,6 +139,7 @@ struct mips_ejtag {
        uint32_t reg9;
        unsigned scan_delay;
        int mode;
        uint32_t reg9;
        unsigned scan_delay;
        int mode;
+       unsigned int ejtag_version;
 };
 
 void mips_ejtag_set_instr(struct mips_ejtag *ejtag_info,
 };
 
 void mips_ejtag_set_instr(struct mips_ejtag *ejtag_info,

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)