)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"a7642f95c535017d84cd415b53b359bf6439c6ad","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     RolfNoot \u003cr.nooteboom@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-12-10 21:29:04 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"update PSoC6 flash driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"95% based on latest Infineon branch (5.0.0)"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"971af583_e1eb99a4","line":7,"updated":"2023-12-10 21:59:24.000000000","message":"please change the first line as\nflash: nor: update PSoC6 driver","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"8f639d5d119e9bd824011850060135bd2b04faae","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     RolfNoot \u003cr.nooteboom@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-12-10 21:29:04 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"update PSoC6 flash driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"95% based on latest Infineon branch (5.0.0)"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d1504c34_d79a9f5c","line":7,"in_reply_to":"971af583_e1eb99a4","updated":"2023-12-14 16:38:47.000000000","message":"Done","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"a7642f95c535017d84cd415b53b359bf6439c6ad","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"converted in one solid driver for PSoC6"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"creditss to Bohdan Tymkiv"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Iab952e58e7e4fa4c768a1cf51dfa8bbf53c43243"},{"line_number":20,"context_line":"Signed-off-by: RolfNoot \u003cr.nooteboom@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"0b8e80f6_af65f418","line":17,"updated":"2023-12-10 21:59:24.000000000","message":"typo: \u0027credits\u0027 with a single \u0027s\u0027","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"8f639d5d119e9bd824011850060135bd2b04faae","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"converted in one solid driver for PSoC6"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"creditss to Bohdan Tymkiv"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Iab952e58e7e4fa4c768a1cf51dfa8bbf53c43243"},{"line_number":20,"context_line":"Signed-off-by: RolfNoot \u003cr.nooteboom@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"e2beb5d8_c51f1f86","line":17,"in_reply_to":"0b8e80f6_af65f418","updated":"2023-12-14 16:38:47.000000000","message":"Done","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"a7642f95c535017d84cd415b53b359bf6439c6ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c68e43f2_07635c6b","updated":"2023-12-10 21:59:24.000000000","message":"I have not reviewed it, just checked why the build fails","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"80fa2d9785e2dc6f674f9dd76ffd61ca255f0e1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1b2be601_d29f9986","updated":"2023-12-13 00:30:31.000000000","message":"again not really reviewed.\nBut I noticed something strange below; would you mind checking it?","commit_id":"5858ee3bf0cb3b0c31b8e7216c015b66a7f2eca1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1c1cb85e_a181d558","updated":"2023-12-14 22:33:40.000000000","message":"Thanks for the rework.\nThere are several minor problems with this patch; at the end I stopped marking them all:\n- new commands must be documented in doc/openocd.texi.\n- excessive use of type uint32_t variables where unsigned int would be better fit; we use uint32_t when we exchange a 32 bit value with the target.\n- variables of type uint32_t need special format \"%\" PRIX32 or \"%\" PRId32, not \"%X\" or \"%d\".\n- come code line is commented or excluded with #if 0. this cannot be checked when we change variable or functions names.\n\nPlease try to address them as much as you can, then we can pass a new check in gerrit","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"23aeb9f15ef9a574afe0081aaa56999b9d553017","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"06b28559_57ad1fd4","in_reply_to":"1c1cb85e_a181d558","updated":"2023-12-16 16:03:22.000000000","message":"- new commands must be documented in doc/openocd.texi.\nWill try to document as best as I can / see how Infineon documented it\n- excessive use of type uint32_t variables where unsigned int would be better fit; we use uint32_t when we exchange a 32 bit value with the target.\nGood to know! Will change as much as possible but might need help of the original autor or flash experts.\n- variables of type uint32_t need special format \"%\" PRIX32 or \"%\" PRId32, not \"%X\" or \"%d\".\ncome code line is commented or excluded with #if 0. this cannot be checked when we change variable or functions names.\nChanged this and good to know!","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"893b9125_e7a2df0a","updated":"2023-12-17 12:05:01.000000000","message":"I think you have incorrectly mixed this patch with something else, as the file\nsrc/jtag/drivers/cmsis_dap_usb_bulk.c\nis not supposed to be here.","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"d418f6f830639a578238044c4922dcbb7fdbc669","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"67dc0823_924cc1de","in_reply_to":"893b9125_e7a2df0a","updated":"2023-12-17 19:55:43.000000000","message":"The problem is that I need to test with the latest src/jtag/drivers/cmsis_dap_usb_bulk.c and I wasn\u0027t suppose to include it in this patch. I am not sure \u0027remove\u0027 this change from the push.","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"380c0132820e3a5db06cf9e72fb04efdf53ee31f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"4a1ced64_61c737d5","updated":"2024-01-27 10:51:21.000000000","message":"Any news on this patch? Remind that the current PSoC6 implementation does NOT work and these patch is necessary to fix PSoC6 programming.","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"fcc00145_cc26d3be","updated":"2024-02-03 15:59:19.000000000","message":"Rolf,\nwe should be very careful when taking some code back from the Cypress fork. In comparison to other forks this one is full of added ballast and diverged from upstream in many important details.\nThey decided to make their fork and stopped contributing upstream so why should we support their products?","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6641a14e6ffd2c7ca46760ada113ea2552c1e261","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"851b9d91_7fe6ff43","updated":"2024-02-03 14:23:43.000000000","message":"Rolf, please review the use of \u0027coreid\u0027 and the target name suffix.\nThe use of arch type is preferred to detect the CPU type.","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"}],"src/flash/nor/psoc6.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"a7642f95c535017d84cd415b53b359bf6439c6ad","unresolved":true,"context_lines":[{"line_number":1871,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1872,"context_line":""},{"line_number":1873,"context_line":"\tstatic const uint8_t p6_program_algo[] \u003d {"},{"line_number":1874,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc6_write.inc\""},{"line_number":1875,"context_line":"\t};"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"\tstatic const uint8_t p6_erase_algo[] \u003d {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"b60092cd_d0e41d3e","line":1874,"updated":"2023-12-10 21:59:24.000000000","message":"the build fails because this file is not present yet but provided by the following patch.\nPlease reorder the patches to first provide the firmware\u0027s and then this patch that use them","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"80fa2d9785e2dc6f674f9dd76ffd61ca255f0e1e","unresolved":false,"context_lines":[{"line_number":1871,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1872,"context_line":""},{"line_number":1873,"context_line":"\tstatic const uint8_t p6_program_algo[] \u003d {"},{"line_number":1874,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc6_write.inc\""},{"line_number":1875,"context_line":"\t};"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"\tstatic const uint8_t p6_erase_algo[] \u003d {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"0a9e8844_8a1e7eb7","line":1874,"in_reply_to":"b60092cd_d0e41d3e","updated":"2023-12-13 00:30:31.000000000","message":"Done","commit_id":"1aad736f824cb52f597b07676a4645d4675e0b37"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"80fa2d9785e2dc6f674f9dd76ffd61ca255f0e1e","unresolved":true,"context_lines":[{"line_number":2108,"context_line":"};"},{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"/* Flash driver for PSoC6 BLE2 */"},{"line_number":2111,"context_line":"const struct flash_driver psoc6_flash \u003d {"},{"line_number":2112,"context_line":"\t.name \u003d \"psoc6\","},{"line_number":2113,"context_line":"\t.commands \u003d psoc6_command_handlers,"},{"line_number":2114,"context_line":"\t.flash_bank_command \u003d psoc6_ble2_flash_bank_command,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"89f8a77c_493681ae","line":2111,"updated":"2023-12-13 00:30:31.000000000","message":"this struct psoc6_flash has prototype in\nsrc/flash/nor/driver.h\nand is referenced in\nsrc/flash/nor/drivers.c\nOK, this is working!","commit_id":"5858ee3bf0cb3b0c31b8e7216c015b66a7f2eca1"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"8f639d5d119e9bd824011850060135bd2b04faae","unresolved":false,"context_lines":[{"line_number":2108,"context_line":"};"},{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"/* Flash driver for PSoC6 BLE2 */"},{"line_number":2111,"context_line":"const struct flash_driver psoc6_flash \u003d {"},{"line_number":2112,"context_line":"\t.name \u003d \"psoc6\","},{"line_number":2113,"context_line":"\t.commands \u003d psoc6_command_handlers,"},{"line_number":2114,"context_line":"\t.flash_bank_command \u003d psoc6_ble2_flash_bank_command,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"e59e5019_a37a8361","line":2111,"in_reply_to":"89f8a77c_493681ae","updated":"2023-12-14 16:38:47.000000000","message":"Done","commit_id":"5858ee3bf0cb3b0c31b8e7216c015b66a7f2eca1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"80fa2d9785e2dc6f674f9dd76ffd61ca255f0e1e","unresolved":true,"context_lines":[{"line_number":2125,"context_line":"};"},{"line_number":2126,"context_line":""},{"line_number":2127,"context_line":"/* Flash driver for PSoC6 BLE2 */"},{"line_number":2128,"context_line":"struct flash_driver psoc6_2m_flash \u003d {"},{"line_number":2129,"context_line":"\t.name \u003d \"psoc6_2m\","},{"line_number":2130,"context_line":"\t.commands \u003d psoc6_command_handlers,"},{"line_number":2131,"context_line":"\t.flash_bank_command \u003d psoc6_2m_flash_bank_command,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"ced29c35_f057b4a9","line":2128,"updated":"2023-12-13 00:30:31.000000000","message":"but this struct psoc6_2m_flash is not used.\nHave you forgot something in\nsrc/flash/nor/driver.h\nsrc/flash/nor/drivers.c\n?","commit_id":"5858ee3bf0cb3b0c31b8e7216c015b66a7f2eca1"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"8f639d5d119e9bd824011850060135bd2b04faae","unresolved":false,"context_lines":[{"line_number":2125,"context_line":"};"},{"line_number":2126,"context_line":""},{"line_number":2127,"context_line":"/* Flash driver for PSoC6 BLE2 */"},{"line_number":2128,"context_line":"struct flash_driver psoc6_2m_flash \u003d {"},{"line_number":2129,"context_line":"\t.name \u003d \"psoc6_2m\","},{"line_number":2130,"context_line":"\t.commands \u003d psoc6_command_handlers,"},{"line_number":2131,"context_line":"\t.flash_bank_command \u003d psoc6_2m_flash_bank_command,"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"884c241b_30dafad8","line":2128,"in_reply_to":"ced29c35_f057b4a9","updated":"2023-12-14 16:38:47.000000000","message":"Correct, the reference for the PSoC6 2M is added to the drivers in patch set 7","commit_id":"5858ee3bf0cb3b0c31b8e7216c015b66a7f2eca1"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":21,"context_line":"#include \"target/image.h\""},{"line_number":22,"context_line":"#include \"target/register.h\""},{"line_number":23,"context_line":"#include \"target/target.h\""},{"line_number":24,"context_line":"#include \"rtos/rtos.h\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"/**************************************************************************************************"},{"line_number":27,"context_line":" * PSoC6 device definitions"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"b1b3fe68_5b24cf8c","line":24,"updated":"2023-12-14 22:33:40.000000000","message":"I think the only reference to rtos code at line 1633 is not compiled.\nThis include can be dropped","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":21,"context_line":"#include \"target/image.h\""},{"line_number":22,"context_line":"#include \"target/register.h\""},{"line_number":23,"context_line":"#include \"target/target.h\""},{"line_number":24,"context_line":"#include \"rtos/rtos.h\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"/**************************************************************************************************"},{"line_number":27,"context_line":" * PSoC6 device definitions"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"ccc4756e_0b6faec6","line":24,"in_reply_to":"b1b3fe68_5b24cf8c","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":530,"context_line":""},{"line_number":531,"context_line":"\t\t/* Workaround for double-buffered PPU */"},{"line_number":532,"context_line":"\t\tif (info-\u003eregs-\u003eppu_flush) {"},{"line_number":533,"context_line":"\t\t\t//enum log_levels level \u003d change_debug_level(LOG_LVL_USER);"},{"line_number":534,"context_line":"\t\t\thr \u003d target_read_u32(target, info-\u003eregs-\u003eppu_flush, \u0026reg_val);"},{"line_number":535,"context_line":"\t\t\t//change_debug_level(level);"},{"line_number":536,"context_line":"\t\t\tinfo-\u003eppu_read_protected \u003d (hr !\u003d ERROR_OK);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"fb78eaef_5ba3f9f5","line":533,"updated":"2023-12-14 22:33:40.000000000","message":"this function change_debug_level() does not exist.\nkeeping the comments with the function has no sense.","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":530,"context_line":""},{"line_number":531,"context_line":"\t\t/* Workaround for double-buffered PPU */"},{"line_number":532,"context_line":"\t\tif (info-\u003eregs-\u003eppu_flush) {"},{"line_number":533,"context_line":"\t\t\t//enum log_levels level \u003d change_debug_level(LOG_LVL_USER);"},{"line_number":534,"context_line":"\t\t\thr \u003d target_read_u32(target, info-\u003eregs-\u003eppu_flush, \u0026reg_val);"},{"line_number":535,"context_line":"\t\t\t//change_debug_level(level);"},{"line_number":536,"context_line":"\t\t\tinfo-\u003eppu_read_protected \u003d (hr !\u003d ERROR_OK);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f0636387_152751ed","line":533,"in_reply_to":"fb78eaef_5ba3f9f5","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":619,"context_line":" * @brief Invokes SROM API functions which are responsible for Flash operations"},{"line_number":620,"context_line":" *"},{"line_number":621,"context_line":" * @param bank current flash bank"},{"line_number":622,"context_line":" * @param req_and_params requect id of the function to invoke"},{"line_number":623,"context_line":" * @param working_area address of memory buffer in target\u0027s memory space for SROM API parameters"},{"line_number":624,"context_line":" * @param check_errors true if error check and reporting should be performed"},{"line_number":625,"context_line":" * @param data_out pointer to variable which will be populated with execution status"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"b63a2b20_0aae33b8","line":622,"updated":"2023-12-14 22:33:40.000000000","message":"typo: requect \u003d\u003e request ?","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":619,"context_line":" * @brief Invokes SROM API functions which are responsible for Flash operations"},{"line_number":620,"context_line":" *"},{"line_number":621,"context_line":" * @param bank current flash bank"},{"line_number":622,"context_line":" * @param req_and_params requect id of the function to invoke"},{"line_number":623,"context_line":" * @param working_area address of memory buffer in target\u0027s memory space for SROM API parameters"},{"line_number":624,"context_line":" * @param check_errors true if error check and reporting should be performed"},{"line_number":625,"context_line":" * @param data_out pointer to variable which will be populated with execution status"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a9d12321_bddb2fc3","line":622,"in_reply_to":"b63a2b20_0aae33b8","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":675,"context_line":""},{"line_number":676,"context_line":"\tbool is_error \u003d (*data_out \u0026 SROMAPI_STATUS_MSK) !\u003d SROMAPI_STAT_SUCCESS;"},{"line_number":677,"context_line":"\tif (check_errors \u0026\u0026 is_error) {"},{"line_number":678,"context_line":"\t\tLOG_ERROR(\"SROM API execution failed. Status: 0x%08X\", (uint32_t)*data_out);"},{"line_number":679,"context_line":"\t\treturn ERROR_TARGET_FAILURE;"},{"line_number":680,"context_line":"\t}"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"9ced5947_b2fa9ae1","line":678,"updated":"2023-12-14 22:33:40.000000000","message":"data_out is already of type uint32_t*. There is no need to cast to uint32_t.\nPlus, to print a uint32_t the correct line would be\nLOG_ERROR(\"SROM API execution failed. Status: 0x%08\" PRIX32, *data_out);","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":675,"context_line":""},{"line_number":676,"context_line":"\tbool is_error \u003d (*data_out \u0026 SROMAPI_STATUS_MSK) !\u003d SROMAPI_STAT_SUCCESS;"},{"line_number":677,"context_line":"\tif (check_errors \u0026\u0026 is_error) {"},{"line_number":678,"context_line":"\t\tLOG_ERROR(\"SROM API execution failed. Status: 0x%08X\", (uint32_t)*data_out);"},{"line_number":679,"context_line":"\t\treturn ERROR_TARGET_FAILURE;"},{"line_number":680,"context_line":"\t}"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"5fc2e9fa_93d75374","line":678,"in_reply_to":"9ced5947_b2fa9ae1","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":817,"context_line":"\tif (hr !\u003d ERROR_OK)"},{"line_number":818,"context_line":"\t\treturn hr;"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"\tcommand_print_sameline(cmd, \"Silicon ID: 0x%08X\\nProtection: %s\","},{"line_number":821,"context_line":"\t\tsilicon_id, protection_to_str(protection));"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"\treturn ERROR_OK;"},{"line_number":824,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6826eccf_8a774748","line":821,"range":{"start_line":820,"start_character":1,"end_line":821,"end_character":8},"updated":"2023-12-14 22:33:40.000000000","message":"silicon_id is a uint32_t\ncommand_print_sameline(cmd, \"Silicon ID: 0x%08\" PRIX32 \"\\nProtection: %s\",","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":817,"context_line":"\tif (hr !\u003d ERROR_OK)"},{"line_number":818,"context_line":"\t\treturn hr;"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"\tcommand_print_sameline(cmd, \"Silicon ID: 0x%08X\\nProtection: %s\","},{"line_number":821,"context_line":"\t\tsilicon_id, protection_to_str(protection));"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"\treturn ERROR_OK;"},{"line_number":824,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"af939b44_63e1fd07","line":821,"range":{"start_line":820,"start_character":1,"end_line":821,"end_character":8},"in_reply_to":"6826eccf_8a774748","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":843,"context_line":""},{"line_number":844,"context_line":"\t\tif (addr \u003e\u003d region_start \u0026\u0026 addr \u003c region_start + region_size) {"},{"line_number":845,"context_line":"\t\t\tif (op \u003d\u003d ERASE) {"},{"line_number":846,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 0)));"},{"line_number":847,"context_line":"\t\t\t} else { /* op \u003d\u003d PROGRAM */"},{"line_number":848,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 4)));"},{"line_number":849,"context_line":"\t\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f711b47b_814c6736","line":846,"updated":"2023-12-14 22:33:40.000000000","message":"return info-\u003esflash_regions[i].flags \u0026 BIT(g_sflash_restrictions + 0);","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":843,"context_line":""},{"line_number":844,"context_line":"\t\tif (addr \u003e\u003d region_start \u0026\u0026 addr \u003c region_start + region_size) {"},{"line_number":845,"context_line":"\t\t\tif (op \u003d\u003d ERASE) {"},{"line_number":846,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 0)));"},{"line_number":847,"context_line":"\t\t\t} else { /* op \u003d\u003d PROGRAM */"},{"line_number":848,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 4)));"},{"line_number":849,"context_line":"\t\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"edd31981_c994ea45","line":846,"in_reply_to":"f711b47b_814c6736","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":845,"context_line":"\t\t\tif (op \u003d\u003d ERASE) {"},{"line_number":846,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 0)));"},{"line_number":847,"context_line":"\t\t\t} else { /* op \u003d\u003d PROGRAM */"},{"line_number":848,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 4)));"},{"line_number":849,"context_line":"\t\t\t}"},{"line_number":850,"context_line":"\t\t}"},{"line_number":851,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"bb63c01b_0c86e82c","line":848,"updated":"2023-12-14 22:33:40.000000000","message":"return info-\u003esflash_regions[i].flags \u0026 BIT(g_sflash_restrictions + 4);","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":845,"context_line":"\t\t\tif (op \u003d\u003d ERASE) {"},{"line_number":846,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 0)));"},{"line_number":847,"context_line":"\t\t\t} else { /* op \u003d\u003d PROGRAM */"},{"line_number":848,"context_line":"\t\t\t\treturn (info-\u003esflash_regions[i].flags \u0026 (1u \u003c\u003c (g_sflash_restrictions + 4)));"},{"line_number":849,"context_line":"\t\t\t}"},{"line_number":850,"context_line":"\t\t}"},{"line_number":851,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"2c186a21_b6080f6d","line":848,"in_reply_to":"bb63c01b_0c86e82c","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":958,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"},{"line_number":959,"context_line":"\tstruct working_area *wa;"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"\tLOG_DEBUG(\"PSoC6 platform: erasing row @%08X\", addr);"},{"line_number":962,"context_line":"\tuint8_t srom_params[2 * sizeof(uint32_t)];"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"\tint hr \u003d target_alloc_working_area(target, sizeof(srom_params), \u0026wa);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"cc9e167a_aa6ff352","line":961,"updated":"2023-12-14 22:33:40.000000000","message":"LOG_DEBUG(\"PSoC6 platform: erasing row @%08\" PRIX32, addr);","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":958,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"},{"line_number":959,"context_line":"\tstruct working_area *wa;"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"\tLOG_DEBUG(\"PSoC6 platform: erasing row @%08X\", addr);"},{"line_number":962,"context_line":"\tuint8_t srom_params[2 * sizeof(uint32_t)];"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"\tint hr \u003d target_alloc_working_area(target, sizeof(srom_params), \u0026wa);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"00fe0ef6_145565fc","line":961,"in_reply_to":"cc9e167a_aa6ff352","updated":"2023-12-16 15:47:58.000000000","message":"Ack","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1021,"context_line":"\t\tif (psoc6_is_safe_sflash_page(info, row_addr, ERASE)) {"},{"line_number":1022,"context_line":"\t\t\thr \u003d psoc6_program_row(bank, row_addr, buffer, is_sflash);"},{"line_number":1023,"context_line":"\t\t\tif (hr !\u003d ERROR_OK)"},{"line_number":1024,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to program Flash at address 0x%08X\", row_addr);"},{"line_number":1025,"context_line":"\t\t} else {"},{"line_number":1026,"context_line":"\t\t\terase_skipped \u003d true;"},{"line_number":1027,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"dd4f019c_d8a8b88b","line":1024,"updated":"2023-12-14 22:33:40.000000000","message":"... Flash at address 0x%08\" PRIX32,","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1021,"context_line":"\t\tif (psoc6_is_safe_sflash_page(info, row_addr, ERASE)) {"},{"line_number":1022,"context_line":"\t\t\thr \u003d psoc6_program_row(bank, row_addr, buffer, is_sflash);"},{"line_number":1023,"context_line":"\t\t\tif (hr !\u003d ERROR_OK)"},{"line_number":1024,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to program Flash at address 0x%08X\", row_addr);"},{"line_number":1025,"context_line":"\t\t} else {"},{"line_number":1026,"context_line":"\t\t\terase_skipped \u003d true;"},{"line_number":1027,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a12a182c_90a132ed","line":1024,"in_reply_to":"dd4f019c_d8a8b88b","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1123,"context_line":"\t/* Number of rows in single sector */"},{"line_number":1124,"context_line":"\tconst unsigned int rows_in_sector \u003d sector_size / info-\u003epage_size;"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"\t//progress_init(last - first + 1, ERASING);"},{"line_number":1127,"context_line":"\twhile (last \u003e\u003d first) {"},{"line_number":1128,"context_line":"\t\tconst uint32_t address \u003d bank-\u003ebase + first * info-\u003epage_size;"},{"line_number":1129,"context_line":"\t\t/* Erase Sector if we are on sector boundary and erase size covers whole sector */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a946bcd4_db64f7e6","line":1126,"updated":"2023-12-14 22:33:40.000000000","message":"can this line be removed? together with the line after the loop and at exit:?","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"\t/* Number of rows in single sector */"},{"line_number":1124,"context_line":"\tconst unsigned int rows_in_sector \u003d sector_size / info-\u003epage_size;"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"\t//progress_init(last - first + 1, ERASING);"},{"line_number":1127,"context_line":"\twhile (last \u003e\u003d first) {"},{"line_number":1128,"context_line":"\t\tconst uint32_t address \u003d bank-\u003ebase + first * info-\u003epage_size;"},{"line_number":1129,"context_line":"\t\t/* Erase Sector if we are on sector boundary and erase size covers whole sector */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"548c2571_aaa50a31","line":1126,"in_reply_to":"a946bcd4_db64f7e6","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1216,"context_line":"\tbuf_set_u32(reg_params[2].value, 0, 32, num_addresses_in_buffer);"},{"line_number":1217,"context_line":"\tbuf_set_u32(reg_params[3].value, 0, 32, wa_stack-\u003eaddress + wa_stack-\u003esize);"},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":"\t//progress_init(0, ERASING);"},{"line_number":1220,"context_line":"\thr \u003d target_run_flash_async_algorithm(target, (const uint8_t *)address_buffer, num_addresses_in_buffer,"},{"line_number":1221,"context_line":"\t\t\tsizeof(uint32_t), 0, NULL, ARRAY_SIZE(reg_params), reg_params,"},{"line_number":1222,"context_line":"\t\t\twa_buffer-\u003eaddress, wa_buffer-\u003esize,"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"28305280_e35a5757","line":1219,"updated":"2023-12-14 22:33:40.000000000","message":"same here","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"\tbuf_set_u32(reg_params[2].value, 0, 32, num_addresses_in_buffer);"},{"line_number":1217,"context_line":"\tbuf_set_u32(reg_params[3].value, 0, 32, wa_stack-\u003eaddress + wa_stack-\u003esize);"},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":"\t//progress_init(0, ERASING);"},{"line_number":1220,"context_line":"\thr \u003d target_run_flash_async_algorithm(target, (const uint8_t *)address_buffer, num_addresses_in_buffer,"},{"line_number":1221,"context_line":"\t\t\tsizeof(uint32_t), 0, NULL, ARRAY_SIZE(reg_params), reg_params,"},{"line_number":1222,"context_line":"\t\t\twa_buffer-\u003eaddress, wa_buffer-\u003esize,"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6c31a3f7_e56a7808","line":1219,"in_reply_to":"28305280_e35a5757","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1225,"context_line":"\tif (hr !\u003d ERROR_OK) {"},{"line_number":1226,"context_line":"\t\tuint32_t srom_result \u003d buf_get_u32(reg_params[0].value, 0, 32);"},{"line_number":1227,"context_line":"\t\tif ((srom_result \u0026 SROMAPI_STATUS_MSK) !\u003d SROMAPI_STAT_SUCCESS) {"},{"line_number":1228,"context_line":"\t\t\tLOG_ERROR(\"SROM API execution failed. Status: 0x%08X\", srom_result);"},{"line_number":1229,"context_line":"\t\t\thr \u003d ERROR_FAIL;"},{"line_number":1230,"context_line":"\t\t}"},{"line_number":1231,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"fe640756_92b3e75c","line":1228,"updated":"2023-12-14 22:33:40.000000000","message":"PRIX32","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1225,"context_line":"\tif (hr !\u003d ERROR_OK) {"},{"line_number":1226,"context_line":"\t\tuint32_t srom_result \u003d buf_get_u32(reg_params[0].value, 0, 32);"},{"line_number":1227,"context_line":"\t\tif ((srom_result \u0026 SROMAPI_STATUS_MSK) !\u003d SROMAPI_STAT_SUCCESS) {"},{"line_number":1228,"context_line":"\t\t\tLOG_ERROR(\"SROM API execution failed. Status: 0x%08X\", srom_result);"},{"line_number":1229,"context_line":"\t\t\thr \u003d ERROR_FAIL;"},{"line_number":1230,"context_line":"\t\t}"},{"line_number":1231,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"dcfeeade_4ff1a3e4","line":1228,"in_reply_to":"fe640756_92b3e75c","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1270,"context_line":"\tuint32_t data_out;"},{"line_number":1271,"context_line":"\tint hr;"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"\tLOG_DEBUG(\"PSoC6 platform: programming row @%08X\", addr);"},{"line_number":1274,"context_line":"\tuint8_t srom_params[4 * sizeof(uint32_t)];"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"\thr \u003d target_alloc_working_area(target, sizeof(srom_params) + num_bytes, \u0026wa);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"c46d6557_b586b9cc","line":1273,"updated":"2023-12-14 22:33:40.000000000","message":"PRIX32\nPlease prefix hex values with \"0x\" in output","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1270,"context_line":"\tuint32_t data_out;"},{"line_number":1271,"context_line":"\tint hr;"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"\tLOG_DEBUG(\"PSoC6 platform: programming row @%08X\", addr);"},{"line_number":1274,"context_line":"\tuint8_t srom_params[4 * sizeof(uint32_t)];"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"\thr \u003d target_alloc_working_area(target, sizeof(srom_params) + num_bytes, \u0026wa);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"9501771a_a5f82ac4","line":1273,"in_reply_to":"c46d6557_b586b9cc","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1343,"context_line":"\tif (hr !\u003d ERROR_OK)"},{"line_number":1344,"context_line":"\t\tgoto exit;"},{"line_number":1345,"context_line":""},{"line_number":1346,"context_line":"\t//progress_init(count / info-\u003epage_size, PROGRAMMING);"},{"line_number":1347,"context_line":"\tfor (size_t i \u003d 0; i \u003c count / info-\u003epage_size; i++) {"},{"line_number":1348,"context_line":"\t\tconst uint32_t page_addr \u003d bank-\u003ebase + offset + i * info-\u003epage_size;"},{"line_number":1349,"context_line":"\t\tconst bool is_safe_sflash_page \u003d psoc6_is_safe_sflash_page(info, page_addr, PROGRAM);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"bf1f3fe3_a174864a","line":1346,"updated":"2023-12-14 22:33:40.000000000","message":"ditto","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1343,"context_line":"\tif (hr !\u003d ERROR_OK)"},{"line_number":1344,"context_line":"\t\tgoto exit;"},{"line_number":1345,"context_line":""},{"line_number":1346,"context_line":"\t//progress_init(count / info-\u003epage_size, PROGRAMMING);"},{"line_number":1347,"context_line":"\tfor (size_t i \u003d 0; i \u003c count / info-\u003epage_size; i++) {"},{"line_number":1348,"context_line":"\t\tconst uint32_t page_addr \u003d bank-\u003ebase + offset + i * info-\u003epage_size;"},{"line_number":1349,"context_line":"\t\tconst bool is_safe_sflash_page \u003d psoc6_is_safe_sflash_page(info, page_addr, PROGRAM);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"984acfe5_9e8b4dc9","line":1346,"in_reply_to":"bf1f3fe3_a174864a","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1351,"context_line":"\t\tif (!is_sflash || is_safe_sflash_page) {"},{"line_number":1352,"context_line":"\t\t\thr \u003d psoc6_program_row(bank, page_addr, buffer, is_sflash);"},{"line_number":1353,"context_line":"\t\t\tif (hr !\u003d ERROR_OK) {"},{"line_number":1354,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to program Flash at address 0x%08X\", page_addr);"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"\t\t\t\t/* Ignore possigle errors in case we are dealing with SFlash */"},{"line_number":1357,"context_line":"\t\t\t\tif (!is_sflash)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"1eb21d89_827a19e4","line":1354,"updated":"2023-12-14 22:33:40.000000000","message":"PRIX32","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"\t\tif (!is_sflash || is_safe_sflash_page) {"},{"line_number":1352,"context_line":"\t\t\thr \u003d psoc6_program_row(bank, page_addr, buffer, is_sflash);"},{"line_number":1353,"context_line":"\t\t\tif (hr !\u003d ERROR_OK) {"},{"line_number":1354,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to program Flash at address 0x%08X\", page_addr);"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"\t\t\t\t/* Ignore possigle errors in case we are dealing with SFlash */"},{"line_number":1357,"context_line":"\t\t\t\tif (!is_sflash)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6676e8b4_85a63040","line":1354,"in_reply_to":"1eb21d89_827a19e4","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1353,"context_line":"\t\t\tif (hr !\u003d ERROR_OK) {"},{"line_number":1354,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to program Flash at address 0x%08X\", page_addr);"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"\t\t\t\t/* Ignore possigle errors in case we are dealing with SFlash */"},{"line_number":1357,"context_line":"\t\t\t\tif (!is_sflash)"},{"line_number":1358,"context_line":"\t\t\t\t\tgoto exit;"},{"line_number":1359,"context_line":"\t\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"453388e9_11d85c5d","line":1356,"updated":"2023-12-14 22:33:40.000000000","message":"typo possigle \u003d\u003e possible","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1353,"context_line":"\t\t\tif (hr !\u003d ERROR_OK) {"},{"line_number":1354,"context_line":"\t\t\t\tLOG_ERROR(\"Failed to program Flash at address 0x%08X\", page_addr);"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"\t\t\t\t/* Ignore possigle errors in case we are dealing with SFlash */"},{"line_number":1357,"context_line":"\t\t\t\tif (!is_sflash)"},{"line_number":1358,"context_line":"\t\t\t\t\tgoto exit;"},{"line_number":1359,"context_line":"\t\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f8de4abc_a66e4993","line":1356,"in_reply_to":"453388e9_11d85c5d","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1430,"context_line":"\thr \u003d target_alloc_working_area(target, num_rows * info-\u003epage_size + 8, \u0026wa_buffer);"},{"line_number":1431,"context_line":"\tassert(hr \u003d\u003d ERROR_OK);"},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"\tLOG_DEBUG(\"Allocated buffer for %d pages (%d bytes)\", num_rows, num_rows * info-\u003epage_size);"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"\tstruct armv7m_algorithm armv7m_algo;"},{"line_number":1436,"context_line":"\tarmv7m_algo.common_magic \u003d ARMV7M_COMMON_MAGIC;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"3fc79194_a9b5ca6f","line":1433,"updated":"2023-12-14 22:33:40.000000000","message":"num_rows is uint32_t, so %d is incorrect and it requires \"%\" PRId32\nPlease notice that we use uint32_t when the variable matches a target register of size 32 bits.\nIs it correct to use uint32_t in this case? Or \"unsigned int\" would it be more appropriate?","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":true,"context_lines":[{"line_number":1430,"context_line":"\thr \u003d target_alloc_working_area(target, num_rows * info-\u003epage_size + 8, \u0026wa_buffer);"},{"line_number":1431,"context_line":"\tassert(hr \u003d\u003d ERROR_OK);"},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"\tLOG_DEBUG(\"Allocated buffer for %d pages (%d bytes)\", num_rows, num_rows * info-\u003epage_size);"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"\tstruct armv7m_algorithm armv7m_algo;"},{"line_number":1436,"context_line":"\tarmv7m_algo.common_magic \u003d ARMV7M_COMMON_MAGIC;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"41433335_406c9b49","line":1433,"in_reply_to":"3fc79194_a9b5ca6f","updated":"2023-12-16 15:47:58.000000000","message":"I think unsigned int would be most appropriate because it\u0027s just referring to a positive value (size) and not related to target communications.","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"a77c0694c4f6f345f3cbdd6c9657c7dedd75c898","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"\thr \u003d target_alloc_working_area(target, num_rows * info-\u003epage_size + 8, \u0026wa_buffer);"},{"line_number":1431,"context_line":"\tassert(hr \u003d\u003d ERROR_OK);"},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"\tLOG_DEBUG(\"Allocated buffer for %d pages (%d bytes)\", num_rows, num_rows * info-\u003epage_size);"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"\tstruct armv7m_algorithm armv7m_algo;"},{"line_number":1436,"context_line":"\tarmv7m_algo.common_magic \u003d ARMV7M_COMMON_MAGIC;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"4058f277_84796758","line":1433,"in_reply_to":"41433335_406c9b49","updated":"2023-12-16 18:09:05.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1457,"context_line":"\tif (hr !\u003d ERROR_OK) {"},{"line_number":1458,"context_line":"\t\tuint32_t srom_result \u003d buf_get_u32(reg_params[0].value, 0, 32);"},{"line_number":1459,"context_line":"\t\tif ((srom_result \u0026 SROMAPI_STATUS_MSK) !\u003d SROMAPI_STAT_SUCCESS) {"},{"line_number":1460,"context_line":"\t\t\tLOG_ERROR(\"SROM API execution failed. Status: 0x%08X\", srom_result);"},{"line_number":1461,"context_line":"\t\t\thr \u003d ERROR_FAIL;"},{"line_number":1462,"context_line":"\t\t}"},{"line_number":1463,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"687e1830_b2be3248","line":1460,"updated":"2023-12-14 22:33:40.000000000","message":"PRIX32","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"\tif (hr !\u003d ERROR_OK) {"},{"line_number":1458,"context_line":"\t\tuint32_t srom_result \u003d buf_get_u32(reg_params[0].value, 0, 32);"},{"line_number":1459,"context_line":"\t\tif ((srom_result \u0026 SROMAPI_STATUS_MSK) !\u003d SROMAPI_STAT_SUCCESS) {"},{"line_number":1460,"context_line":"\t\t\tLOG_ERROR(\"SROM API execution failed. Status: 0x%08X\", srom_result);"},{"line_number":1461,"context_line":"\t\t\thr \u003d ERROR_FAIL;"},{"line_number":1462,"context_line":"\t\t}"},{"line_number":1463,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"15b9275b_e3b5d4b3","line":1460,"in_reply_to":"687e1830_b2be3248","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1535,"context_line":"\t\t\tcontinue;"},{"line_number":1536,"context_line":""},{"line_number":1537,"context_line":"\t\tif (target-\u003ecoreid \u003d\u003d 0 \u0026\u0026 (vt_base \u0026 0xFFFF0000) \u003d\u003d 0xFFFF0000) {"},{"line_number":1538,"context_line":"\t\t\tLOG_INFO(\"%s: Application is invalid (VTOR \u003d 0x%08X), reset_halt skipped\","},{"line_number":1539,"context_line":"\t\t\t\t\t target_name(target), vt_base);"},{"line_number":1540,"context_line":"\t\t\tgoto exit_halt_cpu;"},{"line_number":1541,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6ec96d98_a005c02b","line":1538,"updated":"2023-12-14 22:33:40.000000000","message":"\"... (VTOR \u003d 0x%08\" PRIX32 \"), ...\"","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1535,"context_line":"\t\t\tcontinue;"},{"line_number":1536,"context_line":""},{"line_number":1537,"context_line":"\t\tif (target-\u003ecoreid \u003d\u003d 0 \u0026\u0026 (vt_base \u0026 0xFFFF0000) \u003d\u003d 0xFFFF0000) {"},{"line_number":1538,"context_line":"\t\t\tLOG_INFO(\"%s: Application is invalid (VTOR \u003d 0x%08X), reset_halt skipped\","},{"line_number":1539,"context_line":"\t\t\t\t\t target_name(target), vt_base);"},{"line_number":1540,"context_line":"\t\t\tgoto exit_halt_cpu;"},{"line_number":1541,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"00296005_68294cfe","line":1538,"in_reply_to":"6ec96d98_a005c02b","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1561,"context_line":"\t\tgoto exit_halt_cpu;"},{"line_number":1562,"context_line":"\t}"},{"line_number":1563,"context_line":""},{"line_number":1564,"context_line":"\tLOG_INFO(\"%s: Vector Table found at 0x%08X\", target_name(target), vt_base);"},{"line_number":1565,"context_line":""},{"line_number":1566,"context_line":"\t/* Set breakpoint at User Application entry point */"},{"line_number":1567,"context_line":"\thr \u003d breakpoint_add(target, reset_addr, 2, BKPT_HARD);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"bcf0c26d_9aa97ed3","line":1564,"updated":"2023-12-14 22:33:40.000000000","message":"PRIX32","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1561,"context_line":"\t\tgoto exit_halt_cpu;"},{"line_number":1562,"context_line":"\t}"},{"line_number":1563,"context_line":""},{"line_number":1564,"context_line":"\tLOG_INFO(\"%s: Vector Table found at 0x%08X\", target_name(target), vt_base);"},{"line_number":1565,"context_line":""},{"line_number":1566,"context_line":"\t/* Set breakpoint at User Application entry point */"},{"line_number":1567,"context_line":"\thr \u003d breakpoint_add(target, reset_addr, 2, BKPT_HARD);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"e6fec72d_b954500f","line":1564,"in_reply_to":"bcf0c26d_9aa97ed3","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1592,"context_line":"\t * This happens probably because JTAG pins gets disconnected momentarily when"},{"line_number":1593,"context_line":"\t * SYSRESETREQ bit is written causing invalid JTAG state when pins gets connected"},{"line_number":1594,"context_line":"\t * back to the DAP by the boot code. */"},{"line_number":1595,"context_line":"#if (0)"},{"line_number":1596,"context_line":"\tmem_ap_write_atomic_u32(armv7m-\u003edebug_ap, NVIC_AIRCR,"},{"line_number":1597,"context_line":"\t\tAIRCR_VECTKEY | rst_mask);"},{"line_number":1598,"context_line":"#else"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"d31390f1_65234a46","line":1595,"updated":"2023-12-14 22:33:40.000000000","message":"new code excluded with #if 0 or inside a comment is not welcome because it\u0027s never compiled and when we change something we cannot guarantee it\u0027s still working.\nWhat you think should be done with this?\nAny possible way to activate it automatically with\nif (some condition) {} else {} ?","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1592,"context_line":"\t * This happens probably because JTAG pins gets disconnected momentarily when"},{"line_number":1593,"context_line":"\t * SYSRESETREQ bit is written causing invalid JTAG state when pins gets connected"},{"line_number":1594,"context_line":"\t * back to the DAP by the boot code. */"},{"line_number":1595,"context_line":"#if (0)"},{"line_number":1596,"context_line":"\tmem_ap_write_atomic_u32(armv7m-\u003edebug_ap, NVIC_AIRCR,"},{"line_number":1597,"context_line":"\t\tAIRCR_VECTKEY | rst_mask);"},{"line_number":1598,"context_line":"#else"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f7996ba5_1f2fb017","line":1595,"in_reply_to":"d31390f1_65234a46","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"\t/* Wipe-out previous RTOS state, if any */"},{"line_number":1634,"context_line":"\t//if (target-\u003ertos_wipe_on_reset_halt)"},{"line_number":1635,"context_line":"\t//\trtos_wipe(target);"},{"line_number":1636,"context_line":""},{"line_number":1637,"context_line":"\treturn ERROR_OK;"},{"line_number":1638,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f73a976b_93637c88","line":1635,"updated":"2023-12-14 22:33:40.000000000","message":"don\u0027t add code that is not compiled, so not verified.","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"\t/* Wipe-out previous RTOS state, if any */"},{"line_number":1634,"context_line":"\t//if (target-\u003ertos_wipe_on_reset_halt)"},{"line_number":1635,"context_line":"\t//\trtos_wipe(target);"},{"line_number":1636,"context_line":""},{"line_number":1637,"context_line":"\treturn ERROR_OK;"},{"line_number":1638,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"ae0eed68_24b35207","line":1635,"in_reply_to":"f73a976b_93637c88","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1682,"context_line":"\treturn hr;"},{"line_number":1683,"context_line":"}"},{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":"COMMAND_HANDLER(psoc6_handle_reset_halt)"},{"line_number":1686,"context_line":"{"},{"line_number":1687,"context_line":"\tenum reset_halt_mode mode;"},{"line_number":1688,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"895a859f_6ce279e4","line":1685,"updated":"2023-12-14 22:33:40.000000000","message":"hummm... this command was already there, here it is extended.\nDo you know why we need a dedicated \"reset_halt\" command?","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":true,"context_lines":[{"line_number":1682,"context_line":"\treturn hr;"},{"line_number":1683,"context_line":"}"},{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":"COMMAND_HANDLER(psoc6_handle_reset_halt)"},{"line_number":1686,"context_line":"{"},{"line_number":1687,"context_line":"\tenum reset_halt_mode mode;"},{"line_number":1688,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"96b297e4_83e2b8a3","line":1685,"in_reply_to":"895a859f_6ce279e4","updated":"2023-12-16 15:47:58.000000000","message":"Most of the code is from Infineon and I can only guess why the command is extended. Probably because Infineon is using an \u0027exotic\u0027 reset/attach procedure (setting TEST MODE bit / accurate timings needed).","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"df8d6e2ce87bf44f63df315efa2d308712f18b93","unresolved":false,"context_lines":[{"line_number":1682,"context_line":"\treturn hr;"},{"line_number":1683,"context_line":"}"},{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":"COMMAND_HANDLER(psoc6_handle_reset_halt)"},{"line_number":1686,"context_line":"{"},{"line_number":1687,"context_line":"\tenum reset_halt_mode mode;"},{"line_number":1688,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"bf59902f_7a0c0c4e","line":1685,"in_reply_to":"8cc0c19d_31d88ff8","updated":"2023-12-16 18:58:49.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"9e2776fe1d12345bf408388ae3982c969ecb78bf","unresolved":true,"context_lines":[{"line_number":1682,"context_line":"\treturn hr;"},{"line_number":1683,"context_line":"}"},{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":"COMMAND_HANDLER(psoc6_handle_reset_halt)"},{"line_number":1686,"context_line":"{"},{"line_number":1687,"context_line":"\tenum reset_halt_mode mode;"},{"line_number":1688,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"8cc0c19d_31d88ff8","line":1685,"in_reply_to":"96b297e4_83e2b8a3","updated":"2023-12-16 16:07:38.000000000","message":"Also (from Infineon\u0027s doc):\nCommand can be used to simulate broken Vector Catch from gdbinit or tcl scripts.\nWhen invoked for CM0+ target, it will set break point at application entry point\nand issue SYSRESETREQ. This will reset both cores and all peripherals. CM0+ will\nreset CM4 during boot anyway so this is safe. On CM4 target, VECTRESET is used\ninstead of SYSRESETREQ to avoid unwanted reset of CM0+;","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1713,"context_line":""},{"line_number":1714,"context_line":"\tCOMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], restrictions);"},{"line_number":1715,"context_line":"\tif (restrictions \u003e 3) {"},{"line_number":1716,"context_line":"\t\tLOG_ERROR(\"SFlash restriction level should be in range 0...3\");"},{"line_number":1717,"context_line":"\t\treturn ERROR_COMMAND_ARGUMENT_INVALID;"},{"line_number":1718,"context_line":"\t}"},{"line_number":1719,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"d6289fdf_5161f555","line":1716,"updated":"2023-12-14 22:33:40.000000000","message":"please use\ncommand_print(CMD, \"SFlash restriction level should be in range 0...3\");","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1713,"context_line":""},{"line_number":1714,"context_line":"\tCOMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], restrictions);"},{"line_number":1715,"context_line":"\tif (restrictions \u003e 3) {"},{"line_number":1716,"context_line":"\t\tLOG_ERROR(\"SFlash restriction level should be in range 0...3\");"},{"line_number":1717,"context_line":"\t\treturn ERROR_COMMAND_ARGUMENT_INVALID;"},{"line_number":1718,"context_line":"\t}"},{"line_number":1719,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"9cb25180_5d9fece3","line":1716,"in_reply_to":"d6289fdf_5161f555","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"\tstruct flash_bank *bank \u003d get_flash_bank_by_name_noprobe(CMD_ARGV[0]);"},{"line_number":1752,"context_line":"\tif (!bank) {"},{"line_number":1753,"context_line":"\t\tLOG_ERROR(\"Invalid Flash Bank for psoc6_handle_set_region_size: %s\", CMD_ARGV[0]);"},{"line_number":1754,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1755,"context_line":"\t}"},{"line_number":1756,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"066301aa_014bf5bf","line":1753,"updated":"2023-12-14 22:33:40.000000000","message":"use command_print(CMD, \"...\", ...);","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"\tstruct flash_bank *bank \u003d get_flash_bank_by_name_noprobe(CMD_ARGV[0]);"},{"line_number":1752,"context_line":"\tif (!bank) {"},{"line_number":1753,"context_line":"\t\tLOG_ERROR(\"Invalid Flash Bank for psoc6_handle_set_region_size: %s\", CMD_ARGV[0]);"},{"line_number":1754,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1755,"context_line":"\t}"},{"line_number":1756,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a6e0c52f_9abf4958","line":1753,"in_reply_to":"066301aa_014bf5bf","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1751,"context_line":"\tstruct flash_bank *bank \u003d get_flash_bank_by_name_noprobe(CMD_ARGV[0]);"},{"line_number":1752,"context_line":"\tif (!bank) {"},{"line_number":1753,"context_line":"\t\tLOG_ERROR(\"Invalid Flash Bank for psoc6_handle_set_region_size: %s\", CMD_ARGV[0]);"},{"line_number":1754,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1755,"context_line":"\t}"},{"line_number":1756,"context_line":""},{"line_number":1757,"context_line":"\tstruct psoc6_bank_info *info \u003d bank-\u003edriver_priv;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"50bd1e9b_8ddf28ef","line":1754,"updated":"2023-12-14 22:33:40.000000000","message":"return ERROR_COMMAND_ARGUMENT_INVALID;","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1751,"context_line":"\tstruct flash_bank *bank \u003d get_flash_bank_by_name_noprobe(CMD_ARGV[0]);"},{"line_number":1752,"context_line":"\tif (!bank) {"},{"line_number":1753,"context_line":"\t\tLOG_ERROR(\"Invalid Flash Bank for psoc6_handle_set_region_size: %s\", CMD_ARGV[0]);"},{"line_number":1754,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1755,"context_line":"\t}"},{"line_number":1756,"context_line":""},{"line_number":1757,"context_line":"\tstruct psoc6_bank_info *info \u003d bank-\u003edriver_priv;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6f349ca5_e81ce0ef","line":1754,"in_reply_to":"50bd1e9b_8ddf28ef","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1791,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall)"},{"line_number":1792,"context_line":"{"},{"line_number":1793,"context_line":"\tif (!CMD_ARGC) {"},{"line_number":1794,"context_line":"\t\tLOG_ERROR(\"At least one argument required\");"},{"line_number":1795,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1796,"context_line":"\t}"},{"line_number":1797,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"81da9354_73964615","line":1794,"updated":"2023-12-14 22:33:40.000000000","message":"remove the LOG_ERROR().\nreturn ERROR_COMMAND_SYNTAX_ERROR;\nalready prints the error message","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1791,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall)"},{"line_number":1792,"context_line":"{"},{"line_number":1793,"context_line":"\tif (!CMD_ARGC) {"},{"line_number":1794,"context_line":"\t\tLOG_ERROR(\"At least one argument required\");"},{"line_number":1795,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1796,"context_line":"\t}"},{"line_number":1797,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"d4744ff5_20ef187e","line":1794,"in_reply_to":"81da9354_73964615","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1799,"context_line":""},{"line_number":1800,"context_line":"\tfor (size_t i \u003d 0; i \u003c CMD_ARGC; i++) {"},{"line_number":1801,"context_line":"\t\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[i], sromapi_params[i]);"},{"line_number":1802,"context_line":"\t\tif (i \u003d\u003d 0 \u0026\u0026 (sromapi_params[i] \u0026 0x01) \u0026\u0026 CMD_ARGC \u003e 1) {"},{"line_number":1803,"context_line":"\t\t\tLOG_ERROR(\"Additional SROM API parameters can be passed via RAM buffer only, \""},{"line_number":1804,"context_line":"\t\t\t\t\t  \"check bit #0 of your SROM API request.\");"},{"line_number":1805,"context_line":"\t\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"27b03303_7ede8786","line":1802,"updated":"2023-12-14 22:33:40.000000000","message":"please rewrite this loop.\nThe first parameter CMD_ARGV[0] is special, so read it separately with\nCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], sromapi_params[]);\nthen run the check and eventually return the error\nfinally read the other parameters:\nfor (unsigned int i \u003d 0; i \u003c CMD_ARGC; i++)\nCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[i], sromapi_params[i]);","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1799,"context_line":""},{"line_number":1800,"context_line":"\tfor (size_t i \u003d 0; i \u003c CMD_ARGC; i++) {"},{"line_number":1801,"context_line":"\t\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[i], sromapi_params[i]);"},{"line_number":1802,"context_line":"\t\tif (i \u003d\u003d 0 \u0026\u0026 (sromapi_params[i] \u0026 0x01) \u0026\u0026 CMD_ARGC \u003e 1) {"},{"line_number":1803,"context_line":"\t\t\tLOG_ERROR(\"Additional SROM API parameters can be passed via RAM buffer only, \""},{"line_number":1804,"context_line":"\t\t\t\t\t  \"check bit #0 of your SROM API request.\");"},{"line_number":1805,"context_line":"\t\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"438bcde9_6d182e53","line":1802,"in_reply_to":"27b03303_7ede8786","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4ab1b039aec92f364bb73c1cf282c60019c348f7","unresolved":true,"context_lines":[{"line_number":1859,"context_line":" *************************************************************************************************/"},{"line_number":1860,"context_line":"static int dummy_protect(struct flash_bank *bank, int set, unsigned int first, unsigned int last)"},{"line_number":1861,"context_line":"{"},{"line_number":1862,"context_line":"\t(void)bank; (void)set; (void)first; (void)last;"},{"line_number":1863,"context_line":""},{"line_number":1864,"context_line":"\tLOG_WARNING(\"Device does not support flash bank protection\");"},{"line_number":1865,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f7bb67bd_ae8df37d","line":1862,"updated":"2023-12-14 22:33:40.000000000","message":"remove this line.","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"36e8f83b32d905a3d566e7cb250af82fa4c4b066","unresolved":false,"context_lines":[{"line_number":1859,"context_line":" *************************************************************************************************/"},{"line_number":1860,"context_line":"static int dummy_protect(struct flash_bank *bank, int set, unsigned int first, unsigned int last)"},{"line_number":1861,"context_line":"{"},{"line_number":1862,"context_line":"\t(void)bank; (void)set; (void)first; (void)last;"},{"line_number":1863,"context_line":""},{"line_number":1864,"context_line":"\tLOG_WARNING(\"Device does not support flash bank protection\");"},{"line_number":1865,"context_line":"\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"ef0d2ca9_f82f220a","line":1862,"in_reply_to":"f7bb67bd_ae8df37d","updated":"2023-12-16 15:47:58.000000000","message":"Done","commit_id":"2ddf8460a385f8559d216d16bba5303c3112cd02"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":316,"context_line":"\tassert(last_dot_pos !\u003d 0);"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"\tlast_dot_pos++;"},{"line_number":319,"context_line":"\tchar *new_name \u003d calloc(1, last_dot_pos + strlen(suffix) + 1);"},{"line_number":320,"context_line":"\tmemcpy(new_name, target-\u003ecmd_name, last_dot_pos);"},{"line_number":321,"context_line":"\tnew_name \u003d strcat(new_name, suffix);"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"731893a5_8dd6831a","line":319,"updated":"2023-12-17 12:05:01.000000000","message":"every alloc function can fail, returning NULL. please add:\nif (!new_name) {\nLOG_ERROR(\"Out of memory\");\nreturn NULL;\n}","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"a9f23e3fb23e660e39697742e93c7ad928a5b04e","unresolved":false,"context_lines":[{"line_number":316,"context_line":"\tassert(last_dot_pos !\u003d 0);"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"\tlast_dot_pos++;"},{"line_number":319,"context_line":"\tchar *new_name \u003d calloc(1, last_dot_pos + strlen(suffix) + 1);"},{"line_number":320,"context_line":"\tmemcpy(new_name, target-\u003ecmd_name, last_dot_pos);"},{"line_number":321,"context_line":"\tnew_name \u003d strcat(new_name, suffix);"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"1e1b4d83_a0e6e378","line":319,"in_reply_to":"731893a5_8dd6831a","updated":"2023-12-18 15:24:14.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"\t/* Special core_id for fake SysAP */"},{"line_number":346,"context_line":"\tif (target-\u003ecoreid \u003d\u003d 0xFF) {"},{"line_number":347,"context_line":"\t\tstruct target *cm0_target \u003d psoc6_find_core_by_suffix(target, \"cm0\");"},{"line_number":348,"context_line":"\t\tif (!cm0_target)"},{"line_number":349,"context_line":"\t\t\treturn ERROR_OK;"},{"line_number":350,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"5cf2219a_648a62bf","line":347,"updated":"2023-12-17 12:05:01.000000000","message":"here you are looking for a target with name ending for \"cm0\", then use this target to run the flash algorithm.\nWhile this works in the simple case of one single chip, it will fail in case of two chips in the same JTAG daisy chain, where there would be two targets CHIP1.cm0 and CHIP2.cm0.\nIt\u0027s already hard to find such issues in the TCL config file, looking in the C code too would be too much.\nI don\u0027t know if it\u0027s feasible, but one solution could be to pass the target name at flash creation \"flash bank\" command.\nLooking in the existing file tcl/target/psoc6.cfg I see that the target is already passed as last parameter of \"flash bank\" for this reason. Can that solution be reused here?","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"e48fcc5ae75ad1d61700e83c56d32f707953b53c","unresolved":true,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"\t/* Special core_id for fake SysAP */"},{"line_number":346,"context_line":"\tif (target-\u003ecoreid \u003d\u003d 0xFF) {"},{"line_number":347,"context_line":"\t\tstruct target *cm0_target \u003d psoc6_find_core_by_suffix(target, \"cm0\");"},{"line_number":348,"context_line":"\t\tif (!cm0_target)"},{"line_number":349,"context_line":"\t\t\treturn ERROR_OK;"},{"line_number":350,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"b5266b8c_a8509fee","line":347,"in_reply_to":"5cf2219a_648a62bf","updated":"2023-12-18 15:01:43.000000000","message":"This code copied from the Infineon implementation. There are 3 APs per chip: CM0-AP, CM4-AP and Sys-AP (system AP). As far as I can see, this is what\u0027s going on: In some cases SROM API calls (which can be Flash erasing / programming, checksum reading, Silicon ID reading, blowing eFuses etc) are done directly by the Sys-AP (coreid 0xFF), rather than using IPC calls via the CM4 or CM0 (which are targeting the SROM calls indirectly). In such cases where the Sys-AP is used directly for the SROM API calls, it\u0027s safest to put CM0 in an infinite loop at startup. Hence the CM0 should be used from the SAME target to get this core in the safe \u0027endless\u0027 loop (while doing the SROM calls through the Sys-AP).\n\nNow I am not that expert on PSoC6 programming, so help here might be needed. Also my experience with OpenOCD is too fresh to figure out to have the routine searching for the CM0 target on the SAME chip. If I can get code ideas on how to search for the CM0 target on the same chip, I will do the testing.","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"380c0132820e3a5db06cf9e72fb04efdf53ee31f","unresolved":false,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"\t/* Special core_id for fake SysAP */"},{"line_number":346,"context_line":"\tif (target-\u003ecoreid \u003d\u003d 0xFF) {"},{"line_number":347,"context_line":"\t\tstruct target *cm0_target \u003d psoc6_find_core_by_suffix(target, \"cm0\");"},{"line_number":348,"context_line":"\t\tif (!cm0_target)"},{"line_number":349,"context_line":"\t\t\treturn ERROR_OK;"},{"line_number":350,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"ef5660f4_ee376068","line":347,"in_reply_to":"b5266b8c_a8509fee","updated":"2024-01-27 10:51:21.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":952,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"},{"line_number":953,"context_line":"\tstruct working_area *wa;"},{"line_number":954,"context_line":""},{"line_number":955,"context_line":"\tLOG_DEBUG(\"PSoC6 platform: erasing row @%08X\", addr);"},{"line_number":956,"context_line":"\tuint8_t srom_params[2 * sizeof(uint32_t)];"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"\tint hr \u003d target_alloc_working_area(target, sizeof(srom_params), \u0026wa);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"efd2166d_e1bbc2cc","line":955,"updated":"2023-12-17 12:05:01.000000000","message":"PRIX32","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"a9f23e3fb23e660e39697742e93c7ad928a5b04e","unresolved":false,"context_lines":[{"line_number":952,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"},{"line_number":953,"context_line":"\tstruct working_area *wa;"},{"line_number":954,"context_line":""},{"line_number":955,"context_line":"\tLOG_DEBUG(\"PSoC6 platform: erasing row @%08X\", addr);"},{"line_number":956,"context_line":"\tuint8_t srom_params[2 * sizeof(uint32_t)];"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"\tint hr \u003d target_alloc_working_area(target, sizeof(srom_params), \u0026wa);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"125b8a24_bf9934a0","line":955,"in_reply_to":"efd2166d_e1bbc2cc","updated":"2023-12-18 15:24:14.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":994,"context_line":"{"},{"line_number":995,"context_line":"\tuint32_t offset \u003d bank-\u003esectors[first].offset;"},{"line_number":996,"context_line":"\tuint32_t count \u003d bank-\u003esectors[last].offset + bank-\u003esectors[last].size - offset;"},{"line_number":997,"context_line":"\tuint8_t *buffer \u003d calloc(1, count);"},{"line_number":998,"context_line":"\tuint8_t *const_buffer \u003d buffer;"},{"line_number":999,"context_line":"\tbool erase_skipped \u003d false;"},{"line_number":1000,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"41f28be2_7cc9601a","line":997,"updated":"2023-12-17 12:05:01.000000000","message":"if (!buffer)\nLOG_ERROR(\"Out of memory\");\nreturn ERROR_FAIL;\n}\n\nTo help reviewing this code, I think would be better to have this calloc() and the free() below on the same variable \"buffer\".\nWhat about modifying the code to:\nuint8_t *const_buffer \u003d calloc(1, count);\nif (!const_buffer)\nLOG_ERROR(\"Out of memory\");\nreturn ERROR_FAIL;\n}\nuint8_t *buffer \u003d const_buffer;","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"a9f23e3fb23e660e39697742e93c7ad928a5b04e","unresolved":true,"context_lines":[{"line_number":994,"context_line":"{"},{"line_number":995,"context_line":"\tuint32_t offset \u003d bank-\u003esectors[first].offset;"},{"line_number":996,"context_line":"\tuint32_t count \u003d bank-\u003esectors[last].offset + bank-\u003esectors[last].size - offset;"},{"line_number":997,"context_line":"\tuint8_t *buffer \u003d calloc(1, count);"},{"line_number":998,"context_line":"\tuint8_t *const_buffer \u003d buffer;"},{"line_number":999,"context_line":"\tbool erase_skipped \u003d false;"},{"line_number":1000,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"f94ff99d_cb1019ce","line":997,"in_reply_to":"41f28be2_7cc9601a","updated":"2023-12-18 15:24:14.000000000","message":"Cannot agree more. I am using buffer for the calloc / free and the temporary copy I called page_buffer (to make clear it\u0027s the buffer for the incremental page).\n\nThanks!","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"82f5a4bc22467df2b6ba572c077df79b65e37d21","unresolved":false,"context_lines":[{"line_number":994,"context_line":"{"},{"line_number":995,"context_line":"\tuint32_t offset \u003d bank-\u003esectors[first].offset;"},{"line_number":996,"context_line":"\tuint32_t count \u003d bank-\u003esectors[last].offset + bank-\u003esectors[last].size - offset;"},{"line_number":997,"context_line":"\tuint8_t *buffer \u003d calloc(1, count);"},{"line_number":998,"context_line":"\tuint8_t *const_buffer \u003d buffer;"},{"line_number":999,"context_line":"\tbool erase_skipped \u003d false;"},{"line_number":1000,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"e8fca2ae_6516cfba","line":997,"in_reply_to":"f94ff99d_cb1019ce","updated":"2023-12-18 16:41:20.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1738,"context_line":"\t\t}"},{"line_number":1739,"context_line":"\t}"},{"line_number":1740,"context_line":""},{"line_number":1741,"context_line":"\tLOG_ERROR(\"Unable to find a flash bank for the target %s\", target_name(target));"},{"line_number":1742,"context_line":"\treturn NULL;"},{"line_number":1743,"context_line":"}"},{"line_number":1744,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"1fb91870_8a07aab8","line":1741,"updated":"2023-12-17 12:05:01.000000000","message":"This function is only called from one of the COMMAND_HANDLER() below. It should use command_print() instead of LOG_ERROR.\nBut you need to change the prototype to\nstatic struct flash_bank *psoc6_get_any_bank(struct command_invocation *cmd, struct target *target)\nto call here\ncommand_print(cmd, \"\");\n\nOf course, the callers have to call this function as:\npsoc6_get_any_bank(CMD, get_current_target(CMD_CTX))","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"366083540140ca9651dfe94982f4066ea5cc98ae","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"\t\t}"},{"line_number":1739,"context_line":"\t}"},{"line_number":1740,"context_line":""},{"line_number":1741,"context_line":"\tLOG_ERROR(\"Unable to find a flash bank for the target %s\", target_name(target));"},{"line_number":1742,"context_line":"\treturn NULL;"},{"line_number":1743,"context_line":"}"},{"line_number":1744,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"3856dd0a_16e7ec5e","line":1741,"in_reply_to":"1fb91870_8a07aab8","updated":"2023-12-18 16:16:16.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1745,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall_prepare)"},{"line_number":1746,"context_line":"{"},{"line_number":1747,"context_line":"\tif (g_sromcall_prepare_called) {"},{"line_number":1748,"context_line":"\t\tLOG_ERROR(\"SROM Call: prepare/release not in sequence\");"},{"line_number":1749,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1750,"context_line":"\t}"},{"line_number":1751,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"6e90864e_9e5896a0","line":1748,"updated":"2023-12-17 12:05:01.000000000","message":"command_print(CMD, \"...\");","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"82f5a4bc22467df2b6ba572c077df79b65e37d21","unresolved":false,"context_lines":[{"line_number":1745,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall_prepare)"},{"line_number":1746,"context_line":"{"},{"line_number":1747,"context_line":"\tif (g_sromcall_prepare_called) {"},{"line_number":1748,"context_line":"\t\tLOG_ERROR(\"SROM Call: prepare/release not in sequence\");"},{"line_number":1749,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1750,"context_line":"\t}"},{"line_number":1751,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"d1d7c9d0_7dc9854d","line":1748,"in_reply_to":"6e90864e_9e5896a0","updated":"2023-12-18 16:41:20.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1768,"context_line":"\tif ((sromapi_params[0] \u0026 0x01) \u0026\u0026 CMD_ARGC \u003e 1) {"},{"line_number":1769,"context_line":"\t\tLOG_ERROR(\"Additional SROM API parameters can be passed via RAM buffer only, \""},{"line_number":1770,"context_line":"\t\t\t\t\t\"check bit #0 of your SROM API request.\");"},{"line_number":1771,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1772,"context_line":"\t}"},{"line_number":1773,"context_line":""},{"line_number":1774,"context_line":"\tfor (size_t i \u003d 1; i \u003c CMD_ARGC; i++)"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"47182681_28a9d057","line":1771,"updated":"2023-12-17 12:05:01.000000000","message":"this should return ERROR_COMMAND_ARGUMENT_INVALID, and the LOG_ERROR() above should be a command_print(CMD, \"...\")","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"366083540140ca9651dfe94982f4066ea5cc98ae","unresolved":false,"context_lines":[{"line_number":1768,"context_line":"\tif ((sromapi_params[0] \u0026 0x01) \u0026\u0026 CMD_ARGC \u003e 1) {"},{"line_number":1769,"context_line":"\t\tLOG_ERROR(\"Additional SROM API parameters can be passed via RAM buffer only, \""},{"line_number":1770,"context_line":"\t\t\t\t\t\"check bit #0 of your SROM API request.\");"},{"line_number":1771,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1772,"context_line":"\t}"},{"line_number":1773,"context_line":""},{"line_number":1774,"context_line":"\tfor (size_t i \u003d 1; i \u003c CMD_ARGC; i++)"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"9d0fab03_f67b9c45","line":1771,"in_reply_to":"47182681_28a9d057","updated":"2023-12-18 16:16:16.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1768,"context_line":"\tif ((sromapi_params[0] \u0026 0x01) \u0026\u0026 CMD_ARGC \u003e 1) {"},{"line_number":1769,"context_line":"\t\tLOG_ERROR(\"Additional SROM API parameters can be passed via RAM buffer only, \""},{"line_number":1770,"context_line":"\t\t\t\t\t\"check bit #0 of your SROM API request.\");"},{"line_number":1771,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1772,"context_line":"\t}"},{"line_number":1773,"context_line":""},{"line_number":1774,"context_line":"\tfor (size_t i \u003d 1; i \u003c CMD_ARGC; i++)"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"b9727893_0effc1a6","line":1771,"in_reply_to":"9d0fab03_f67b9c45","updated":"2024-01-01 22:04:57.000000000","message":"\u003e\u003e ERROR_COMMAND_SYNTAX_ERROR is for incorrect amount of parameters. OpenOCD will print the correct syntax from the .usage field reported in the command definition.","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1844,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc6_erase.inc\""},{"line_number":1845,"context_line":"\t};"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1848,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_program_algo;"},{"line_number":1849,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_program_algo);"},{"line_number":1850,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"5dd61936_b16ad04e","line":1847,"updated":"2023-12-17 12:05:01.000000000","message":"if (!info) {\nLOG_ERROR(\"Out of memory\");\nreturn ERROR_FAIL;\n}","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1844,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc6_erase.inc\""},{"line_number":1845,"context_line":"\t};"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1848,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_program_algo;"},{"line_number":1849,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_program_algo);"},{"line_number":1850,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"48f6e85a_aeadbd6b","line":1847,"in_reply_to":"0b910491_acce03a2","updated":"2024-01-01 22:04:57.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"366083540140ca9651dfe94982f4066ea5cc98ae","unresolved":true,"context_lines":[{"line_number":1844,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc6_erase.inc\""},{"line_number":1845,"context_line":"\t};"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1848,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_program_algo;"},{"line_number":1849,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_program_algo);"},{"line_number":1850,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"cf0e3a21_b22cd692","line":1847,"in_reply_to":"5dd61936_b16ad04e","updated":"2023-12-18 16:16:16.000000000","message":"Shouldn\u0027t I use command_print()?","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"e90f3073165e9d8ebf07d11e1f4baed549e12b72","unresolved":true,"context_lines":[{"line_number":1844,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc6_erase.inc\""},{"line_number":1845,"context_line":"\t};"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1848,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_program_algo;"},{"line_number":1849,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_program_algo);"},{"line_number":1850,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"0b910491_acce03a2","line":1847,"in_reply_to":"cf0e3a21_b22cd692","updated":"2023-12-31 11:43:57.000000000","message":"Not for out of memory.\nThe text in command_print() is the \u0027result\u0027 of the command, that can be printed or not, depending on how the command has been called.\nHere we are in an emergency situation of out-of-memory and we are even not sure if we will succeed to print this message or if the OS will kill OpenOCD before any output.","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1870,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc62m_erase.inc\""},{"line_number":1871,"context_line":"\t};"},{"line_number":1872,"context_line":""},{"line_number":1873,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1874,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_2m_program_algo;"},{"line_number":1875,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_2m_program_algo);"},{"line_number":1876,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_2m_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"e2803431_5d89bb56","line":1873,"updated":"2023-12-17 12:05:01.000000000","message":"also here:\nif (!info) {\nLOG_ERROR(\"Out of memory\");\nreturn ERROR_FAIL;\n}","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1870,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc62m_erase.inc\""},{"line_number":1871,"context_line":"\t};"},{"line_number":1872,"context_line":""},{"line_number":1873,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1874,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_2m_program_algo;"},{"line_number":1875,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_2m_program_algo);"},{"line_number":1876,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_2m_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"f6eeb23f_6e95efe5","line":1873,"in_reply_to":"23d69ed8_af4ad6e1","updated":"2024-01-01 22:04:57.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"366083540140ca9651dfe94982f4066ea5cc98ae","unresolved":true,"context_lines":[{"line_number":1870,"context_line":"\t\t#include \"../../../contrib/loaders/flash/psoc6/psoc62m_erase.inc\""},{"line_number":1871,"context_line":"\t};"},{"line_number":1872,"context_line":""},{"line_number":1873,"context_line":"\tstruct psoc6_bank_info *info \u003d calloc(1, sizeof(struct psoc6_bank_info));"},{"line_number":1874,"context_line":"\tinfo-\u003eprogram_algo_p \u003d p6_2m_program_algo;"},{"line_number":1875,"context_line":"\tinfo-\u003eprogram_algo_size \u003d sizeof(p6_2m_program_algo);"},{"line_number":1876,"context_line":"\tinfo-\u003eerase_algo_p \u003d p6_2m_erase_algo;"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"23d69ed8_af4ad6e1","line":1873,"in_reply_to":"e2803431_5d89bb56","updated":"2023-12-18 16:16:16.000000000","message":"Also, shouldn\u0027t I use command_print()?","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1903,"context_line":"\t} else if (strcmp(CMD_ARGV[1], \"halt\") \u003d\u003d 0) {"},{"line_number":1904,"context_line":"\t\tacquire_mode_halt \u003d true;"},{"line_number":1905,"context_line":"\t} else {"},{"line_number":1906,"context_line":"\t\tLOG_ERROR(\"Invalid mode for secure_acquire: \u0027%s\u0027. \""},{"line_number":1907,"context_line":"\t\t\t\t  \"Only \u0027run\u0027 and \u0027halt\u0027 are currently supported.\", CMD_ARGV[1]);"},{"line_number":1908,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1909,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"910627cf_a7af1913","line":1906,"updated":"2023-12-17 12:05:01.000000000","message":"use command_print(), and return ERROR_COMMAND_ARGUMENT_INVALID","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"82f5a4bc22467df2b6ba572c077df79b65e37d21","unresolved":false,"context_lines":[{"line_number":1903,"context_line":"\t} else if (strcmp(CMD_ARGV[1], \"halt\") \u003d\u003d 0) {"},{"line_number":1904,"context_line":"\t\tacquire_mode_halt \u003d true;"},{"line_number":1905,"context_line":"\t} else {"},{"line_number":1906,"context_line":"\t\tLOG_ERROR(\"Invalid mode for secure_acquire: \u0027%s\u0027. \""},{"line_number":1907,"context_line":"\t\t\t\t  \"Only \u0027run\u0027 and \u0027halt\u0027 are currently supported.\", CMD_ARGV[1]);"},{"line_number":1908,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1909,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"8b3115d6_874a5e27","line":1906,"in_reply_to":"910627cf_a7af1913","updated":"2023-12-18 16:41:20.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1913,"context_line":"\t} else if (strcmp(CMD_ARGV[2], \"no_handshake\") \u003d\u003d 0) {"},{"line_number":1914,"context_line":"\t\tdo_handshake \u003d false;"},{"line_number":1915,"context_line":"\t} else {"},{"line_number":1916,"context_line":"\t\tLOG_ERROR(\"Invalid handshake mode for secure_acquire: \u0027%s\u0027. \""},{"line_number":1917,"context_line":"\t\t\t\t  \"Only \u0027handshake\u0027 and \u0027no_handshake\u0027 are currently supported.\", CMD_ARGV[2]);"},{"line_number":1918,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1919,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"8f52bbe7_987ed72b","line":1916,"updated":"2023-12-17 12:05:01.000000000","message":"also here, use command_print(), and return ERROR_COMMAND_ARGUMENT_INVALID","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"82f5a4bc22467df2b6ba572c077df79b65e37d21","unresolved":false,"context_lines":[{"line_number":1913,"context_line":"\t} else if (strcmp(CMD_ARGV[2], \"no_handshake\") \u003d\u003d 0) {"},{"line_number":1914,"context_line":"\t\tdo_handshake \u003d false;"},{"line_number":1915,"context_line":"\t} else {"},{"line_number":1916,"context_line":"\t\tLOG_ERROR(\"Invalid handshake mode for secure_acquire: \u0027%s\u0027. \""},{"line_number":1917,"context_line":"\t\t\t\t  \"Only \u0027handshake\u0027 and \u0027no_handshake\u0027 are currently supported.\", CMD_ARGV[2]);"},{"line_number":1918,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1919,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"ede11f0f_fa591ad0","line":1916,"in_reply_to":"8f52bbe7_987ed72b","updated":"2023-12-18 16:41:20.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"\tuint32_t timeout;"},{"line_number":1922,"context_line":"\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], timeout);"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"\tLOG_INFO(\"Waiting up to %d.%d sec for the bootloader to open AP #%d...\","},{"line_number":1925,"context_line":"\t\t\t timeout / 1000u, timeout % 1000u, ap);"},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"\tpsoc6_timeout_init(\u0026to, timeout);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"d0a285a3_559d04c6","line":1924,"updated":"2023-12-17 12:05:01.000000000","message":"ap is uint32_t","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"e90f3073165e9d8ebf07d11e1f4baed549e12b72","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"\tuint32_t timeout;"},{"line_number":1922,"context_line":"\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], timeout);"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"\tLOG_INFO(\"Waiting up to %d.%d sec for the bootloader to open AP #%d...\","},{"line_number":1925,"context_line":"\t\t\t timeout / 1000u, timeout % 1000u, ap);"},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"\tpsoc6_timeout_init(\u0026to, timeout);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"cb39e094_3a9875b4","line":1924,"in_reply_to":"46c18d6c_4c952041","updated":"2023-12-31 11:43:57.000000000","message":"OpenOCD commands (declared as COMMAND_HANDLER) are TCL commands that produce an error condition and an optional output string.\nThe TCL script can ignore the output string or re-use it for other purpose.\nIf you want to display it, you should write:\necho [command]\nThere are situations where we want to directly inform the user with LOG_ERROR() or similar, independently from the command output.\nThere are other cases, like asynchronous code inside the JTAG/SWD state machine, where the code is not related to a TCL command, so we cannot use command_print() because there is no command output.\nLOG_DEBUG() instead can be used everywhere, as it only impacts the log when the proper debug level is enabled.","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1921,"context_line":"\tuint32_t timeout;"},{"line_number":1922,"context_line":"\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], timeout);"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"\tLOG_INFO(\"Waiting up to %d.%d sec for the bootloader to open AP #%d...\","},{"line_number":1925,"context_line":"\t\t\t timeout / 1000u, timeout % 1000u, ap);"},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"\tpsoc6_timeout_init(\u0026to, timeout);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"c92727dc_0d0abae2","line":1924,"in_reply_to":"cb39e094_3a9875b4","updated":"2024-01-01 22:04:57.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"366083540140ca9651dfe94982f4066ea5cc98ae","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"\tuint32_t timeout;"},{"line_number":1922,"context_line":"\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], timeout);"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"\tLOG_INFO(\"Waiting up to %d.%d sec for the bootloader to open AP #%d...\","},{"line_number":1925,"context_line":"\t\t\t timeout / 1000u, timeout % 1000u, ap);"},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"\tpsoc6_timeout_init(\u0026to, timeout);"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"46c18d6c_4c952041","line":1924,"in_reply_to":"d0a285a3_559d04c6","updated":"2023-12-18 16:16:16.000000000","message":"Changed ap to unsigned int (ap is just a value which is print out).\n\nCan I conclude that LOG_ERROR is not allowed from COMMAND_HANDLER() while LOG_INFO is? Or do I need to change the LOG_INFO as well as it just for printing out?","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"d96ef11ed68d7cf94005707714fb8eb9e16d7abe","unresolved":true,"context_lines":[{"line_number":1951,"context_line":"\t};"},{"line_number":1952,"context_line":""},{"line_number":1953,"context_line":"\tif (psoc6_timeout_expired(\u0026to)) {"},{"line_number":1954,"context_line":"\t\tLOG_ERROR(\"AP #%d is still not opened: %s, giving up\", ap, error_msg);"},{"line_number":1955,"context_line":"\t\treturn ERROR_TARGET_FAILURE;"},{"line_number":1956,"context_line":"\t}"},{"line_number":1957,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"99e0ad44_ee520fab","line":1954,"updated":"2023-12-17 12:05:01.000000000","message":"use command_print()","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"82f5a4bc22467df2b6ba572c077df79b65e37d21","unresolved":false,"context_lines":[{"line_number":1951,"context_line":"\t};"},{"line_number":1952,"context_line":""},{"line_number":1953,"context_line":"\tif (psoc6_timeout_expired(\u0026to)) {"},{"line_number":1954,"context_line":"\t\tLOG_ERROR(\"AP #%d is still not opened: %s, giving up\", ap, error_msg);"},{"line_number":1955,"context_line":"\t\treturn ERROR_TARGET_FAILURE;"},{"line_number":1956,"context_line":"\t}"},{"line_number":1957,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"8c6b4c86_684aa6f7","line":1954,"in_reply_to":"99e0ad44_ee520fab","updated":"2023-12-18 16:41:20.000000000","message":"Done","commit_id":"2d196c8956149854270199472524458855d200b7"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"4e0bbc81d4ab090bbbc35a2c2406c75ec5da55fc","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"{"},{"line_number":1497,"context_line":"\tconst struct psoc6_bank_info *info \u003d psoc6_get_bank_info_by_target(target);"},{"line_number":1498,"context_line":"\tif (!info) {"},{"line_number":1499,"context_line":"\t\tLOG_ERROR(\"Unable to locate psoc6_bank_info structure for target %s\","},{"line_number":1500,"context_line":"\t\t\ttarget-\u003ecmd_name);"},{"line_number":1501,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1502,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"136a80da_f7933985","line":1499,"updated":"2023-12-18 17:18:41.000000000","message":"This is called from command_handler(). Again command_print()?\n\nWould it be okay to put the command_invocation cmd structure in a global to use it in the functions without having to pass it? It might be a bit \u0027ugly\u0027, I am not sure about the \u0027rules\u0027 here.","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"e90f3073165e9d8ebf07d11e1f4baed549e12b72","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"{"},{"line_number":1497,"context_line":"\tconst struct psoc6_bank_info *info \u003d psoc6_get_bank_info_by_target(target);"},{"line_number":1498,"context_line":"\tif (!info) {"},{"line_number":1499,"context_line":"\t\tLOG_ERROR(\"Unable to locate psoc6_bank_info structure for target %s\","},{"line_number":1500,"context_line":"\t\t\ttarget-\u003ecmd_name);"},{"line_number":1501,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1502,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"ee27fba0_6176da7d","line":1499,"in_reply_to":"136a80da_f7933985","updated":"2023-12-31 11:43:57.000000000","message":"Yes, thanks. Passing cmd is ok.","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1496,"context_line":"{"},{"line_number":1497,"context_line":"\tconst struct psoc6_bank_info *info \u003d psoc6_get_bank_info_by_target(target);"},{"line_number":1498,"context_line":"\tif (!info) {"},{"line_number":1499,"context_line":"\t\tLOG_ERROR(\"Unable to locate psoc6_bank_info structure for target %s\","},{"line_number":1500,"context_line":"\t\t\ttarget-\u003ecmd_name);"},{"line_number":1501,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1502,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"8ac8cf21_e1965361","line":1499,"in_reply_to":"ee27fba0_6176da7d","updated":"2024-01-01 22:04:57.000000000","message":"Done","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"4e0bbc81d4ab090bbbc35a2c2406c75ec5da55fc","unresolved":true,"context_lines":[{"line_number":1768,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall)"},{"line_number":1769,"context_line":"{"},{"line_number":1770,"context_line":"\tif (!CMD_ARGC)"},{"line_number":1771,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1772,"context_line":""},{"line_number":1773,"context_line":"\tuint32_t sromapi_params[CMD_ARGC];"},{"line_number":1774,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"08146bf4_eff4e073","line":1771,"updated":"2023-12-18 17:18:41.000000000","message":"Shouldn\u0027t this return an ERROR_COMMAND_ARGUMENT_INVALID?","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"e90f3073165e9d8ebf07d11e1f4baed549e12b72","unresolved":true,"context_lines":[{"line_number":1768,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall)"},{"line_number":1769,"context_line":"{"},{"line_number":1770,"context_line":"\tif (!CMD_ARGC)"},{"line_number":1771,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1772,"context_line":""},{"line_number":1773,"context_line":"\tuint32_t sromapi_params[CMD_ARGC];"},{"line_number":1774,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"b967479e_bd81a1cf","line":1771,"in_reply_to":"08146bf4_eff4e073","updated":"2023-12-31 11:43:57.000000000","message":"No. ERROR_COMMAND_SYNTAX_ERROR is for incorrect amount of parameters. OpenOCD will print the correct syntax from the .usage field reported in the command definition.\nERROR_COMMAND_ARGUMENT_INVALID is used for an incorrect or unexpected value in one of the parameters","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1768,"context_line":"COMMAND_HANDLER(psoc6_handle_sromcall)"},{"line_number":1769,"context_line":"{"},{"line_number":1770,"context_line":"\tif (!CMD_ARGC)"},{"line_number":1771,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1772,"context_line":""},{"line_number":1773,"context_line":"\tuint32_t sromapi_params[CMD_ARGC];"},{"line_number":1774,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"24a0bdfb_06e7d5b4","line":1771,"in_reply_to":"b967479e_bd81a1cf","updated":"2024-01-01 22:04:57.000000000","message":"Done","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"4e0bbc81d4ab090bbbc35a2c2406c75ec5da55fc","unresolved":true,"context_lines":[{"line_number":1909,"context_line":"\tbool do_handshake;"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":"\tif (CMD_ARGC !\u003d 4)"},{"line_number":1912,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1913,"context_line":""},{"line_number":1914,"context_line":"\tuint32_t magic_addr;"},{"line_number":1915,"context_line":"\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], magic_addr);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"b0d01e23_a90c9f62","line":1912,"updated":"2023-12-18 17:18:41.000000000","message":"Also, ERROR_COMMAND_ARGUMENT_INVALID?","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1002214,"name":"RolfNoot","display_name":"RolfNoot","email":"r.nooteboom@gmail.com","username":"RolfNoot"},"change_message_id":"72a99d3e78dd8d8244dd4c1b8f5399c281252e60","unresolved":false,"context_lines":[{"line_number":1909,"context_line":"\tbool do_handshake;"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":"\tif (CMD_ARGC !\u003d 4)"},{"line_number":1912,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1913,"context_line":""},{"line_number":1914,"context_line":"\tuint32_t magic_addr;"},{"line_number":1915,"context_line":"\tCOMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], magic_addr);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"9687b6e5_942be706","line":1912,"in_reply_to":"b0d01e23_a90c9f62","updated":"2024-01-01 22:04:57.000000000","message":"Done","commit_id":"9c8ae7f09f9888362f0617894844542025035a80"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":304,"context_line":" * @param this_target current target, name should end with \u0027sysap\u0027"},{"line_number":305,"context_line":" * @return pointer to CM0 core (of NULL)"},{"line_number":306,"context_line":" *************************************************************************************************/"},{"line_number":307,"context_line":"static struct target *psoc6_find_core_by_suffix(struct target *target, const char *suffix)"},{"line_number":308,"context_line":"{"},{"line_number":309,"context_line":"\tconst size_t this_len \u003d strlen(target-\u003ecmd_name);"},{"line_number":310,"context_line":"\tsize_t last_dot_pos;"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"f5712e74_9e56f32a","line":307,"range":{"start_line":307,"start_character":22,"end_line":307,"end_character":47},"updated":"2024-02-03 15:59:19.000000000","message":"Probably useless at all, but also poor, very poor programming quality","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":306,"context_line":" *************************************************************************************************/"},{"line_number":307,"context_line":"static struct target *psoc6_find_core_by_suffix(struct target *target, const char *suffix)"},{"line_number":308,"context_line":"{"},{"line_number":309,"context_line":"\tconst size_t this_len \u003d strlen(target-\u003ecmd_name);"},{"line_number":310,"context_line":"\tsize_t last_dot_pos;"},{"line_number":311,"context_line":"\tfor (last_dot_pos \u003d this_len; last_dot_pos; last_dot_pos--) {"},{"line_number":312,"context_line":"\t\tif (target-\u003ecmd_name[last_dot_pos] \u003d\u003d \u0027.\u0027)"},{"line_number":313,"context_line":"\t\t\tbreak;"},{"line_number":314,"context_line":"\t}"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"\tassert(last_dot_pos !\u003d 0);"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":17,"id":"2c026d46_a3a197d9","line":314,"range":{"start_line":309,"start_character":1,"end_line":314,"end_character":2},"updated":"2024-02-03 15:59:19.000000000","message":"~ strrchr()","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":316,"context_line":"\tassert(last_dot_pos !\u003d 0);"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"\tlast_dot_pos++;"},{"line_number":319,"context_line":"\tchar *new_name \u003d calloc(1, last_dot_pos + strlen(suffix) + 1);"},{"line_number":320,"context_line":"\tif (!new_name) {"},{"line_number":321,"context_line":"\t\tLOG_ERROR(\"Out of memory\");"},{"line_number":322,"context_line":"\t\treturn NULL;"},{"line_number":323,"context_line":"\t}"},{"line_number":324,"context_line":"\tmemcpy(new_name, target-\u003ecmd_name, last_dot_pos);"},{"line_number":325,"context_line":"\tnew_name \u003d strcat(new_name, suffix);"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"\tstruct target *result \u003d NULL;"},{"line_number":328,"context_line":"\tfor (result \u003d all_targets; result; result \u003d result-\u003enext) {"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"4f69c5a2_5fdc56f4","line":325,"range":{"start_line":319,"start_character":1,"end_line":325,"end_character":37},"updated":"2024-02-03 15:59:19.000000000","message":"~alloc_printf()","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":324,"context_line":"\tmemcpy(new_name, target-\u003ecmd_name, last_dot_pos);"},{"line_number":325,"context_line":"\tnew_name \u003d strcat(new_name, suffix);"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"\tstruct target *result \u003d NULL;"},{"line_number":328,"context_line":"\tfor (result \u003d all_targets; result; result \u003d result-\u003enext) {"},{"line_number":329,"context_line":"\t\tif (target_name(result) \u0026\u0026 strcmp(new_name, target_name(result)) \u003d\u003d 0)"},{"line_number":330,"context_line":"\t\t\tbreak;"},{"line_number":331,"context_line":"\t}"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"\tfree(new_name);"},{"line_number":334,"context_line":"\treturn result;"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"4238c7ab_ce42d304","line":331,"range":{"start_line":327,"start_character":1,"end_line":331,"end_character":2},"updated":"2024-02-03 15:59:19.000000000","message":"get_target()","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":347,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"\t/* Special core_id for fake SysAP */"},{"line_number":350,"context_line":"\tif (target-\u003ecoreid \u003d\u003d 0xFF) {"},{"line_number":351,"context_line":"\t\tstruct target *cm0_target \u003d psoc6_find_core_by_suffix(target, \"cm0\");"},{"line_number":352,"context_line":"\t\tif (!cm0_target)"},{"line_number":353,"context_line":"\t\t\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"14155258_59a3e9e6","line":350,"range":{"start_line":350,"start_character":1,"end_line":350,"end_character":30},"updated":"2024-02-03 15:59:19.000000000","message":"Huh? What\u0027s that? A Cypress hack, we do not have such target in psoc6.cfg","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6641a14e6ffd2c7ca46760ada113ea2552c1e261","unresolved":true,"context_lines":[{"line_number":347,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"\t/* Special core_id for fake SysAP */"},{"line_number":350,"context_line":"\tif (target-\u003ecoreid \u003d\u003d 0xFF) {"},{"line_number":351,"context_line":"\t\tstruct target *cm0_target \u003d psoc6_find_core_by_suffix(target, \"cm0\");"},{"line_number":352,"context_line":"\t\tif (!cm0_target)"},{"line_number":353,"context_line":"\t\t\treturn ERROR_OK;"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"c3b340ba_4012b9ab","line":350,"updated":"2024-02-03 14:23:43.000000000","message":"What the coreid value 0xff comes from?\nPlease check the discussion about coreid in patch\nhttps://review.openocd.org/c/openocd/+/7957\nThe coreid value should not be used for this purpose.\n\nI have send out a tiny patch\nhttps://review.openocd.org/c/openocd/+/8128\nto quickly fix the use of coreid in this file.\nPlease review how coreid is used in this patch.","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6641a14e6ffd2c7ca46760ada113ea2552c1e261","unresolved":true,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"\t/* Special core_id for fake SysAP */"},{"line_number":350,"context_line":"\tif (target-\u003ecoreid \u003d\u003d 0xFF) {"},{"line_number":351,"context_line":"\t\tstruct target *cm0_target \u003d psoc6_find_core_by_suffix(target, \"cm0\");"},{"line_number":352,"context_line":"\t\tif (!cm0_target)"},{"line_number":353,"context_line":"\t\t\treturn ERROR_OK;"},{"line_number":354,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":17,"id":"67cf5aec_add50ce5","line":351,"updated":"2024-02-03 14:23:43.000000000","message":"Also this is not the preferred way to detect the Cortex-M0. Please check\nhttps://review.openocd.org/c/openocd/+/8128","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"\t/* Clear pending interrupts. This resolves the issue that IRQ0/IRQ1 can not be"},{"line_number":391,"context_line":"\t * executed when core is HardFault os similar higher-priority handler */"},{"line_number":392,"context_line":"\tconst struct armv7m_common *cm \u003d target_to_armv7m(target);"},{"line_number":393,"context_line":"\thr \u003d mem_ap_write_atomic_u32(cm-\u003edebug_ap, NVIC_AIRCR, AIRCR_VECTKEY | AIRCR_VECTCLRACTIVE);"},{"line_number":394,"context_line":"\tif (hr !\u003d ERROR_OK)"},{"line_number":395,"context_line":"\t\treturn hr;"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":17,"id":"f769a212_c2aaa5a9","line":393,"range":{"start_line":392,"start_character":1,"end_line":393,"end_character":29},"updated":"2024-02-03 15:59:19.000000000","message":"could be simpler target_write_u32()","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":787,"context_line":" *************************************************************************************************/"},{"line_number":788,"context_line":"static const char *protection_to_str(uint8_t protection)"},{"line_number":789,"context_line":"{"},{"line_number":790,"context_line":"\tstatic const char *const prot_states[] \u003d {\"UNKNOWN\", \"VIRGIN\", \"NORMAL\", \"SECURE\", \"DEAD\"};"},{"line_number":791,"context_line":"\tif (protection \u003e 4)"},{"line_number":792,"context_line":"\t\tprotection \u003d 0;"},{"line_number":793,"context_line":"\treturn prot_states[protection];"},{"line_number":794,"context_line":"}"},{"line_number":795,"context_line":""},{"line_number":796,"context_line":"/** ***********************************************************************************************"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"03aaf447_515d46d3","line":793,"range":{"start_line":790,"start_character":1,"end_line":793,"end_character":32},"updated":"2024-02-03 15:59:19.000000000","message":"The original code is better: the new one depends on keepingg the CHIP_PROT_ enum and text array in sync.","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":816,"context_line":"\t\treturn hr;"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"\tcommand_print_sameline(cmd, \"Silicon ID: 0x%08\" PRIX32 \"\\nProtection: %s\","},{"line_number":819,"context_line":"\t\tsilicon_id, protection_to_str(protection));"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"\treturn ERROR_OK;"},{"line_number":822,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"4e0c8211_79a82e49","line":819,"updated":"2024-02-03 15:59:19.000000000","message":"Why not print flash sizes?","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"c3b87c29f479375b47482407e28771811cf0f77a","unresolved":true,"context_lines":[{"line_number":939,"context_line":"static int psoc6_auto_probe(struct flash_bank *bank)"},{"line_number":940,"context_line":"{"},{"line_number":941,"context_line":"\tstruct psoc6_bank_info *info \u003d bank-\u003edriver_priv;"},{"line_number":942,"context_line":"\treturn info-\u003eis_probed ? ERROR_OK : psoc6_probe(bank);"},{"line_number":943,"context_line":"}"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"/** ***********************************************************************************************"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"03fb99fe_a90e0f58","line":942,"range":{"start_line":942,"start_character":37,"end_line":942,"end_character":54},"updated":"2024-02-03 15:59:19.000000000","message":"The original code is much more readable! The new crap code hides probe() call into a ternary term.","commit_id":"f90522bd8f1518fc6643830eb1ad347ac65e3dcc"}]}
