target/cortex_m: Add support for AHB5-AP
The AHB5-AP is implemented in Cortex-M23/33 based devices. Change-Id: I505954a2e2c6462ce0aa96eba1d55b016c5028b9 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/5232 Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de> Tested-by: jenkinsbscan_optimization
parent
1f1558e74b
commit
0d47d85ff5
|
@ -2093,6 +2093,15 @@ static void cortex_m_dwt_free(struct target *target)
|
||||||
#define MVFR1_DEFAULT_M7_SP 0x11000011
|
#define MVFR1_DEFAULT_M7_SP 0x11000011
|
||||||
#define MVFR1_DEFAULT_M7_DP 0x12000011
|
#define MVFR1_DEFAULT_M7_DP 0x12000011
|
||||||
|
|
||||||
|
static int cortex_m_find_mem_ap(struct adiv5_dap *swjdp,
|
||||||
|
struct adiv5_ap **debug_ap)
|
||||||
|
{
|
||||||
|
if (dap_find_ap(swjdp, AP_TYPE_AHB3_AP, debug_ap) == ERROR_OK)
|
||||||
|
return ERROR_OK;
|
||||||
|
|
||||||
|
return dap_find_ap(swjdp, AP_TYPE_AHB5_AP, debug_ap);
|
||||||
|
}
|
||||||
|
|
||||||
int cortex_m_examine(struct target *target)
|
int cortex_m_examine(struct target *target)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
|
@ -2107,7 +2116,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_AHB3_AP, &armv7m->debug_ap);
|
retval = cortex_m_find_mem_ap(swjdp, &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