arm_adi_v5: Add a back-pointer from an AP to its DAP

This will make it possible to reference directly the AP used for debug
in the target instance and remove the DAP reference. This will in turn
enable getting rid of the need to select an "active" AP in the DAP (using
dap apsel).

Change-Id: I265846a427c714204f4fd3df3cdb75843686c2d0
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/3144
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
__archive__
Andreas Fritiofson 2015-11-14 00:51:40 +01:00
parent 59003ee2a1
commit 5ae2fbda2b
2 changed files with 12 additions and 0 deletions

View File

@ -638,6 +638,8 @@ struct adiv5_dap *dap_init(void)
int i; int i;
/* Set up with safe defaults */ /* Set up with safe defaults */
for (i = 0; i <= 255; i++) { for (i = 0; i <= 255; i++) {
dap->ap[i].dap = dap;
dap->ap[i].ap_num = i;
/* memaccess_tck max is 255 */ /* memaccess_tck max is 255 */
dap->ap[i].memaccess_tck = 255; dap->ap[i].memaccess_tck = 255;
/* Number of bits for tar autoincrement, impl. dep. at least 10 */ /* Number of bits for tar autoincrement, impl. dep. at least 10 */

View File

@ -127,6 +127,16 @@
* Most common is a MEM-AP, for memory access. * Most common is a MEM-AP, for memory access.
*/ */
struct adiv5_ap { struct adiv5_ap {
/**
* DAP this AP belongs to.
*/
struct adiv5_dap *dap;
/**
* Number of this AP.
*/
uint8_t ap_num;
/** /**
* Default value for (MEM-AP) AP_REG_CSW register. * Default value for (MEM-AP) AP_REG_CSW register.
*/ */