)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Add a minimal driver to configure the CTL (Control) peripheral and"},{"line_number":29,"context_line":"drive the SWD communication."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Based on Qualcomm\u0027s C++ eud library:"},{"line_number":32,"context_line":"https://github.com/quic/eud"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Change-Id: Ibe40b04333ac1a9d3b5434f65ce057847dc2cd4c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"546e6ec8_a71a8bdc","line":31,"updated":"2026-07-08 10:24:09.000000000","message":"License in BSD-3-Clause, compatible with OpenOCD. Good!","commit_id":"7af6a237ef295967220c28444f6f511275379b90"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b5491909_deb5a280","updated":"2026-07-08 10:24:09.000000000","message":"Thanks, the implementation is quite clean. Few comments to be addressed","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0e10ff11c51e86d11bd7478c83a6a77b572c6e0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f6c7c393_bf7f7cad","updated":"2026-07-13 08:58:38.000000000","message":"Thanks","commit_id":"0b530a66ed9df75ae1c8c67b37b9f431f71199ad"}],"contrib/60-openocd.rules":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"# Infineon DAP miniWiggler v3"},{"line_number":136,"context_line":"ATTRS{idVendor}\u003d\u003d\"058b\", ATTRS{idProduct}\u003d\u003d\"0043\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"# Hitex LPC1768-Stick"},{"line_number":139,"context_line":"ATTRS{idVendor}\u003d\u003d\"0640\", ATTRS{idProduct}\u003d\u003d\"0026\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":140,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"ea633220_af295e34","line":137,"updated":"2026-07-08 10:24:09.000000000","message":"Please add here the USB VID/PID that should be addressed by OpenOCD\n```\n# Qualcomm Embedded USB Debugger (EUD)\nATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9501\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\"\nATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9504\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\"\n```","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"# Infineon DAP miniWiggler v3"},{"line_number":136,"context_line":"ATTRS{idVendor}\u003d\u003d\"058b\", ATTRS{idProduct}\u003d\u003d\"0043\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"# Hitex LPC1768-Stick"},{"line_number":139,"context_line":"ATTRS{idVendor}\u003d\u003d\"0640\", ATTRS{idProduct}\u003d\u003d\"0026\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":140,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"861fca32_87af7e5c","line":137,"in_reply_to":"ea633220_af295e34","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1601bd3d6fb22d505a197d4f324f021482dc2541","unresolved":true,"context_lines":[{"line_number":276,"context_line":"ATTRS{product}\u003d\u003d\"*CMSIS-DAP*\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"# Qualcomm Embedded USB Debugger (EUD)"},{"line_number":279,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9501\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":280,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9502\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":281,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9503\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":282,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9504\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"98221d95_2d5f1fbe","line":279,"updated":"2026-07-11 10:30:07.000000000","message":"No, not here. Please keep the file sorted by vendor ID, the product ID","commit_id":"bcde810d67843e3ee68575b7de84ecdc7eead44f"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"a864465269393c33b23ee47c151af66615a30fc5","unresolved":false,"context_lines":[{"line_number":276,"context_line":"ATTRS{product}\u003d\u003d\"*CMSIS-DAP*\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"# Qualcomm Embedded USB Debugger (EUD)"},{"line_number":279,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9501\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":280,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9502\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":281,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9503\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""},{"line_number":282,"context_line":"ATTRS{idVendor}\u003d\u003d\"05c6\", ATTRS{idProduct}\u003d\u003d\"9504\", MODE\u003d\"660\", GROUP\u003d\"plugdev\", TAG+\u003d\"uaccess\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"90aeb838_c718fcd0","line":279,"in_reply_to":"98221d95_2d5f1fbe","updated":"2026-07-13 08:18:48.000000000","message":"Ack","commit_id":"bcde810d67843e3ee68575b7de84ecdc7eead44f"}],"doc/usb_adapters/readme.txt":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":23,"context_line":"- kitprog;"},{"line_number":24,"context_line":"- nulink;"},{"line_number":25,"context_line":"- stlink;"},{"line_number":26,"context_line":"- xds110."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The script above assumes the user has granted access permissions to the USB"},{"line_number":29,"context_line":"device file in"}],"source_content_type":"text/plain","patch_set":1,"id":"0db8a5c3_3334c9b0","line":26,"updated":"2026-07-08 10:24:09.000000000","message":"Would you mind adding the lsusb dumps for EUD?\nAt least for CTL and SWD devices?\nIf you think that Trage and JTAG could be one day supported, please consider adding them already.","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":23,"context_line":"- kitprog;"},{"line_number":24,"context_line":"- nulink;"},{"line_number":25,"context_line":"- stlink;"},{"line_number":26,"context_line":"- xds110."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The script above assumes the user has granted access permissions to the USB"},{"line_number":29,"context_line":"device file in"}],"source_content_type":"text/plain","patch_set":1,"id":"a8eb2904_955475d1","line":26,"in_reply_to":"0db8a5c3_3334c9b0","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"}],"src/jtag/drivers/eud.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":106,"context_line":"\t117,"},{"line_number":107,"context_line":"};"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"static void eud_put_le32(uint8_t *buf, uint32_t value)"},{"line_number":110,"context_line":"{"},{"line_number":111,"context_line":"\tbuf[0] \u003d value \u0026 0xff;"},{"line_number":112,"context_line":"\tbuf[1] \u003d (value \u003e\u003e 8) \u0026 0xff;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"1153ebb9_e8ae93a3","line":109,"updated":"2026-07-08 10:24:09.000000000","message":"please use `h_u32_to_le()` from `helper/types.h` instead of this new function","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":106,"context_line":"\t117,"},{"line_number":107,"context_line":"};"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"static void eud_put_le32(uint8_t *buf, uint32_t value)"},{"line_number":110,"context_line":"{"},{"line_number":111,"context_line":"\tbuf[0] \u003d value \u0026 0xff;"},{"line_number":112,"context_line":"\tbuf[1] \u003d (value \u003e\u003e 8) \u0026 0xff;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"7a042ac3_a99fb2dd","line":109,"in_reply_to":"1153ebb9_e8ae93a3","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":114,"context_line":"\tbuf[3] \u003d (value \u003e\u003e 24) \u0026 0xff;"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"static uint32_t eud_get_le32(const uint8_t *buf)"},{"line_number":118,"context_line":"{"},{"line_number":119,"context_line":"\treturn buf[0] | (buf[1] \u003c\u003c 8) | (buf[2] \u003c\u003c 16) | (buf[3] \u003c\u003c 24);"},{"line_number":120,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"cac5b2ad_016f06eb","line":117,"updated":"2026-07-08 10:24:09.000000000","message":"use `le_to_h_u32()`","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\tbuf[3] \u003d (value \u003e\u003e 24) \u0026 0xff;"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"static uint32_t eud_get_le32(const uint8_t *buf)"},{"line_number":118,"context_line":"{"},{"line_number":119,"context_line":"\treturn buf[0] | (buf[1] \u003c\u003c 8) | (buf[2] \u003c\u003c 16) | (buf[3] \u003c\u003c 24);"},{"line_number":120,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"a3226bc3_3a0c77f3","line":117,"in_reply_to":"cac5b2ad_016f06eb","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":119,"context_line":"\treturn buf[0] | (buf[1] \u003c\u003c 8) | (buf[2] \u003c\u003c 16) | (buf[3] \u003c\u003c 24);"},{"line_number":120,"context_line":"}"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"static int eud_libusb_error(int ret)"},{"line_number":123,"context_line":"{"},{"line_number":124,"context_line":"\tswitch (ret) {"},{"line_number":125,"context_line":"\tcase LIBUSB_SUCCESS:"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"2702e49f_46e0c518","line":122,"updated":"2026-07-08 10:24:09.000000000","message":"why not reuse `jtag_libusb_error()`?\nClearly it needs to be exported by `libusb_helper.h`","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":119,"context_line":"\treturn buf[0] | (buf[1] \u003c\u003c 8) | (buf[2] \u003c\u003c 16) | (buf[3] \u003c\u003c 24);"},{"line_number":120,"context_line":"}"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"static int eud_libusb_error(int ret)"},{"line_number":123,"context_line":"{"},{"line_number":124,"context_line":"\tswitch (ret) {"},{"line_number":125,"context_line":"\tcase LIBUSB_SUCCESS:"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"d0bcd7ee_f455ba87","line":122,"in_reply_to":"2702e49f_46e0c518","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"static int eud_open_inner(uint16_t pid, struct eud_device *dev, bool quiet)"},{"line_number":163,"context_line":"{"},{"line_number":164,"context_line":"\tdev-\u003ehandle \u003d libusb_open_device_with_vid_pid(eud_libusb_ctx, EUD_VID, pid);"},{"line_number":165,"context_line":"\tif (!dev-\u003ehandle) {"},{"line_number":166,"context_line":"\t\tif (!quiet)"},{"line_number":167,"context_line":"\t\t\tLOG_ERROR(\"unable to open EUD USB function %04x:%04x\", EUD_VID, pid);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"f9356c31_634b93d0","line":164,"updated":"2026-07-08 10:24:09.000000000","message":"I don\u0027t know if EUD provides a USB unique serial number that can used to search among several board simultaneously connected to the host. The command `adapter usb serial` could eventually be used.\nBut for sure it would be possible to specify the board through `adapter usb location`.\nAll this to say that if you use the OpenOCD helper `jtag_libusb_open()` you would freely get these advanced features.\nI let you judge!","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1601bd3d6fb22d505a197d4f324f021482dc2541","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"static int eud_open_inner(uint16_t pid, struct eud_device *dev, bool quiet)"},{"line_number":163,"context_line":"{"},{"line_number":164,"context_line":"\tdev-\u003ehandle \u003d libusb_open_device_with_vid_pid(eud_libusb_ctx, EUD_VID, pid);"},{"line_number":165,"context_line":"\tif (!dev-\u003ehandle) {"},{"line_number":166,"context_line":"\t\tif (!quiet)"},{"line_number":167,"context_line":"\t\t\tLOG_ERROR(\"unable to open EUD USB function %04x:%04x\", EUD_VID, pid);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"73116f7f_194bb8ed","line":164,"in_reply_to":"cfcf970a_4aa61d47","updated":"2026-07-11 10:30:07.000000000","message":"I see the SN to zero in the lsusb dump (by the way, thanks for adding them).\nIf the user has to run OpenOCD to see the \u0027inner\u0027 SR, it would not help to discriminate among two boards connected to the same host. So my argument about SN looses grip.\nLet\u0027s keep it as is, then the support for `adapter usb location` could be added later on","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":true,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"static int eud_open_inner(uint16_t pid, struct eud_device *dev, bool quiet)"},{"line_number":163,"context_line":"{"},{"line_number":164,"context_line":"\tdev-\u003ehandle \u003d libusb_open_device_with_vid_pid(eud_libusb_ctx, EUD_VID, pid);"},{"line_number":165,"context_line":"\tif (!dev-\u003ehandle) {"},{"line_number":166,"context_line":"\t\tif (!quiet)"},{"line_number":167,"context_line":"\t\t\tLOG_ERROR(\"unable to open EUD USB function %04x:%04x\", EUD_VID, pid);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"cfcf970a_4aa61d47","line":164,"in_reply_to":"f9356c31_634b93d0","updated":"2026-07-10 15:16:55.000000000","message":"There\u0027s a command that we can send to the CTL peripheral that will return the chip\u0027s serial number, the USB descriptors report a sad little `0` in the SN field 😞\n\nDoes that sound like a good follow-up, or would you prefer me to handle this as part of this initial submission?","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":308,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":309,"context_line":"\t\treturn retval;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\tretval \u003d eud_op(\u0026eud_swd, EUD_SWD_CMD_DELAY, 18);"},{"line_number":312,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":313,"context_line":"\t\treturn retval;"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"8ce2fc9b_c95fc9ee","line":311,"updated":"2026-07-08 10:24:09.000000000","message":"What is the magic number `18`?\nA macro that includes in the name the description could be welcome.\nIf the delay has a value with time units, please add the unit in the macro name, e.g.\n`#define EUD_DELAY_MS 18`","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1601bd3d6fb22d505a197d4f324f021482dc2541","unresolved":false,"context_lines":[{"line_number":308,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":309,"context_line":"\t\treturn retval;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\tretval \u003d eud_op(\u0026eud_swd, EUD_SWD_CMD_DELAY, 18);"},{"line_number":312,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":313,"context_line":"\t\treturn retval;"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"9fe92f9b_8cb08872","line":311,"in_reply_to":"134b886f_8b383eb4","updated":"2026-07-11 10:30:07.000000000","message":"Not exactly what I have asked, but the comment above at the macro definition is enough.","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":308,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":309,"context_line":"\t\treturn retval;"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"\tretval \u003d eud_op(\u0026eud_swd, EUD_SWD_CMD_DELAY, 18);"},{"line_number":312,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":313,"context_line":"\t\treturn retval;"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"134b886f_8b383eb4","line":311,"in_reply_to":"8ce2fc9b_c95fc9ee","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":312,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":313,"context_line":"\t\treturn retval;"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"\treturn eud_op(\u0026eud_swd, EUD_SWD_CMD_TIMING, 0xfff);"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"static int eud_swd_bitbang(uint32_t payload)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"aabd4bdc_c5d94463","line":315,"updated":"2026-07-08 10:24:09.000000000","message":"Same here for the magic value `0xfff`","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":false,"context_lines":[{"line_number":312,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":313,"context_line":"\t\treturn retval;"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"\treturn eud_op(\u0026eud_swd, EUD_SWD_CMD_TIMING, 0xfff);"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"static int eud_swd_bitbang(uint32_t payload)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"c98b5bd2_26b3b9c0","line":315,"in_reply_to":"aabd4bdc_c5d94463","updated":"2026-07-10 15:16:55.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":345,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":346,"context_line":"\t\treturn retval;"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"\tretval \u003d eud_ditms_u16(0xe79e, 0x0f);"},{"line_number":349,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":350,"context_line":"\t\treturn retval;"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"9155935a_80631890","line":348,"updated":"2026-07-08 10:24:09.000000000","message":"This is the standard activation sequence already handled in `eud_swd_switch_seq()` with \n`case JTAG_TO_SWD:`\nWhy you need a dedicated function, and why you need to call this in `eud_swd_prepare()` (that would be called twice in `eud_swd_init()` and twice in `eud_init()`?\nIs there anything that requires a fix in OpenOCD activation sequence for SWD?","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"a864465269393c33b23ee47c151af66615a30fc5","unresolved":false,"context_lines":[{"line_number":345,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":346,"context_line":"\t\treturn retval;"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"\tretval \u003d eud_ditms_u16(0xe79e, 0x0f);"},{"line_number":349,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":350,"context_line":"\t\treturn retval;"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"c3596183_e87a04a9","line":348,"in_reply_to":"664a202f_670405a5","updated":"2026-07-13 08:18:48.000000000","message":"Done","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"3fe8a532f362b5a6504383ab6744a08591adcc00","unresolved":true,"context_lines":[{"line_number":345,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":346,"context_line":"\t\treturn retval;"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"\tretval \u003d eud_ditms_u16(0xe79e, 0x0f);"},{"line_number":349,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":350,"context_line":"\t\treturn retval;"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"664a202f_670405a5","line":348,"in_reply_to":"9155935a_80631890","updated":"2026-07-10 15:16:55.000000000","message":"No, the EUD code needed some massaging to correctly parse longer sequences instead","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1601bd3d6fb22d505a197d4f324f021482dc2541","unresolved":true,"context_lines":[{"line_number":68,"context_line":"#define EUD_SWD_CMD_FREQ\t\t\t2"},{"line_number":69,"context_line":"#define EUD_SWD_CMD_DELAY\t\t\t3"},{"line_number":70,"context_line":" // Delay between commands \u003d (N+1) / swd_clk_freq"},{"line_number":71,"context_line":" #define SWD_CMD_DELAY_TIME\t\tGENMASK(7, 0)"},{"line_number":72,"context_line":" #define SWD_CMD_DELAY_RESERVED\t\tGENMASK(31, 8)"},{"line_number":73,"context_line":"#define EUD_SWD_CMD_BITBANG\t\t\t4"},{"line_number":74,"context_line":"#define EUD_SWD_CMD_DITMS\t\t\t5"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"93a2e8d2_16ff7402","line":71,"updated":"2026-07-11 10:30:07.000000000","message":"Please drop the space in front of `#define`.\nThe coding style does not specify it, but there is no other file in OpenOCD code base that has spaces in front. Let\u0027s keep the code uniform.","commit_id":"bcde810d67843e3ee68575b7de84ecdc7eead44f"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"a864465269393c33b23ee47c151af66615a30fc5","unresolved":false,"context_lines":[{"line_number":68,"context_line":"#define EUD_SWD_CMD_FREQ\t\t\t2"},{"line_number":69,"context_line":"#define EUD_SWD_CMD_DELAY\t\t\t3"},{"line_number":70,"context_line":" // Delay between commands \u003d (N+1) / swd_clk_freq"},{"line_number":71,"context_line":" #define SWD_CMD_DELAY_TIME\t\tGENMASK(7, 0)"},{"line_number":72,"context_line":" #define SWD_CMD_DELAY_RESERVED\t\tGENMASK(31, 8)"},{"line_number":73,"context_line":"#define EUD_SWD_CMD_BITBANG\t\t\t4"},{"line_number":74,"context_line":"#define EUD_SWD_CMD_DITMS\t\t\t5"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"17a00d67_10f575da","line":71,"in_reply_to":"93a2e8d2_16ff7402","updated":"2026-07-13 08:18:48.000000000","message":"Ack","commit_id":"bcde810d67843e3ee68575b7de84ecdc7eead44f"}],"tcl/interface/eud.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b4136ff0baa6fd383739fe42431495859e1b164e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# SPDX-License-Identifier: GPL-2.0-or-later"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"adapter driver eud"},{"line_number":4,"context_line":"transport select swd"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"0165e997_d40003a9","line":1,"updated":"2026-07-08 10:24:09.000000000","message":"Please move the file in `tcl/interface/qualcomm/`\nI understand that there are two possible debug access:\n```\n0x9503: JTAG - setup and r/w\n0x9504: SWD - likewise\n```\nis it better to rename this file as `euc-swd.cfg` or similar?","commit_id":"7af6a237ef295967220c28444f6f511275379b90"},{"author":{"_account_id":1002545,"name":"quic-kdybcio","email":"konrad.dybcio@oss.qualcomm.com","username":"quic-kdybcio"},"change_message_id":"b664b13d4a1c5af4d18848a5e8bcda897fdab8aa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# SPDX-License-Identifier: GPL-2.0-or-later"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"adapter driver eud"},{"line_number":4,"context_line":"transport select swd"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"ce45bfb3_7f809ae4","line":1,"in_reply_to":"0165e997_d40003a9","updated":"2026-07-10 15:26:17.000000000","message":"Ack","commit_id":"7af6a237ef295967220c28444f6f511275379b90"}]}
