adi_v5_jtag: extend memaccess_tck to every AP access 60/6460/5
authorKevin Burke <kevinb@os.amperecomputing.com>
Sat, 14 Aug 2021 16:55:28 +0000 (18:55 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Fri, 24 Jun 2022 21:37:00 +0000 (21:37 +0000)
ADIv5 reports:
Accessing AP registers or debug resources in connected
device through an AP can be subjected to other variable
response delays in the system. A debugger that can adapt
to these delays and avoid wasting WAIT scans operates more
efficiently and provides higher maximum data throughput.

The existing code in OpenOCD uses extra tck only for accessing
resources through an AP.

Extend the use of extra tck also for accessing an AP register.

Split from change https://review.openocd.org/6077/

Change-Id: I2082362e098d09f4ba0668e01f5196afc965c8f3
Signed-off-by: Kevin Burke <kevinb@os.amperecomputing.com>
Signed-off-by: Daniel Goehring <dgoehrin@os.amperecomputing.com>
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6460
Tested-by: jenkins
src/target/adi_v5_jtag.c

index 810a5ab76c4e0b13a10f5a6897d62a4b1cc973c2..67ad0b1e93cff8bc4c986be45970497785246df3 100644 (file)
@@ -284,17 +284,14 @@ static int adi_jtag_dp_scan_cmd(struct adiv5_dap *dap, struct dap_cmd *cmd, uint
 
        jtag_add_dr_scan(tap, 2, cmd->fields, TAP_IDLE);
 
-       /* Add specified number of tck clocks after starting memory bus
-        * access, giving the hardware time to complete the access.
+       /* Add specified number of tck clocks after starting AP register
+        * access or memory bus access, giving the hardware time to complete
+        * the access.
         * They provide more time for the (MEM) AP to complete the read ...
         * See "Minimum Response Time" for JTAG-DP, in the ADIv5/ADIv6 spec.
         */
-       if (cmd->instr == JTAG_DP_APACC) {
-               if ((cmd->reg_addr == MEM_AP_REG_DRW(dap) ||
-                        (cmd->reg_addr & 0xFF0) == MEM_AP_REG_BD0(dap)) &&
-                       cmd->memaccess_tck != 0)
-                       jtag_add_runtest(cmd->memaccess_tck, TAP_IDLE);
-       }
+       if (cmd->instr == JTAG_DP_APACC && cmd->memaccess_tck != 0)
+               jtag_add_runtest(cmd->memaccess_tck, TAP_IDLE);
 
        return 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)