target/arm_adiv5: Add type for AHB5-AP
This access port type comes with the AMBA 5 protocol specification, see 'C1.3 AP' in ARM IHI 0031D. Change-Id: I3c4f0a69230daaf4f5f979de6213fe3c025a089a Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/5231 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Muhammad Omair Javaid <omair.javaid@linaro.org>bscan_optimization
parent
ae449bb5f9
commit
1f1558e74b
|
@ -914,7 +914,8 @@ int dap_find_ap(struct adiv5_dap *dap, enum ap_type type_to_find, struct adiv5_a
|
||||||
((id_val & IDR_TYPE) == type_to_find)) { /* type matches*/
|
((id_val & IDR_TYPE) == type_to_find)) { /* type matches*/
|
||||||
|
|
||||||
LOG_DEBUG("Found %s at AP index: %d (IDR=0x%08" PRIX32 ")",
|
LOG_DEBUG("Found %s at AP index: %d (IDR=0x%08" PRIX32 ")",
|
||||||
(type_to_find == AP_TYPE_AHB_AP) ? "AHB-AP" :
|
(type_to_find == AP_TYPE_AHB3_AP) ? "AHB3-AP" :
|
||||||
|
(type_to_find == AP_TYPE_AHB5_AP) ? "AHB5-AP" :
|
||||||
(type_to_find == AP_TYPE_APB_AP) ? "APB-AP" :
|
(type_to_find == AP_TYPE_APB_AP) ? "APB-AP" :
|
||||||
(type_to_find == AP_TYPE_AXI_AP) ? "AXI-AP" :
|
(type_to_find == AP_TYPE_AXI_AP) ? "AXI-AP" :
|
||||||
(type_to_find == AP_TYPE_JTAG_AP) ? "JTAG-AP" : "Unknown",
|
(type_to_find == AP_TYPE_JTAG_AP) ? "JTAG-AP" : "Unknown",
|
||||||
|
@ -926,7 +927,8 @@ int dap_find_ap(struct adiv5_dap *dap, enum ap_type type_to_find, struct adiv5_a
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_DEBUG("No %s found",
|
LOG_DEBUG("No %s found",
|
||||||
(type_to_find == AP_TYPE_AHB_AP) ? "AHB-AP" :
|
(type_to_find == AP_TYPE_AHB3_AP) ? "AHB3-AP" :
|
||||||
|
(type_to_find == AP_TYPE_AHB5_AP) ? "AHB5-AP" :
|
||||||
(type_to_find == AP_TYPE_APB_AP) ? "APB-AP" :
|
(type_to_find == AP_TYPE_APB_AP) ? "APB-AP" :
|
||||||
(type_to_find == AP_TYPE_AXI_AP) ? "AXI-AP" :
|
(type_to_find == AP_TYPE_AXI_AP) ? "AXI-AP" :
|
||||||
(type_to_find == AP_TYPE_JTAG_AP) ? "JTAG-AP" : "Unknown");
|
(type_to_find == AP_TYPE_JTAG_AP) ? "JTAG-AP" : "Unknown");
|
||||||
|
@ -1466,8 +1468,11 @@ int dap_info_command(struct command_invocation *cmd,
|
||||||
case IDR_JEP106_ARM | AP_TYPE_JTAG_AP:
|
case IDR_JEP106_ARM | AP_TYPE_JTAG_AP:
|
||||||
command_print(cmd, "\tType is JTAG-AP");
|
command_print(cmd, "\tType is JTAG-AP");
|
||||||
break;
|
break;
|
||||||
case IDR_JEP106_ARM | AP_TYPE_AHB_AP:
|
case IDR_JEP106_ARM | AP_TYPE_AHB3_AP:
|
||||||
command_print(cmd, "\tType is MEM-AP AHB");
|
command_print(cmd, "\tType is MEM-AP AHB3");
|
||||||
|
break;
|
||||||
|
case IDR_JEP106_ARM | AP_TYPE_AHB5_AP:
|
||||||
|
command_print(cmd, "\tType is MEM-AP AHB5");
|
||||||
break;
|
break;
|
||||||
case IDR_JEP106_ARM | AP_TYPE_APB_AP:
|
case IDR_JEP106_ARM | AP_TYPE_APB_AP:
|
||||||
command_print(cmd, "\tType is MEM-AP APB");
|
command_print(cmd, "\tType is MEM-AP APB");
|
||||||
|
|
|
@ -326,9 +326,10 @@ enum ap_class {
|
||||||
*/
|
*/
|
||||||
enum ap_type {
|
enum ap_type {
|
||||||
AP_TYPE_JTAG_AP = 0x0, /* JTAG-AP - JTAG master for controlling other JTAG devices */
|
AP_TYPE_JTAG_AP = 0x0, /* JTAG-AP - JTAG master for controlling other JTAG devices */
|
||||||
AP_TYPE_AHB_AP = 0x1, /* AHB Memory-AP */
|
AP_TYPE_AHB3_AP = 0x1, /* AHB3 Memory-AP */
|
||||||
AP_TYPE_APB_AP = 0x2, /* APB Memory-AP */
|
AP_TYPE_APB_AP = 0x2, /* APB Memory-AP */
|
||||||
AP_TYPE_AXI_AP = 0x4, /* AXI Memory-AP */
|
AP_TYPE_AXI_AP = 0x4, /* AXI Memory-AP */
|
||||||
|
AP_TYPE_AHB5_AP = 0x5, /* AHB5 Memory-AP. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2107,7 +2107,7 @@ int cortex_m_examine(struct target *target)
|
||||||
if (!armv7m->stlink) {
|
if (!armv7m->stlink) {
|
||||||
if (cortex_m->apsel == DP_APSEL_INVALID) {
|
if (cortex_m->apsel == DP_APSEL_INVALID) {
|
||||||
/* Search for the MEM-AP */
|
/* Search for the MEM-AP */
|
||||||
retval = dap_find_ap(swjdp, AP_TYPE_AHB_AP, &armv7m->debug_ap);
|
retval = dap_find_ap(swjdp, AP_TYPE_AHB3_AP, &armv7m->debug_ap);
|
||||||
if (retval != ERROR_OK) {
|
if (retval != ERROR_OK) {
|
||||||
LOG_ERROR("Could not find MEM-AP to control the core");
|
LOG_ERROR("Could not find MEM-AP to control the core");
|
||||||
return retval;
|
return retval;
|
||||||
|
|
Loading…
Reference in New Issue