)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Daniel Anselmi \u003cdanselmi@gmx.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-10-31 20:41:40 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support for efinix devices"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ie520e761c255ba1335d5aab9c6825f160a6151d9"},{"line_number":10,"context_line":"Signed-off-by: Daniel Anselmi \u003cdanselmi@gmx.ch\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"d1cc54f8_97700902","line":7,"updated":"2022-11-01 21:55:44.000000000","message":"pld: add ...","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Daniel Anselmi \u003cdanselmi@gmx.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-10-31 20:41:40 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add support for efinix devices"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ie520e761c255ba1335d5aab9c6825f160a6151d9"},{"line_number":10,"context_line":"Signed-off-by: Daniel Anselmi \u003cdanselmi@gmx.ch\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"853766d8_bebccd9b","line":7,"in_reply_to":"d1cc54f8_97700902","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"573e66cb_8c420dd2","updated":"2022-11-01 21:55:44.000000000","message":"Similar code as ECPx, similar comments","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"f16899ec3c725fb1494e6cd20c126c4c825bff38","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ddbd3383_6e05f1dd","updated":"2022-11-13 17:23:56.000000000","message":"oops, one memory leak.\nAfter that, I think it\u0027s completed","commit_id":"cd1ae3e5d30c247bc74ea7ac7eb7a8b12b5a20af"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"66bd9aeb48b493d8d4ca7fcea5ae0ebb9de57598","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"967baefa_36d25cfb","in_reply_to":"ddbd3383_6e05f1dd","updated":"2022-11-13 21:15:04.000000000","message":"nice catch, thanks","commit_id":"cd1ae3e5d30c247bc74ea7ac7eb7a8b12b5a20af"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eca02aa60856acadf33e22fd9d7e7913444de3cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6d6dbbcb_235e95b7","updated":"2022-11-13 23:48:23.000000000","message":"thanks!","commit_id":"8eb68d75c889a42a4390799bfe7a070a1b74f466"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"80a41960b126fcf20c8cb5770ed91a1d3586a7ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"aa3de4e0_4bebf007","updated":"2022-12-19 12:35:42.000000000","message":"\u003e Patch Set 18: Verified-1\n\u003e \n\u003e Build Failed \n\u003e \n\u003e https://build.openocd.org/job/openocd-gerrit-build/16384/ : FAILURE\n\u003e \n\u003e https://build.openocd.org/job/openocd-gerrit/17180/ : SUCCESS\n\n","commit_id":"c72e7871fc88ea32bcbb54d7ed35bf58bf809e8e"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"b45f0c7de58778d73033d6f357aa1407fe702872","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"77a83fb0_bee2a504","updated":"2023-04-08 19:52:02.000000000","message":"Thanks Antonio!","commit_id":"d9267119b6f433b1767309b6f26f921cb6eaec39"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"49fc9566f407e9dc1def11cbe16fd8dbd1bb642d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"db1f9c5c_b72158a2","updated":"2023-04-10 19:56:50.000000000","message":"Thanks for reviewing!","commit_id":"7015a98eee8eb9886a0427294e323ef818cda58d"}],"doc/openocd.texi":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":8478,"context_line":""},{"line_number":8479,"context_line":"@deffn {FPGA Driver} {virtex2} [no_jstart]"},{"line_number":8480,"context_line":"Virtex-II is a family of FPGAs sold by Xilinx."},{"line_number":8481,"context_line":"This driver can also be used to load Spartan-3, 7-Series and Zynq devices."},{"line_number":8482,"context_line":"It supports the IEEE 1532 standard for In-System Configuration (ISC)."},{"line_number":8483,"context_line":""},{"line_number":8484,"context_line":"If @var{no_jstart} is non-zero, the JSTART instruction is not used after"}],"source_content_type":"text/x-texinfo","patch_set":2,"id":"d57e95e5_862f8fa4","line":8481,"updated":"2022-11-01 21:55:44.000000000","message":"this line does not belong to this patch.\nWould you mind creating an independent patch? It could be merged immediately as a fix in the RC for v0.12.0","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":8478,"context_line":""},{"line_number":8479,"context_line":"@deffn {FPGA Driver} {virtex2} [no_jstart]"},{"line_number":8480,"context_line":"Virtex-II is a family of FPGAs sold by Xilinx."},{"line_number":8481,"context_line":"This driver can also be used to load Spartan-3, 7-Series and Zynq devices."},{"line_number":8482,"context_line":"It supports the IEEE 1532 standard for In-System Configuration (ISC)."},{"line_number":8483,"context_line":""},{"line_number":8484,"context_line":"If @var{no_jstart} is non-zero, the JSTART instruction is not used after"}],"source_content_type":"text/x-texinfo","patch_set":2,"id":"1d5d71b7_159b9ded","line":8481,"in_reply_to":"d57e95e5_862f8fa4","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"}],"src/pld/Makefile.am":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":11,"context_line":"\t%D%/xilinx_bit.h \\"},{"line_number":12,"context_line":"\t%D%/virtex2.h \\"},{"line_number":13,"context_line":"\t%D%/raw_bit.h \\"},{"line_number":14,"context_line":"\t%D%/efinix.h"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"f0869189_5957a9e5","line":14,"updated":"2022-11-01 21:55:44.000000000","message":"you should rebase this on top of ECPx patches, otherwise this will not merge","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"\t%D%/xilinx_bit.h \\"},{"line_number":12,"context_line":"\t%D%/virtex2.h \\"},{"line_number":13,"context_line":"\t%D%/raw_bit.h \\"},{"line_number":14,"context_line":"\t%D%/efinix.h"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"efee7c74_2337997c","line":14,"in_reply_to":"f0869189_5957a9e5","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"}],"src/pld/efinix.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"\tfseek(input_file, 0, SEEK_END);"},{"line_number":38,"context_line":"\tlong pos \u003d ftell(input_file);"},{"line_number":39,"context_line":"\tfseek(input_file, 0, SEEK_SET);"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\tif (pos \u003c 0 || ((pos % 3))) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"730512e4_61b1ac7b","line":38,"updated":"2022-11-01 21:55:44.000000000","message":"maybe s/pos/length/","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\t}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"\tfseek(input_file, 0, SEEK_END);"},{"line_number":38,"context_line":"\tlong pos \u003d ftell(input_file);"},{"line_number":39,"context_line":"\tfseek(input_file, 0, SEEK_SET);"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\tif (pos \u003c 0 || ((pos % 3))) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f49df871_9ba8e67a","line":38,"in_reply_to":"730512e4_61b1ac7b","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":43,"context_line":"\t\tLOG_ERROR(\"Failed to get length from file %s: %s\", filename, strerror(errno));"},{"line_number":44,"context_line":"\t\treturn ERROR_PLD_FILE_LOAD_FAILED;"},{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":"\tbit_file-\u003elength \u003d ((uint32_t)pos + 2) / 3;"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"\tbit_file-\u003edata \u003d (uint8_t *)malloc(bit_file-\u003elength);"},{"line_number":49,"context_line":"\tif (!bit_file-\u003edata) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"88b54265_aafaeaa9","line":46,"updated":"2022-11-01 21:55:44.000000000","message":"DI_ROUND_UP(, 3);","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t\tLOG_ERROR(\"Failed to get length from file %s: %s\", filename, strerror(errno));"},{"line_number":44,"context_line":"\t\treturn ERROR_PLD_FILE_LOAD_FAILED;"},{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":"\tbit_file-\u003elength \u003d ((uint32_t)pos + 2) / 3;"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"\tbit_file-\u003edata \u003d (uint8_t *)malloc(bit_file-\u003elength);"},{"line_number":49,"context_line":"\tif (!bit_file-\u003edata) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"d8a4aba5_30627341","line":46,"in_reply_to":"88b54265_aafaeaa9","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":"\tbit_file-\u003elength \u003d ((uint32_t)pos + 2) / 3;"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"\tbit_file-\u003edata \u003d (uint8_t *)malloc(bit_file-\u003elength);"},{"line_number":49,"context_line":"\tif (!bit_file-\u003edata) {"},{"line_number":50,"context_line":"\t\tfclose(input_file);"},{"line_number":51,"context_line":"\t\tLOG_ERROR(\"Unable to allocate memory for the bitstream\");"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"4f6b56ed_0e6280db","line":48,"updated":"2022-11-01 21:55:44.000000000","message":"no cast","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":"\tbit_file-\u003elength \u003d ((uint32_t)pos + 2) / 3;"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"\tbit_file-\u003edata \u003d (uint8_t *)malloc(bit_file-\u003elength);"},{"line_number":49,"context_line":"\tif (!bit_file-\u003edata) {"},{"line_number":50,"context_line":"\t\tfclose(input_file);"},{"line_number":51,"context_line":"\t\tLOG_ERROR(\"Unable to allocate memory for the bitstream\");"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"5793a832_21a40a42","line":48,"in_reply_to":"4f6b56ed_0e6280db","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":69,"context_line":"\t\tbit_file-\u003edata[idx] \u003d 0;"},{"line_number":70,"context_line":"\t\tfor (size_t i \u003d 0 ; i \u003c 2 ; ++i) {"},{"line_number":71,"context_line":"\t\t\tif (buffer[i] \u003e\u003d \u0027A\u0027 \u0026\u0026 buffer[i] \u003c\u003d \u0027F\u0027) {"},{"line_number":72,"context_line":"\t\t\t\tbit_file-\u003edata[idx] +\u003d (buffer[i] - \u0027A\u0027 + 10) \u003c\u003c (4 * (1 - i));"},{"line_number":73,"context_line":"\t\t\t} else if (buffer[i] \u003e\u003d \u0027a\u0027 \u0026\u0026 buffer[i] \u003c\u003d \u0027f\u0027) {"},{"line_number":74,"context_line":"\t\t\t\tbit_file-\u003edata[idx] +\u003d (buffer[i] - \u0027a\u0027 + 10) \u003c\u003c (4 * (1 - i));"},{"line_number":75,"context_line":"\t\t\t} else if (buffer[i] \u003e\u003d \u00270\u0027 \u0026\u0026 buffer[i] \u003c\u003d \u00279\u0027) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"cc1fff9e_8b57785a","line":72,"updated":"2022-11-01 21:55:44.000000000","message":"To increase readability, what about:\n if (!isxdigit(buffer[i]) || !isxdigit(buffer[i + 1])) {\n   all the error stuff\n }\n unhexify(\u0026bit_file-\u003edata[idx], \u0026buffer[i], 2);","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"\t\tbit_file-\u003edata[idx] \u003d 0;"},{"line_number":70,"context_line":"\t\tfor (size_t i \u003d 0 ; i \u003c 2 ; ++i) {"},{"line_number":71,"context_line":"\t\t\tif (buffer[i] \u003e\u003d \u0027A\u0027 \u0026\u0026 buffer[i] \u003c\u003d \u0027F\u0027) {"},{"line_number":72,"context_line":"\t\t\t\tbit_file-\u003edata[idx] +\u003d (buffer[i] - \u0027A\u0027 + 10) \u003c\u003c (4 * (1 - i));"},{"line_number":73,"context_line":"\t\t\t} else if (buffer[i] \u003e\u003d \u0027a\u0027 \u0026\u0026 buffer[i] \u003c\u003d \u0027f\u0027) {"},{"line_number":74,"context_line":"\t\t\t\tbit_file-\u003edata[idx] +\u003d (buffer[i] - \u0027a\u0027 + 10) \u003c\u003c (4 * (1 - i));"},{"line_number":75,"context_line":"\t\t\t} else if (buffer[i] \u003e\u003d \u00270\u0027 \u0026\u0026 buffer[i] \u003c\u003d \u00279\u0027) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a29a07f5_b4c57bda","line":72,"in_reply_to":"cc1fff9e_8b57785a","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"\tstruct trion_pld_device *trion_info;"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"\tif (CMD_ARGC \u003c 2)"},{"line_number":226,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"\ttap \u003d jtag_tap_by_string(CMD_ARGV[1]);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"7ba08273_8573fbcb","line":225,"updated":"2022-11-01 21:55:44.000000000","message":"!\u003d 2","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"\tstruct trion_pld_device *trion_info;"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"\tif (CMD_ARGC \u003c 2)"},{"line_number":226,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"\ttap \u003d jtag_tap_by_string(CMD_ARGV[1]);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a349eebb_ad66c822","line":225,"in_reply_to":"7ba08273_8573fbcb","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"97e72aa87f6b37b55ee907da33644589895ab83d","unresolved":true,"context_lines":[{"line_number":169,"context_line":"\tfield[0].in_value \u003d NULL;"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"\t/* followed by 3000 zeros */"},{"line_number":172,"context_line":"\tfield[1].num_bits \u003d 3000;"},{"line_number":173,"context_line":"\tchar *buf \u003d calloc(375, 1);"},{"line_number":174,"context_line":"\tif (!buf) {"},{"line_number":175,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"3ce6bc15_0a6deadd","line":172,"updated":"2022-11-12 21:38:18.000000000","message":"This magic number 3000 should be defined as macro","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"2cfe74b051162e89aff116b95b71a0cbcdcaeb0c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"\tfield[0].in_value \u003d NULL;"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"\t/* followed by 3000 zeros */"},{"line_number":172,"context_line":"\tfield[1].num_bits \u003d 3000;"},{"line_number":173,"context_line":"\tchar *buf \u003d calloc(375, 1);"},{"line_number":174,"context_line":"\tif (!buf) {"},{"line_number":175,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"fefbadec_8766333f","line":172,"in_reply_to":"3ce6bc15_0a6deadd","updated":"2022-11-13 16:25:32.000000000","message":"Done","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"97e72aa87f6b37b55ee907da33644589895ab83d","unresolved":true,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"\t/* followed by 3000 zeros */"},{"line_number":172,"context_line":"\tfield[1].num_bits \u003d 3000;"},{"line_number":173,"context_line":"\tchar *buf \u003d calloc(375, 1);"},{"line_number":174,"context_line":"\tif (!buf) {"},{"line_number":175,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"},{"line_number":176,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"27b98de6_5c4f5a8f","line":173,"updated":"2022-11-12 21:38:18.000000000","message":"and this 375 is better written as 3000/8, using the macro above","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"2cfe74b051162e89aff116b95b71a0cbcdcaeb0c","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"\t/* followed by 3000 zeros */"},{"line_number":172,"context_line":"\tfield[1].num_bits \u003d 3000;"},{"line_number":173,"context_line":"\tchar *buf \u003d calloc(375, 1);"},{"line_number":174,"context_line":"\tif (!buf) {"},{"line_number":175,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"},{"line_number":176,"context_line":"\t\treturn ERROR_FAIL;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"990101d9_e638daaf","line":173,"in_reply_to":"27b98de6_5c4f5a8f","updated":"2022-11-13 16:25:32.000000000","message":"Done","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"97e72aa87f6b37b55ee907da33644589895ab83d","unresolved":true,"context_lines":[{"line_number":189,"context_line":"\t/* shifting ENTERUSER instruction to IR */"},{"line_number":190,"context_line":"\ttrion_set_instr(tap, ENTERUSER);"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"\tfield[0].num_bits \u003d 300;"},{"line_number":193,"context_line":"\tfield[0].out_value \u003d (const uint8_t *)buf;"},{"line_number":194,"context_line":"\tfield[0].in_value \u003d NULL;"},{"line_number":195,"context_line":"\tjtag_add_dr_scan(tap, 1, field, TAP_DRPAUSE);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"3aec0793_eda13be7","line":192,"updated":"2022-11-12 21:38:18.000000000","message":"but this 300 I don\u0027t know where it comes from","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"2cfe74b051162e89aff116b95b71a0cbcdcaeb0c","unresolved":false,"context_lines":[{"line_number":189,"context_line":"\t/* shifting ENTERUSER instruction to IR */"},{"line_number":190,"context_line":"\ttrion_set_instr(tap, ENTERUSER);"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"\tfield[0].num_bits \u003d 300;"},{"line_number":193,"context_line":"\tfield[0].out_value \u003d (const uint8_t *)buf;"},{"line_number":194,"context_line":"\tfield[0].in_value \u003d NULL;"},{"line_number":195,"context_line":"\tjtag_add_dr_scan(tap, 1, field, TAP_DRPAUSE);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"1c0532bc_9ffc58bf","line":192,"in_reply_to":"3aec0793_eda13be7","updated":"2022-11-13 16:25:32.000000000","message":"Done","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"97e72aa87f6b37b55ee907da33644589895ab83d","unresolved":true,"context_lines":[{"line_number":195,"context_line":"\tjtag_add_dr_scan(tap, 1, field, TAP_DRPAUSE);"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"\t/* entering RUN/TEST for 1000 cycles */"},{"line_number":198,"context_line":"\tjtag_add_runtest(100, TAP_IDLE);"},{"line_number":199,"context_line":"\tretval \u003d jtag_execute_queue();"},{"line_number":200,"context_line":"\tfree(buf);"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"3e9c73e8_54cfa7fd","line":198,"updated":"2022-11-12 21:38:18.000000000","message":"nor this 100. The comment above say 1000!","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"2cfe74b051162e89aff116b95b71a0cbcdcaeb0c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"\tjtag_add_dr_scan(tap, 1, field, TAP_DRPAUSE);"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"\t/* entering RUN/TEST for 1000 cycles */"},{"line_number":198,"context_line":"\tjtag_add_runtest(100, TAP_IDLE);"},{"line_number":199,"context_line":"\tretval \u003d jtag_execute_queue();"},{"line_number":200,"context_line":"\tfree(buf);"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"00e9fc4d_c49440b5","line":198,"in_reply_to":"3e9c73e8_54cfa7fd","updated":"2022-11-13 16:25:32.000000000","message":"Done","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"f16899ec3c725fb1494e6cd20c126c4c825bff38","unresolved":true,"context_lines":[{"line_number":177,"context_line":"\tfield[1].num_bits \u003d TRAILING_ZEROS;"},{"line_number":178,"context_line":"\tuint8_t *buf \u003d calloc(TRAILING_ZEROS / 8, 1);"},{"line_number":179,"context_line":"\tif (!buf) {"},{"line_number":180,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"},{"line_number":181,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":182,"context_line":"\t}"},{"line_number":183,"context_line":"\tfield[1].out_value \u003d buf;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"6231205d_9651c54a","line":180,"updated":"2022-11-13 17:23:56.000000000","message":"missing free(bit_file.data);","commit_id":"cd1ae3e5d30c247bc74ea7ac7eb7a8b12b5a20af"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"66bd9aeb48b493d8d4ca7fcea5ae0ebb9de57598","unresolved":false,"context_lines":[{"line_number":177,"context_line":"\tfield[1].num_bits \u003d TRAILING_ZEROS;"},{"line_number":178,"context_line":"\tuint8_t *buf \u003d calloc(TRAILING_ZEROS / 8, 1);"},{"line_number":179,"context_line":"\tif (!buf) {"},{"line_number":180,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"},{"line_number":181,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":182,"context_line":"\t}"},{"line_number":183,"context_line":"\tfield[1].out_value \u003d buf;"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"800d49c6_d536bbde","line":180,"in_reply_to":"6231205d_9651c54a","updated":"2022-11-13 21:15:04.000000000","message":"Done","commit_id":"cd1ae3e5d30c247bc74ea7ac7eb7a8b12b5a20af"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0f7431e6496dffd1866088258ef6182c36d8ddd0","unresolved":true,"context_lines":[{"line_number":198,"context_line":"\t}"},{"line_number":199,"context_line":"\tefinix_info-\u003etap \u003d tap;"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"\tpld-\u003edriver_priv \u003d efinix_info;"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"\treturn ERROR_OK;"},{"line_number":204,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":23,"id":"7fcde1d0_6120188d","line":201,"updated":"2023-04-02 16:24:54.000000000","message":"already said in another patch. Calling twice this command we have a memory leak.\nfree(pld-\u003edriver_priv) before re-assigning it","commit_id":"aac8e62aeb35e0264449a24c9e8505b0a4359823"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"b45f0c7de58778d73033d6f357aa1407fe702872","unresolved":false,"context_lines":[{"line_number":198,"context_line":"\t}"},{"line_number":199,"context_line":"\tefinix_info-\u003etap \u003d tap;"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"\tpld-\u003edriver_priv \u003d efinix_info;"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"\treturn ERROR_OK;"},{"line_number":204,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":23,"id":"7405aeb0_b3114187","line":201,"in_reply_to":"7fcde1d0_6120188d","updated":"2023-04-08 19:52:02.000000000","message":"the struct pld_device was just allocated in handle_pld_device_command, so driver_priv points \"somewhere\" and we shouldn\u0027t free it here.\n\nKudos to Tommy Murphy. Thanks!","commit_id":"aac8e62aeb35e0264449a24c9e8505b0a4359823"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0f7431e6496dffd1866088258ef6182c36d8ddd0","unresolved":true,"context_lines":[{"line_number":203,"context_line":"\treturn ERROR_OK;"},{"line_number":204,"context_line":"}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"static const struct command_registration efinix_command_handler[] \u003d {"},{"line_number":207,"context_line":"\t{"},{"line_number":208,"context_line":"\t\t.name \u003d \"efinix\","},{"line_number":209,"context_line":"\t\t.mode \u003d COMMAND_ANY,"}],"source_content_type":"text/x-csrc","patch_set":23,"id":"bc9a55d5_5b6e88be","line":206,"updated":"2023-04-02 16:24:54.000000000","message":"this command list is empty. There is no dedicated command for efinix.\nYou should skip it completely and ...","commit_id":"aac8e62aeb35e0264449a24c9e8505b0a4359823"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"b45f0c7de58778d73033d6f357aa1407fe702872","unresolved":false,"context_lines":[{"line_number":203,"context_line":"\treturn ERROR_OK;"},{"line_number":204,"context_line":"}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"static const struct command_registration efinix_command_handler[] \u003d {"},{"line_number":207,"context_line":"\t{"},{"line_number":208,"context_line":"\t\t.name \u003d \"efinix\","},{"line_number":209,"context_line":"\t\t.mode \u003d COMMAND_ANY,"}],"source_content_type":"text/x-csrc","patch_set":23,"id":"50a7d42f_0e533aca","line":206,"in_reply_to":"bc9a55d5_5b6e88be","updated":"2023-04-08 19:52:02.000000000","message":"Done","commit_id":"aac8e62aeb35e0264449a24c9e8505b0a4359823"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0f7431e6496dffd1866088258ef6182c36d8ddd0","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"struct pld_driver efinix_pld \u003d {"},{"line_number":217,"context_line":"\t.name \u003d \"efinix\","},{"line_number":218,"context_line":"\t.commands \u003d efinix_command_handler,"},{"line_number":219,"context_line":"\t.pld_device_command \u003d \u0026efinix_pld_device_command,"},{"line_number":220,"context_line":"\t.load \u003d \u0026efinix_load,"},{"line_number":221,"context_line":"};"}],"source_content_type":"text/x-csrc","patch_set":23,"id":"bcd0f255_f08e99be","line":218,"updated":"2023-04-02 16:24:54.000000000","message":"... and remove this line. The code in handle_pld_device_command() check if \u0027commands\u0027 is not assigned and safely ignore it.","commit_id":"aac8e62aeb35e0264449a24c9e8505b0a4359823"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"b45f0c7de58778d73033d6f357aa1407fe702872","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"struct pld_driver efinix_pld \u003d {"},{"line_number":217,"context_line":"\t.name \u003d \"efinix\","},{"line_number":218,"context_line":"\t.commands \u003d efinix_command_handler,"},{"line_number":219,"context_line":"\t.pld_device_command \u003d \u0026efinix_pld_device_command,"},{"line_number":220,"context_line":"\t.load \u003d \u0026efinix_load,"},{"line_number":221,"context_line":"};"}],"source_content_type":"text/x-csrc","patch_set":23,"id":"a68d6abd_796c0b05","line":218,"in_reply_to":"bcd0f255_f08e99be","updated":"2023-04-08 19:52:02.000000000","message":"Done","commit_id":"aac8e62aeb35e0264449a24c9e8505b0a4359823"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"0fe731b835fa47c5757996cfa09ef61335e017bd","unresolved":true,"context_lines":[{"line_number":109,"context_line":"\tstruct scan_field field;"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"\tfield.num_bits \u003d tap-\u003eir_length;"},{"line_number":112,"context_line":"\tvoid *t \u003d calloc(DIV_ROUND_UP(field.num_bits, 8), 1);"},{"line_number":113,"context_line":"\tfield.out_value \u003d t;"},{"line_number":114,"context_line":"\tbuf_set_u32(t, 0, field.num_bits, new_instr);"},{"line_number":115,"context_line":"\tfield.in_value \u003d NULL;"}],"source_content_type":"text/x-csrc","patch_set":25,"id":"e1157408_c4fbfd6d","line":112,"updated":"2023-04-10 16:19:48.000000000","message":"if (!t) LOG_ERROR(\"Out of memory\")","commit_id":"7015a98eee8eb9886a0427294e323ef818cda58d"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"49fc9566f407e9dc1def11cbe16fd8dbd1bb642d","unresolved":false,"context_lines":[{"line_number":109,"context_line":"\tstruct scan_field field;"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"\tfield.num_bits \u003d tap-\u003eir_length;"},{"line_number":112,"context_line":"\tvoid *t \u003d calloc(DIV_ROUND_UP(field.num_bits, 8), 1);"},{"line_number":113,"context_line":"\tfield.out_value \u003d t;"},{"line_number":114,"context_line":"\tbuf_set_u32(t, 0, field.num_bits, new_instr);"},{"line_number":115,"context_line":"\tfield.in_value \u003d NULL;"}],"source_content_type":"text/x-csrc","patch_set":25,"id":"6188c6c3_fac105cd","line":112,"in_reply_to":"e1157408_c4fbfd6d","updated":"2023-04-10 19:56:50.000000000","message":"The ir of trion are 4 and titanium are 5 bits long.","commit_id":"7015a98eee8eb9886a0427294e323ef818cda58d"}],"src/pld/efinix.h":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"97e72aa87f6b37b55ee907da33644589895ab83d","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"struct trion_pld_device {"},{"line_number":14,"context_line":"\tstruct jtag_tap *tap;"},{"line_number":15,"context_line":"};"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#endif /* OPENOCD_PLD_EFINIX_H */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"0f28e541_262fc355","line":15,"updated":"2022-11-12 21:38:18.000000000","message":"I think this file .h can be removed and this prototype moved in efinix.c","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"2cfe74b051162e89aff116b95b71a0cbcdcaeb0c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"struct trion_pld_device {"},{"line_number":14,"context_line":"\tstruct jtag_tap *tap;"},{"line_number":15,"context_line":"};"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#endif /* OPENOCD_PLD_EFINIX_H */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"4d4cba77_3bb802f8","line":15,"in_reply_to":"0f28e541_262fc355","updated":"2022-11-13 16:25:32.000000000","message":"Done","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"}],"tcl/fpga/efinix_titanium.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"7e86276bd2442ae7e50b52bb50d49b19b7b05c31","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"556c429f_11c48b51","line":39,"updated":"2022-11-01 21:55:44.000000000","message":"remove the empty lines at the end of the file","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"a16a9bce1ab6f62a53498b46d89efdd64684f98e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b9ad3bb2_29ac85d5","line":39,"in_reply_to":"556c429f_11c48b51","updated":"2022-11-11 09:59:22.000000000","message":"Done","commit_id":"6ce09fa4f4c374cfe506ac27f70808373b2a67ab"}],"tcl/fpga/efinix_trion.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"97e72aa87f6b37b55ee907da33644589895ab83d","unresolved":true,"context_lines":[{"line_number":17,"context_line":"pld device trion $_CHIPNAME.tap"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# JTAG configuration:"},{"line_number":20,"context_line":"set TRION_PROGRAM 0x4"},{"line_number":21,"context_line":"#Changes the FPGA into user mode:"},{"line_number":22,"context_line":"set TRION_ENTERUSER 0x7"},{"line_number":23,"context_line":"set TRION_USER1 0x8"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"2e7e00b9_8125ca02","line":20,"updated":"2022-11-12 21:38:18.000000000","message":"what are these variables set for?\nIs the user supposed to use them?","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"},{"author":{"_account_id":1001810,"name":"Daniel Anselmi","email":"danselmi@gmx.ch","username":"danselmi"},"change_message_id":"2cfe74b051162e89aff116b95b71a0cbcdcaeb0c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"pld device trion $_CHIPNAME.tap"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# JTAG configuration:"},{"line_number":20,"context_line":"set TRION_PROGRAM 0x4"},{"line_number":21,"context_line":"#Changes the FPGA into user mode:"},{"line_number":22,"context_line":"set TRION_ENTERUSER 0x7"},{"line_number":23,"context_line":"set TRION_USER1 0x8"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"b6ebee19_b7ecc07a","line":20,"in_reply_to":"2e7e00b9_8125ca02","updated":"2022-11-13 16:25:32.000000000","message":"Done","commit_id":"0167804dce8e25f8d726ede0f9238535d2a14743"}]}
