This is an automated email from Gerrit. PoroCYon ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/6373
-- gerrit commit 01885562ecacab1b02e21b5c2a3c51b70f1972d2 Author: PoroCYon <[email protected]> Date: Wed Jul 21 04:17:08 2021 +0200 jtag/cmsis_dap: update for newest protocol version The capabilities INFO command can now return two bytes, without this patch, the capabilities would simply not be read and left as 0 (i.e. no capabilities). cf. https://github.com/ARM-software/CMSIS_5/blob/116866fd74756c88096e37cbd0066fadad583cad/CMSIS/DAP/Firmware/Source/DAP.c#L100-L111 Change-Id: Ibd894971edf1c120cae08089e5515ce5e9972323 Signed-off-by: PoroCYon <[email protected]> diff --git a/src/jtag/drivers/cmsis_dap.c b/src/jtag/drivers/cmsis_dap.c index e498ea8..0dea830 100644 --- a/src/jtag/drivers/cmsis_dap.c +++ b/src/jtag/drivers/cmsis_dap.c @@ -1016,10 +1016,12 @@ static int cmsis_dap_get_caps_info(void) if (retval != ERROR_OK) return retval; - if (data[0] == 1) { + if (data[0] == 1 || data[0] == 2) { uint8_t caps = data[1]; + uint8_t caps2 = 0; + if (data[0] == 2) caps2 = data[2]; - cmsis_dap_handle->caps = caps; + cmsis_dap_handle->caps = (uint16_t)caps | ((uint16_t)caps2 << 8); if (caps & INFO_CAPS_SWD) LOG_INFO("CMSIS-DAP: %s", info_caps_str[0]); diff --git a/src/jtag/drivers/cmsis_dap.h b/src/jtag/drivers/cmsis_dap.h index 634a62c..f6d9df2 100644 --- a/src/jtag/drivers/cmsis_dap.h +++ b/src/jtag/drivers/cmsis_dap.h @@ -16,7 +16,7 @@ struct cmsis_dap { uint16_t packet_buffer_size; uint8_t *command; uint8_t *response; - uint8_t caps; + uint16_t caps; uint8_t mode; uint32_t swo_buf_sz; bool trace_enabled; --
