adiv6: use struct adiv5_ap->ap_num to contain the AP base address
ADIv5 DAP can only have 256 AP, while ADIv6 can provide till 2**40 (1,099,511,627,776) AP per DAP. Reuse the field ap_num in struct adiv5_ap, currently used on ADIv5 to hold the ADIv5 AP number (apsel), to contain the ADIv6 AP base address. Convert struct adiv5_ap->ap_num to 64 bit and initialize it to DP_APSEL_INVALID for unused AP. Restrict dap_find_get_ap() to ADIv5 only. To be enhanced. On ADIv6, let dap_get_ap() return an already allocated AP, or allocate and return an unused AP. Add function is_ap_num_valid() and use it. Change-Id: Ib2fe8c7ec0d08393cd91c29fdac5d632dfc1e438 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6461 Reviewed-by: Daniel Goehring <dgoehrin@os.amperecomputing.com> Tested-by: jenkins
This commit is contained in:
@@ -203,7 +203,7 @@ static int adapter_target_create(struct target *target,
|
||||
{
|
||||
LOG_DEBUG("%s", __func__);
|
||||
struct adiv5_private_config *pc = target->private_config;
|
||||
if (pc && pc->ap_num > 0) {
|
||||
if (pc && pc->ap_num != DP_APSEL_INVALID && pc->ap_num != 0) {
|
||||
LOG_ERROR("hla_target: invalid parameter -ap-num (> 0)");
|
||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user