arm_adi_v5: Remove all cases of "restoring" previous dap_ap_select()
All AP operations should select the AP to use before calling it so there's no point in restoring the previous value afterwards. The explicit call to dap_ap_select() before all AP operations should be moved into dap_queue_ap_read/write() which then would have to take the AP as an argument instead of the DAP. Change-Id: Icacb0c76ef2a5ac36b4d2f26b52ec01a8850286e Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/3156 Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
This commit is contained in:
@@ -842,10 +842,8 @@ int dap_get_debugbase(struct adiv5_ap *ap,
|
||||
uint32_t *dbgbase, uint32_t *apid)
|
||||
{
|
||||
struct adiv5_dap *dap = ap->dap;
|
||||
uint32_t ap_old;
|
||||
int retval;
|
||||
|
||||
ap_old = dap_ap_get_select(dap);
|
||||
dap_ap_select(dap, ap->ap_num);
|
||||
|
||||
retval = dap_queue_ap_read(dap, MEM_AP_REG_BASE, dbgbase);
|
||||
@@ -858,21 +856,16 @@ int dap_get_debugbase(struct adiv5_ap *ap,
|
||||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
|
||||
dap_ap_select(dap, ap_old);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
int dap_lookup_cs_component(struct adiv5_ap *ap,
|
||||
uint32_t dbgbase, uint8_t type, uint32_t *addr, int32_t *idx)
|
||||
{
|
||||
struct adiv5_dap *dap = ap->dap;
|
||||
uint32_t ap_old;
|
||||
uint32_t romentry, entry_offset = 0, component_base, devtype;
|
||||
int retval;
|
||||
|
||||
*addr = 0;
|
||||
ap_old = dap_ap_get_select(dap);
|
||||
|
||||
do {
|
||||
retval = mem_ap_read_atomic_u32(ap, (dbgbase&0xFFFFF000) |
|
||||
@@ -916,8 +909,6 @@ int dap_lookup_cs_component(struct adiv5_ap *ap,
|
||||
entry_offset += 4;
|
||||
} while (romentry > 0);
|
||||
|
||||
dap_ap_select(dap, ap_old);
|
||||
|
||||
if (!*addr)
|
||||
return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user