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 <pcc@google.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8421 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins
This commit is contained in:
parent
7eb9a48f2d
commit
fc1e73b9cf
|
@ -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)
|
||||
|
@ -224,10 +221,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 (size_t i = 0; (retval == ERROR_OK) && (i < 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);
|
||||
|
@ -237,7 +235,7 @@ COMMAND_HANDLER(handle_cti_dump)
|
|||
|
||||
for (size_t i = 0; i < 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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue