mips32, in wait_for_pracc_rw() use ejtag_info->pa_ctrl 11/4011/5
authorSalvador Arroyo <sarroyofdez@yahoo.es>
Thu, 23 Feb 2017 21:55:34 +0000 (22:55 +0100)
committerFreddie Chopin <freddie.chopin@gmail.com>
Tue, 25 Apr 2017 16:00:52 +0000 (17:00 +0100)
Makes code shorter
In fasdata transfer fuction declare variables locally.
Avoid cast.

Change-Id: I0367b66339560fc20521a0598488e7ff9076808e
Signed-off-by: Salvador Arroyo <sarroyofdez@yahoo.es>
Reviewed-on: http://openocd.zylin.com/4011
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
src/target/mips32_pracc.c

index caa566b5ba5a147bef1ac39699d5de1f9c5d3581..4ca92aebb1207a092db8e2b4bd0c21cb2d51c445 100644 (file)
 #include "mips32.h"
 #include "mips32_pracc.h"
 
-static int wait_for_pracc_rw(struct mips_ejtag *ejtag_info, uint32_t *ctrl)
+static int wait_for_pracc_rw(struct mips_ejtag *ejtag_info)
 {
-       uint32_t ejtag_ctrl;
        int64_t then = timeval_ms();
 
        /* wait for the PrAcc to become "1" */
        mips_ejtag_set_instr(ejtag_info, EJTAG_INST_CONTROL);
 
        while (1) {
-               ejtag_ctrl = ejtag_info->ejtag_ctrl;
-               int retval = mips_ejtag_drscan_32(ejtag_info, &ejtag_ctrl);
+               ejtag_info->pa_ctrl = ejtag_info->ejtag_ctrl;
+               int retval = mips_ejtag_drscan_32(ejtag_info, &ejtag_info->pa_ctrl);
                if (retval != ERROR_OK)
                        return retval;
 
-               if (ejtag_ctrl & EJTAG_CTRL_PRACC)
+               if (ejtag_info->pa_ctrl & EJTAG_CTRL_PRACC)
                        break;
 
                int64_t timeout = timeval_ms() - then;
@@ -97,22 +96,20 @@ static int wait_for_pracc_rw(struct mips_ejtag *ejtag_info, uint32_t *ctrl)
                }
        }
 
-       *ctrl = ejtag_ctrl;
        return ERROR_OK;
 }
 
 /* Shift in control and address for a new processor access, save them in ejtag_info */
 static int mips32_pracc_read_ctrl_addr(struct mips_ejtag *ejtag_info)
 {
-       int retval = wait_for_pracc_rw(ejtag_info, &ejtag_info->pa_ctrl);
+       int retval = wait_for_pracc_rw(ejtag_info);
        if (retval != ERROR_OK)
                return retval;
 
        mips_ejtag_set_instr(ejtag_info, EJTAG_INST_ADDRESS);
-       ejtag_info->pa_addr = 0;
-       retval = mips_ejtag_drscan_32(ejtag_info, &ejtag_info->pa_addr);
 
-       return retval;
+       ejtag_info->pa_addr = 0;
+       return  mips_ejtag_drscan_32(ejtag_info, &ejtag_info->pa_addr);
 }
 
 /* Finish processor access */
@@ -130,7 +127,7 @@ int mips32_pracc_clean_text_jump(struct mips_ejtag *ejtag_info)
        /* do 3 0/nops to clean pipeline before a jump to pracc text, NOP in delay slot */
        for (int i = 0; i != 5; i++) {
                /* Wait for pracc */
-               int retval = wait_for_pracc_rw(ejtag_info, &ejtag_info->pa_ctrl);
+               int retval = wait_for_pracc_rw(ejtag_info);
                if (retval != ERROR_OK)
                        return retval;
 
@@ -969,9 +966,6 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag *ejtag_info, struct working_are
                MIPS32_NOP,
        };
 
-       int retval, i;
-       uint32_t val, ejtag_ctrl;
-
        if (source->size < MIPS32_FASTDATA_HANDLER_SIZE)
                return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
 
@@ -995,8 +989,8 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag *ejtag_info, struct working_are
        jmp_code[0] |= UPPER16(source->address);
        jmp_code[1] |= LOWER16(source->address);
 
-       for (i = 0; i < (int) ARRAY_SIZE(jmp_code); i++) {
-               retval = wait_for_pracc_rw(ejtag_info, &ejtag_ctrl);
+       for (unsigned i = 0; i < ARRAY_SIZE(jmp_code); i++) {
+               int retval = wait_for_pracc_rw(ejtag_info);
                if (retval != ERROR_OK)
                        return retval;
 
@@ -1008,7 +1002,7 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag *ejtag_info, struct working_are
        }
 
        /* wait PrAcc pending bit for FASTDATA write, read address */
-       retval = mips32_pracc_read_ctrl_addr(ejtag_info);
+       int retval = mips32_pracc_read_ctrl_addr(ejtag_info);
        if (retval != ERROR_OK)
                return retval;
 
@@ -1017,11 +1011,11 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag *ejtag_info, struct working_are
                return ERROR_FAIL;
 
        /* Send the load start address */
-       val = addr;
+       uint32_t val = addr;
        mips_ejtag_set_instr(ejtag_info, EJTAG_INST_FASTDATA);
        mips_ejtag_fastdata_scan(ejtag_info, 1, &val);
 
-       retval = wait_for_pracc_rw(ejtag_info, &ejtag_ctrl);
+       retval = wait_for_pracc_rw(ejtag_info);
        if (retval != ERROR_OK)
                return retval;
 
@@ -1034,7 +1028,7 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag *ejtag_info, struct working_are
        if (ejtag_info->mode != 0)
                num_clocks = ((uint64_t)(ejtag_info->scan_delay) * jtag_get_speed_khz() + 500000) / 1000000;
 
-       for (i = 0; i < count; i++) {
+       for (int i = 0; i < count; i++) {
                jtag_add_clocks(num_clocks);
                retval = mips_ejtag_fastdata_scan(ejtag_info, write_t, buf++);
                if (retval != ERROR_OK)

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)