This is an automated email from Gerrit.

"Peter Collingbourne <p...@google.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8421

-- gerrit

commit 7834670e9d82b4131d9035f49ec730585947d6ca
Author: Peter Collingbourne <p...@google.com>
Date:   Wed Jul 31 19:02:42 2024 -0700

    arm_cti: Clean up the list of CTI registers
    
    Reduce the amount of boilerplate by moving cti_regs into its only
    user, making it a local variable and removing the now-redundant
    p_val pointer.
    
    Change-Id: I778cc1e960532fae1ac1a952c6ff19c54e578a5f
    Signed-off-by: Peter Collingbourne <p...@google.com>

diff --git a/src/target/arm_cti.c b/src/target/arm_cti.c
index 7637ad0158..dc85f176d5 100644
--- a/src/target/arm_cti.c
+++ b/src/target/arm_cti.c
@@ -157,41 +157,38 @@ int arm_cti_clear_channel(struct arm_cti *self, uint32_t 
channel)
        return arm_cti_write_reg(self, CTI_APPCLEAR, CTI_CHNL(channel));
 }
 
-static uint32_t cti_regs[28];
-
 static const struct {
        uint32_t offset;
        const char *label;
-       uint32_t *p_val;
 } cti_names[] = {
-       { CTI_CTR,              "CTR",          &cti_regs[0] },
-       { CTI_GATE,             "GATE",         &cti_regs[1] },
-       { CTI_INEN0,    "INEN0",        &cti_regs[2] },
-       { CTI_INEN1,    "INEN1",        &cti_regs[3] },
-       { CTI_INEN2,    "INEN2",        &cti_regs[4] },
-       { CTI_INEN3,    "INEN3",        &cti_regs[5] },
-       { CTI_INEN4,    "INEN4",        &cti_regs[6] },
-       { CTI_INEN5,    "INEN5",        &cti_regs[7] },
-       { CTI_INEN6,    "INEN6",        &cti_regs[8] },
-       { CTI_INEN7,    "INEN7",        &cti_regs[9] },
-       { CTI_INEN8,    "INEN8",        &cti_regs[10] },
-       { CTI_OUTEN0,   "OUTEN0",       &cti_regs[11] },
-       { CTI_OUTEN1,   "OUTEN1",       &cti_regs[12] },
-       { CTI_OUTEN2,   "OUTEN2",       &cti_regs[13] },
-       { CTI_OUTEN3,   "OUTEN3",       &cti_regs[14] },
-       { CTI_OUTEN4,   "OUTEN4",       &cti_regs[15] },
-       { CTI_OUTEN5,   "OUTEN5",       &cti_regs[16] },
-       { CTI_OUTEN6,   "OUTEN6",       &cti_regs[17] },
-       { CTI_OUTEN7,   "OUTEN7",       &cti_regs[18] },
-       { CTI_OUTEN8,   "OUTEN8",       &cti_regs[19] },
-       { CTI_TRIN_STATUS,      "TRIN", &cti_regs[20] },
-       { CTI_TROUT_STATUS,     "TROUT", &cti_regs[21] },
-       { CTI_CHIN_STATUS,      "CHIN", &cti_regs[22] },
-       { CTI_CHOU_STATUS,      "CHOUT", &cti_regs[23] },
-       { CTI_APPSET,   "APPSET",       &cti_regs[24] },
-       { CTI_APPCLEAR, "APPCLR",       &cti_regs[25] },
-       { CTI_APPPULSE, "APPPULSE",     &cti_regs[26] },
-       { CTI_INACK,    "INACK",        &cti_regs[27] },
+       { CTI_CTR,      "CTR" },
+       { CTI_GATE,     "GATE" },
+       { CTI_INEN0,    "INEN0" },
+       { CTI_INEN1,    "INEN1" },
+       { CTI_INEN2,    "INEN2" },
+       { CTI_INEN3,    "INEN3" },
+       { CTI_INEN4,    "INEN4" },
+       { CTI_INEN5,    "INEN5" },
+       { CTI_INEN6,    "INEN6" },
+       { CTI_INEN7,    "INEN7" },
+       { CTI_INEN8,    "INEN8" },
+       { CTI_OUTEN0,   "OUTEN0" },
+       { CTI_OUTEN1,   "OUTEN1" },
+       { CTI_OUTEN2,   "OUTEN2" },
+       { CTI_OUTEN3,   "OUTEN3" },
+       { CTI_OUTEN4,   "OUTEN4" },
+       { CTI_OUTEN5,   "OUTEN5" },
+       { CTI_OUTEN6,   "OUTEN6" },
+       { CTI_OUTEN7,   "OUTEN7" },
+       { CTI_OUTEN8,   "OUTEN8" },
+       { CTI_TRIN_STATUS,      "TRIN" },
+       { CTI_TROUT_STATUS,     "TROUT" },
+       { CTI_CHIN_STATUS,      "CHIN" },
+       { CTI_CHOU_STATUS,      "CHOUT" },
+       { CTI_APPSET,   "APPSET" },
+       { CTI_APPCLEAR, "APPCLR" },
+       { CTI_APPPULSE, "APPPULSE" },
+       { CTI_INACK,    "INACK" },
 };
 
 static int cti_find_reg_offset(const char *name)
@@ -226,10 +223,11 @@ COMMAND_HANDLER(handle_cti_dump)
        struct arm_cti *cti = CMD_DATA;
        struct adiv5_ap *ap = cti->ap;
        int retval = ERROR_OK;
+       uint32_t values[ARRAY_SIZE(cti_names)];
 
        for (int i = 0; (retval == ERROR_OK) && (i < 
(int)ARRAY_SIZE(cti_names)); i++)
                retval = mem_ap_read_u32(ap,
-                               cti->spot.base + cti_names[i].offset, 
cti_names[i].p_val);
+                               cti->spot.base + cti_names[i].offset, 
&values[i]);
 
        if (retval == ERROR_OK)
                retval = dap_run(ap->dap);
@@ -239,7 +237,7 @@ COMMAND_HANDLER(handle_cti_dump)
 
        for (int i = 0; i < (int)ARRAY_SIZE(cti_names); i++)
                command_print(CMD, "%8.8s (0x%04"PRIx32") 0x%08"PRIx32,
-                               cti_names[i].label, cti_names[i].offset, 
*cti_names[i].p_val);
+                               cti_names[i].label, cti_names[i].offset, 
values[i]);
 
        return JIM_OK;
 }

-- 

Reply via email to