hla: if the idcode callback returns 0, treat as a wildcard
Also document the callback accordingly. Change-Id: I7e8ef481e8b5391b763b7f7187fac023e9fe04df Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1673 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>__archive__
parent
24099b4c14
commit
ff94e02b7c
|
@ -284,6 +284,7 @@ static int icdi_get_cmd_result(void *handle)
|
||||||
|
|
||||||
static int icdi_usb_idcode(void *handle, uint32_t *idcode)
|
static int icdi_usb_idcode(void *handle, uint32_t *idcode)
|
||||||
{
|
{
|
||||||
|
*idcode = 0;
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,8 @@ int hl_interface_init_target(struct target *t)
|
||||||
uint32_t expected = t->tap->expected_ids[ii];
|
uint32_t expected = t->tap->expected_ids[ii];
|
||||||
|
|
||||||
/* treat "-expected-id 0" as a "don't-warn" wildcard */
|
/* treat "-expected-id 0" as a "don't-warn" wildcard */
|
||||||
if (!expected || (t->tap->idcode == expected)) {
|
if (!expected || !t->tap->idcode ||
|
||||||
|
(t->tap->idcode == expected)) {
|
||||||
found = 1;
|
found = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,8 +62,17 @@ struct hl_layout_api_s {
|
||||||
uint32_t count, const uint8_t *buffer);
|
uint32_t count, const uint8_t *buffer);
|
||||||
/** */
|
/** */
|
||||||
int (*write_debug_reg) (void *handle, uint32_t addr, uint32_t val);
|
int (*write_debug_reg) (void *handle, uint32_t addr, uint32_t val);
|
||||||
/** */
|
/**
|
||||||
int (*idcode) (void *fd, uint32_t *idcode);
|
* Read the idcode of the target connected to the adapter
|
||||||
|
*
|
||||||
|
* If the adapter doesn't support idcode retrieval, this callback should
|
||||||
|
* store 0 to indicate a wildcard match.
|
||||||
|
*
|
||||||
|
* @param handle A pointer to the device-specific handle
|
||||||
|
* @param idcode Storage for the detected idcode
|
||||||
|
* @returns ERROR_OK on success, or an error code on failure.
|
||||||
|
*/
|
||||||
|
int (*idcode) (void *handle, uint32_t *idcode);
|
||||||
/** */
|
/** */
|
||||||
enum target_state (*state) (void *fd);
|
enum target_state (*state) (void *fd);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue