)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"d422d86bc62778751e69df0e5a81e2f305b2690a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d7bf7b83_7ea2c5a7","updated":"2022-05-22 16:31:20.000000000","message":"This is another SoC with dual Xtensa LX6 cores. I would appreciate, if you can have a look. ","commit_id":"97eaed1373b72e1ecedc43ca70e8827435d56951"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c4e9b64b_62461204","updated":"2022-05-23 20:52:09.000000000","message":"I just run a very top-level review.\nkey issue is that esp32_cpu_reset_handler.S should go in contrib with its makefile for cross-compilation.\nMaybe in a dedicated folder contrib/loaders/reset/xtensa/ ?\n\nI also want to understand the need for independent targets esp32s2, esp32s3 and esp32.\nIf you have a simple explanation why we need different targets (e.g. different registers), please guide me.","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a2ed21b4_5e71129e","in_reply_to":"49868e0d_8d6ac356","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9854f52f43c95cdf86b50ee70b68630c0dee3877","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"49868e0d_8d6ac356","in_reply_to":"c4e9b64b_62461204","updated":"2022-05-23 21:13:03.000000000","message":"All these chips have Xtensa core but they are different, in terms of;\nRegister sets, core numbers, soft_reset implementation, watchdog types, flash access functions and rtos stack structure.\n\nI am ok with a dedicated folder. Will do it.","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"87b7bc2cab45d7fe2db4b70c12b8acc6ede96d1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2442732d_3c086e71","updated":"2022-06-03 13:44:39.000000000","message":"Thanks for the quick fixes.  Clarifying my earlier comment...","commit_id":"f4c99cfda34b4f4d47577d086d2bb1f771c8421c"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4bfab0c2257ecdb1930cef02d477cbf409cb09b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1a568781_b3d3224e","updated":"2022-06-11 10:46:09.000000000","message":"Comment below, but not blocking the patch.","commit_id":"a9818c1ab98aad06fdd8f7c116cd5fd26f279c57"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"e51238ec2d8b186822f9c22c324b97a7da238e07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a88a506c_fd03c299","updated":"2022-06-06 19:17:48.000000000","message":"Looks good; thanks!","commit_id":"a9818c1ab98aad06fdd8f7c116cd5fd26f279c57"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"6b1a9acdbe58f9517e0994e23adaaf60dd483997","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d8dd584b_7ff97c1f","updated":"2022-06-13 13:10:06.000000000","message":"Thanks, Erhan","commit_id":"473d5e00957997de6a010c459cbd9b1661729fa7"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8123e98065d55ebc8633e41bd394a19db88ac16e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9015df90_c5dcbe27","updated":"2024-02-03 17:50:00.000000000","message":"Erhan,\nI have a question about this patch","commit_id":"77287b8d47b4be8ee5612037fe1eba6f0e08147f"}],"contrib/loaders/reset/espressif/common.mk":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":42,"context_line":"$(APP_CODE): $(APP_OBJ)"},{"line_number":43,"context_line":"\t@echo \"  CC   $^ -\u003e $@\""},{"line_number":44,"context_line":"\t$(Q) $(CROSS)objcopy -O binary -j.text $^ $(BUILD_DIR)/$(APP)_code.bin"},{"line_number":45,"context_line":"\t$(Q) cat $(BUILD_DIR)/$(APP)_code.bin | xxd -i \u003e $@"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"clean:"},{"line_number":48,"context_line":"\t$(Q) rm -rf $(BUILD_DIR)"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"65d53ea7_3e2e6ccb","line":45,"updated":"2022-06-02 23:58:58.000000000","message":"xxd is not a standard tool (on arch linux is installed with gvim package, on debian/ubuntu is a separate xxd package)\nI prefer the solution in contrib/loaders/flash/stm32/Makefile to use the openocd script.\nAnd no need to use the pipe cat|xxd to avoid xxd to add the array name.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":42,"context_line":"$(APP_CODE): $(APP_OBJ)"},{"line_number":43,"context_line":"\t@echo \"  CC   $^ -\u003e $@\""},{"line_number":44,"context_line":"\t$(Q) $(CROSS)objcopy -O binary -j.text $^ $(BUILD_DIR)/$(APP)_code.bin"},{"line_number":45,"context_line":"\t$(Q) cat $(BUILD_DIR)/$(APP)_code.bin | xxd -i \u003e $@"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"clean:"},{"line_number":48,"context_line":"\t$(Q) rm -rf $(BUILD_DIR)"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"b22b839f_2d6a2783","line":45,"in_reply_to":"65d53ea7_3e2e6ccb","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"}],"src/target/espressif/esp32.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":374,"context_line":"\t}"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"/*"},{"line_number":377,"context_line":"This this the stub code compiled from esp32_cpu_reset_handler.S."},{"line_number":378,"context_line":"To compile it, run:"},{"line_number":379,"context_line":"   xtensa-esp32-elf-gcc -c -mtext-section-literals -o stub.o esp32_cpu_reset_handler.S"},{"line_number":380,"context_line":"   xtensa-esp32-elf-objcopy -j .text -O binary stub.o stub.bin"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"683499a5_a1282aae","line":377,"updated":"2022-05-23 20:52:09.000000000","message":"s/This this/This/","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":374,"context_line":"\t}"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"/*"},{"line_number":377,"context_line":"This this the stub code compiled from esp32_cpu_reset_handler.S."},{"line_number":378,"context_line":"To compile it, run:"},{"line_number":379,"context_line":"   xtensa-esp32-elf-gcc -c -mtext-section-literals -o stub.o esp32_cpu_reset_handler.S"},{"line_number":380,"context_line":"   xtensa-esp32-elf-objcopy -j .text -O binary stub.o stub.bin"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"1cd09df5_130f4b87","line":377,"in_reply_to":"683499a5_a1282aae","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":381,"context_line":"These steps are not included into OpenOCD build process so that a"},{"line_number":382,"context_line":"dependency on xtensa-esp32-elf toolchain is not introduced."},{"line_number":383,"context_line":"*/"},{"line_number":384,"context_line":"\tconst uint8_t esp32_reset_stub_code[] \u003d {"},{"line_number":385,"context_line":"\t\t0x06, 0x1e, 0x00, 0x00, 0x06, 0x14, 0x00, 0x00, 0x34, 0x80, 0xf4, 0x3f,"},{"line_number":386,"context_line":"\t\t0xb0, 0x80, 0xf4, 0x3f, 0xb4, 0x80, 0xf4, 0x3f, 0x70, 0x80, 0xf4, 0x3f,"},{"line_number":387,"context_line":"\t\t0x10, 0x22, 0x00, 0x00, 0x00, 0x20, 0x49, 0x9c, 0x00, 0x80, 0xf4, 0x3f,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"8f305d56_98beedfc","line":384,"updated":"2022-05-23 20:52:09.000000000","message":"Should be moved in contrib folder, no binary dump here, but just an include.","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":381,"context_line":"These steps are not included into OpenOCD build process so that a"},{"line_number":382,"context_line":"dependency on xtensa-esp32-elf toolchain is not introduced."},{"line_number":383,"context_line":"*/"},{"line_number":384,"context_line":"\tconst uint8_t esp32_reset_stub_code[] \u003d {"},{"line_number":385,"context_line":"\t\t0x06, 0x1e, 0x00, 0x00, 0x06, 0x14, 0x00, 0x00, 0x34, 0x80, 0xf4, 0x3f,"},{"line_number":386,"context_line":"\t\t0xb0, 0x80, 0xf4, 0x3f, 0xb4, 0x80, 0xf4, 0x3f, 0x70, 0x80, 0xf4, 0x3f,"},{"line_number":387,"context_line":"\t\t0x10, 0x22, 0x00, 0x00, 0x00, 0x20, 0x49, 0x9c, 0x00, 0x80, 0xf4, 0x3f,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"cf660632_a3aa078f","line":384,"in_reply_to":"8f305d56_98beedfc","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":670,"context_line":"extern const struct command_registration semihosting_common_handlers[];"},{"line_number":671,"context_line":"static const struct command_registration esp32_command_handlers[] \u003d {"},{"line_number":672,"context_line":"\t{"},{"line_number":673,"context_line":"\t\t.usage \u003d \"\","},{"line_number":674,"context_line":"\t\t.chain \u003d esp_xtensa_smp_command_handlers,"},{"line_number":675,"context_line":"\t},"},{"line_number":676,"context_line":"\t{"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"d981350d_62124034","line":673,"updated":"2022-05-23 20:52:09.000000000","message":"I think the line\n.usage \u003d \"\",\ncan be removed in this case, but never tested it","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":670,"context_line":"extern const struct command_registration semihosting_common_handlers[];"},{"line_number":671,"context_line":"static const struct command_registration esp32_command_handlers[] \u003d {"},{"line_number":672,"context_line":"\t{"},{"line_number":673,"context_line":"\t\t.usage \u003d \"\","},{"line_number":674,"context_line":"\t\t.chain \u003d esp_xtensa_smp_command_handlers,"},{"line_number":675,"context_line":"\t},"},{"line_number":676,"context_line":"\t{"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"d7ceb87b_8c309620","line":673,"in_reply_to":"d981350d_62124034","updated":"2022-05-24 16:50:19.000000000","message":"Yes. Removed this. \nAs I understand, one of the chain with the same name must have the usage field.","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":331,"context_line":"\t\t\t\t\tres);"},{"line_number":332,"context_line":"\t\t\t\treturn res;"},{"line_number":333,"context_line":"\t\t\t}"},{"line_number":334,"context_line":"\t\t\talive_sleep(10);"},{"line_number":335,"context_line":"\t\t\txtensa_poll(target);"},{"line_number":336,"context_line":"\t\t\tbool reset_halt_save \u003d target-\u003ereset_halt;"},{"line_number":337,"context_line":"\t\t\ttarget-\u003ereset_halt \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"9c65bd83_dbb71b7f","line":334,"updated":"2022-06-02 14:04:39.000000000","message":"why is a delay required here?  is this something that would change board-to-board or is specific to the esp32 chipset?  can it (and others below) be handled more flexibly by a timeout loop?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0a4eae01c19ef2656054c91d991fa8cbee788e5b","unresolved":false,"context_lines":[{"line_number":331,"context_line":"\t\t\t\t\tres);"},{"line_number":332,"context_line":"\t\t\t\treturn res;"},{"line_number":333,"context_line":"\t\t\t}"},{"line_number":334,"context_line":"\t\t\talive_sleep(10);"},{"line_number":335,"context_line":"\t\t\txtensa_poll(target);"},{"line_number":336,"context_line":"\t\t\tbool reset_halt_save \u003d target-\u003ereset_halt;"},{"line_number":337,"context_line":"\t\t\ttarget-\u003ereset_halt \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"547e01aa_fd0d4aec","line":334,"in_reply_to":"1d29d962_5bfe57b9","updated":"2022-06-04 15:55:02.000000000","message":"It looks fine without delay but still I would like to keep this. There might be seen some corner cases at the time this function was written.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":true,"context_lines":[{"line_number":331,"context_line":"\t\t\t\t\tres);"},{"line_number":332,"context_line":"\t\t\t\treturn res;"},{"line_number":333,"context_line":"\t\t\t}"},{"line_number":334,"context_line":"\t\t\talive_sleep(10);"},{"line_number":335,"context_line":"\t\t\txtensa_poll(target);"},{"line_number":336,"context_line":"\t\t\tbool reset_halt_save \u003d target-\u003ereset_halt;"},{"line_number":337,"context_line":"\t\t\ttarget-\u003ereset_halt \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"1d29d962_5bfe57b9","line":334,"in_reply_to":"9c65bd83_dbb71b7f","updated":"2022-06-03 11:16:13.000000000","message":"We added same delay (10ms) for all chips, just to be sure everything is settled down it that period. Maybe we can remove. I\u0027ll update this according to the test results.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":368,"context_line":"\t\t\t\t\tLOG_TARGET_ERROR(head-\u003etarget, \"Failed to unstall CPUs before SW reset!\");"},{"line_number":369,"context_line":"\t\t\t\t\treturn res;"},{"line_number":370,"context_line":"\t\t\t\t}"},{"line_number":371,"context_line":"\t\t\t\tbreak;\t/* both cores are unstalled now, so exit the loop */"},{"line_number":372,"context_line":"\t\t\t}"},{"line_number":373,"context_line":"\t\t}"},{"line_number":374,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ebb9ff43_065b1aab","line":371,"updated":"2022-06-02 14:04:39.000000000","message":"is comment correct?  it seems like this will cause the loop to only unstall the first core.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0a4eae01c19ef2656054c91d991fa8cbee788e5b","unresolved":false,"context_lines":[{"line_number":368,"context_line":"\t\t\t\t\tLOG_TARGET_ERROR(head-\u003etarget, \"Failed to unstall CPUs before SW reset!\");"},{"line_number":369,"context_line":"\t\t\t\t\treturn res;"},{"line_number":370,"context_line":"\t\t\t\t}"},{"line_number":371,"context_line":"\t\t\t\tbreak;\t/* both cores are unstalled now, so exit the loop */"},{"line_number":372,"context_line":"\t\t\t}"},{"line_number":373,"context_line":"\t\t}"},{"line_number":374,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"cee799af_e9f4a2a9","line":371,"in_reply_to":"b607b19b_f3ab26a8","updated":"2022-06-04 15:55:02.000000000","message":"OK. This is not a bug and comment is correct. Writing zero to the same register unstalls both cores.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":true,"context_lines":[{"line_number":368,"context_line":"\t\t\t\t\tLOG_TARGET_ERROR(head-\u003etarget, \"Failed to unstall CPUs before SW reset!\");"},{"line_number":369,"context_line":"\t\t\t\t\treturn res;"},{"line_number":370,"context_line":"\t\t\t\t}"},{"line_number":371,"context_line":"\t\t\t\tbreak;\t/* both cores are unstalled now, so exit the loop */"},{"line_number":372,"context_line":"\t\t\t}"},{"line_number":373,"context_line":"\t\t}"},{"line_number":374,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b607b19b_f3ab26a8","line":371,"in_reply_to":"ebb9ff43_065b1aab","updated":"2022-06-03 11:16:13.000000000","message":"Seems it is a bug. I will update this part after the tests.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"\tconst uint8_t esp32_reset_stub_code[] \u003d {"},{"line_number":377,"context_line":"\t#include \"contrib/loaders/reset/espressif/esp32/cpu_reset_handler_code.inc\""},{"line_number":378,"context_line":"\t};"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":381,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32_reset_stub_code)];"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3178e8dc_902391ff","line":378,"updated":"2022-06-02 23:58:58.000000000","message":"move the array outside the function, just before it, so the \u0027#\u0027 of \u0027#include\u0027 can move to beginning of the line.\n\nAll the other files require a path:\n#include \"../../../contrib/loaders/reset/espressif/esp32/cpu_reset_handler_code.inc\"\nActually what you propose builds correctly; I\u0027m thinking if there is any strange build out-of-tree that requires ../../.......!\nPlease uniform this with the rest of the code, eventually everything should be reviewed together.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":true,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"\tconst uint8_t esp32_reset_stub_code[] \u003d {"},{"line_number":377,"context_line":"\t#include \"contrib/loaders/reset/espressif/esp32/cpu_reset_handler_code.inc\""},{"line_number":378,"context_line":"\t};"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":381,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32_reset_stub_code)];"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a23b2f9e_dff3ed35","line":378,"in_reply_to":"3178e8dc_902391ff","updated":"2022-06-03 11:16:13.000000000","message":"Antonio, sorry I didn\u0027t get what you mean in the 2nd paragraph. We use this reset code only here, so we will not include from elsewhere. Can you clarify what should be the uniformed?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"03e7b974f615cdba6b38dd2e8798162ae8b4b47a","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"\tconst uint8_t esp32_reset_stub_code[] \u003d {"},{"line_number":377,"context_line":"\t#include \"contrib/loaders/reset/espressif/esp32/cpu_reset_handler_code.inc\""},{"line_number":378,"context_line":"\t};"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":381,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32_reset_stub_code)];"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"4891ceec_b00e0daa","line":378,"in_reply_to":"58762545_f85f8c01","updated":"2022-06-03 16:22:25.000000000","message":"Thanks for clarifying. Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4d1c211996db3a5b6d880b7e1607a1378d941b8d","unresolved":true,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"\tconst uint8_t esp32_reset_stub_code[] \u003d {"},{"line_number":377,"context_line":"\t#include \"contrib/loaders/reset/espressif/esp32/cpu_reset_handler_code.inc\""},{"line_number":378,"context_line":"\t};"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":381,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32_reset_stub_code)];"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"58762545_f85f8c01","line":378,"in_reply_to":"a23b2f9e_dff3ed35","updated":"2022-06-03 15:45:26.000000000","message":"Sorry for not being clear enough.\nAllover OpenOCD the includes from folder \u0027contrib\u0027 are written as:\n#include \"../../../contrib/some/path/file.inc\"\nyour code uses:\n#include \"contrib/some/path/file.inc\"\nYour code builds correctly, but I\u0027m scared it could break some exotic build environment.\nI prefer you also add \"../../../\" in front of the path.\nThen we could drop all the \"../../../\" and run some further test, but out of the scope of this patch series.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":380,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":381,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32_reset_stub_code)];"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"\tconst int RTC_SLOW_MEM_BASE \u003d 0x50000000;"},{"line_number":384,"context_line":"\t/* Save contents of RTC_SLOW_MEM which we are about to overwrite */"},{"line_number":385,"context_line":"\tres \u003d target_read_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":386,"context_line":"\tif (res !\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"4d1d82a0_da96c93d","line":383,"updated":"2022-06-02 14:04:39.000000000","message":"should this be a define in a header file?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":380,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":381,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32_reset_stub_code)];"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"\tconst int RTC_SLOW_MEM_BASE \u003d 0x50000000;"},{"line_number":384,"context_line":"\t/* Save contents of RTC_SLOW_MEM which we are about to overwrite */"},{"line_number":385,"context_line":"\tres \u003d target_read_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":386,"context_line":"\tif (res !\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"23c7c399_c3d83715","line":383,"in_reply_to":"4d1d82a0_da96c93d","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":400,"context_line":"\txtensa-\u003esuppress_dsr_errors \u003d true;"},{"line_number":401,"context_line":"\tres \u003d xtensa_resume(target, 0, RTC_SLOW_MEM_BASE + 4, 0, 0);"},{"line_number":402,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":403,"context_line":"\t\tLOG_ERROR(\"Failed to run stub (%d)!\", res);"},{"line_number":404,"context_line":"\t\treturn res;"},{"line_number":405,"context_line":"\t}"},{"line_number":406,"context_line":"\txtensa-\u003esuppress_dsr_errors \u003d false;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"e0bd8eb3_d77fd860","line":403,"updated":"2022-06-02 14:04:39.000000000","message":"restore xtensa-\u003esuppress_dsr_errors before exiting?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":400,"context_line":"\txtensa-\u003esuppress_dsr_errors \u003d true;"},{"line_number":401,"context_line":"\tres \u003d xtensa_resume(target, 0, RTC_SLOW_MEM_BASE + 4, 0, 0);"},{"line_number":402,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":403,"context_line":"\t\tLOG_ERROR(\"Failed to run stub (%d)!\", res);"},{"line_number":404,"context_line":"\t\treturn res;"},{"line_number":405,"context_line":"\t}"},{"line_number":406,"context_line":"\txtensa-\u003esuppress_dsr_errors \u003d false;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"49945b4a_cdee0ed6","line":403,"in_reply_to":"e0bd8eb3_d77fd860","updated":"2022-06-03 11:16:13.000000000","message":"Good catch. Thanks","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"\t/* Restore the original contents of RTC_SLOW_MEM */"},{"line_number":431,"context_line":"\tLOG_DEBUG(\"restoring RTC_SLOW_MEM\");"},{"line_number":432,"context_line":"\tres \u003d target_write_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":433,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":434,"context_line":"\t\tLOG_ERROR(\"Failed to restore contents of RTC_SLOW_MEM (%d)!\", res);"},{"line_number":435,"context_line":"\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"28719c31_ec59b38e","line":432,"updated":"2022-06-02 14:04:39.000000000","message":"can memory be preserved on earlier error conditions that return before here?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":true,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"\t/* Restore the original contents of RTC_SLOW_MEM */"},{"line_number":431,"context_line":"\tLOG_DEBUG(\"restoring RTC_SLOW_MEM\");"},{"line_number":432,"context_line":"\tres \u003d target_write_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":433,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":434,"context_line":"\t\tLOG_ERROR(\"Failed to restore contents of RTC_SLOW_MEM (%d)!\", res);"},{"line_number":435,"context_line":"\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b96f7428_284d03e9","line":432,"in_reply_to":"28719c31_ec59b38e","updated":"2022-06-03 11:16:13.000000000","message":"Do you mean, Restore the contents immediately after the soc_reset?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0a4eae01c19ef2656054c91d991fa8cbee788e5b","unresolved":false,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"\t/* Restore the original contents of RTC_SLOW_MEM */"},{"line_number":431,"context_line":"\tLOG_DEBUG(\"restoring RTC_SLOW_MEM\");"},{"line_number":432,"context_line":"\tres \u003d target_write_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":433,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":434,"context_line":"\t\tLOG_ERROR(\"Failed to restore contents of RTC_SLOW_MEM (%d)!\", res);"},{"line_number":435,"context_line":"\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"bac1656a_e825c247","line":432,"in_reply_to":"299efd5a_902b23d9","updated":"2022-06-04 15:55:02.000000000","message":"Maybe it is not necessary to restore it because most probably bootloader will load respective app sections there on startup. But leaving stub code there does not seem to be a good idea, too. So, I have restored the memory before return.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"87b7bc2cab45d7fe2db4b70c12b8acc6ede96d1c","unresolved":true,"context_lines":[{"line_number":429,"context_line":""},{"line_number":430,"context_line":"\t/* Restore the original contents of RTC_SLOW_MEM */"},{"line_number":431,"context_line":"\tLOG_DEBUG(\"restoring RTC_SLOW_MEM\");"},{"line_number":432,"context_line":"\tres \u003d target_write_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":433,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":434,"context_line":"\t\tLOG_ERROR(\"Failed to restore contents of RTC_SLOW_MEM (%d)!\", res);"},{"line_number":435,"context_line":"\t\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"299efd5a_902b23d9","line":432,"in_reply_to":"b96f7428_284d03e9","updated":"2022-06-03 13:44:39.000000000","message":"There are 3 error conditions that return after the stub download but before restoring the memory contents.  I\u0027m wondering whether either (A) some/all of those conditions can restore target memory prior to returning so the system remains in a coherent state regardless of how this function exits, or (B) is it actually unnecessary to restore this memory after a reset, perhaps because the reset disrupts memory contents or the boot code reinitializes it prior to re-reading?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":489,"context_line":"static int esp32_virt2phys(struct target *target,"},{"line_number":490,"context_line":"\ttarget_addr_t virtual, target_addr_t *physical)"},{"line_number":491,"context_line":"{"},{"line_number":492,"context_line":"\t*physical \u003d virtual;"},{"line_number":493,"context_line":"\treturn ERROR_OK;"},{"line_number":494,"context_line":"}"},{"line_number":495,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a4a8f4b2_efee3c0d","line":492,"updated":"2022-06-02 14:04:39.000000000","message":"is pointer guaranteed non-null or should it be checked here?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":489,"context_line":"static int esp32_virt2phys(struct target *target,"},{"line_number":490,"context_line":"\ttarget_addr_t virtual, target_addr_t *physical)"},{"line_number":491,"context_line":"{"},{"line_number":492,"context_line":"\t*physical \u003d virtual;"},{"line_number":493,"context_line":"\treturn ERROR_OK;"},{"line_number":494,"context_line":"}"},{"line_number":495,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b12b6e5a_3f6cc397","line":492,"in_reply_to":"a4a8f4b2_efee3c0d","updated":"2022-06-03 11:16:13.000000000","message":"Better to check","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":502,"context_line":"static void esp32_queue_tdi_idle(struct target *target)"},{"line_number":503,"context_line":"{"},{"line_number":504,"context_line":"\tstruct esp32_common *esp32 \u003d target_to_esp32(target);"},{"line_number":505,"context_line":"\tstatic uint8_t value;"},{"line_number":506,"context_line":"\tuint8_t t[4] \u003d { 0, 0, 0, 0 };"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"\tif (esp32-\u003eflash_bootstrap \u003d\u003d FBS_TMSLOW)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c6d24154_34d64281","line":505,"updated":"2022-06-02 23:58:58.000000000","message":"uint32_t, as it\u0027s argument of buf_set_u32","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":502,"context_line":"static void esp32_queue_tdi_idle(struct target *target)"},{"line_number":503,"context_line":"{"},{"line_number":504,"context_line":"\tstruct esp32_common *esp32 \u003d target_to_esp32(target);"},{"line_number":505,"context_line":"\tstatic uint8_t value;"},{"line_number":506,"context_line":"\tuint8_t t[4] \u003d { 0, 0, 0, 0 };"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"\tif (esp32-\u003eflash_bootstrap \u003d\u003d FBS_TMSLOW)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"1afbcbfd_eba36f67","line":505,"in_reply_to":"c6d24154_34d64281","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"}],"src/target/espressif/esp_xtensa_smp.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":31,"context_line":"Multiprocessor stuff common:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The ESP Xtensa chip can have several cores in it, which can run in SMP-mode if an"},{"line_number":34,"context_line":"SMP-capable OS is running. The hardware has a few features which make"},{"line_number":35,"context_line":"debugging this much easier."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"First of all, there\u0027s something called a \u0027break network\u0027, consisting of a"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"e0f1b4a6_8ef0a0b6","line":34,"updated":"2022-05-23 20:52:09.000000000","message":"s/make/makes/ ???","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Multiprocessor stuff common:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The ESP Xtensa chip can have several cores in it, which can run in SMP-mode if an"},{"line_number":34,"context_line":"SMP-capable OS is running. The hardware has a few features which make"},{"line_number":35,"context_line":"debugging this much easier."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"First of all, there\u0027s something called a \u0027break network\u0027, consisting of a"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a4242f76_9b2712d0","line":34,"in_reply_to":"e0f1b4a6_8ef0a0b6","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":60,"context_line":"The ESP Xtensa chip has several Xtensa cores inside, but represent themself to the OCD"},{"line_number":61,"context_line":"as one chip that works in multithreading mode under FreeRTOS OS."},{"line_number":62,"context_line":"The core that initiate the stop condition will be defined as an active cpu."},{"line_number":63,"context_line":"When one core stops, then other core will be stoped automativally by smpbreak."},{"line_number":64,"context_line":"The core that initiate stop condition will be defined as an active core, and"},{"line_number":65,"context_line":"registers of this core will be transfered."},{"line_number":66,"context_line":"*/"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"694f1736_1f97f8fd","line":63,"updated":"2022-05-23 20:52:09.000000000","message":"s/other core/other cores/ ???\ns/stoped/stopped/\ns/automativally/automatically/","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The ESP Xtensa chip has several Xtensa cores inside, but represent themself to the OCD"},{"line_number":61,"context_line":"as one chip that works in multithreading mode under FreeRTOS OS."},{"line_number":62,"context_line":"The core that initiate the stop condition will be defined as an active cpu."},{"line_number":63,"context_line":"When one core stops, then other core will be stoped automativally by smpbreak."},{"line_number":64,"context_line":"The core that initiate stop condition will be defined as an active core, and"},{"line_number":65,"context_line":"registers of this core will be transfered."},{"line_number":66,"context_line":"*/"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f729ebf9_260941c6","line":63,"in_reply_to":"694f1736_1f97f8fd","updated":"2022-05-24 16:50:19.000000000","message":"We have chips up to 2 cores. So other core is correct for now.","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":61,"context_line":"as one chip that works in multithreading mode under FreeRTOS OS."},{"line_number":62,"context_line":"The core that initiate the stop condition will be defined as an active cpu."},{"line_number":63,"context_line":"When one core stops, then other core will be stoped automativally by smpbreak."},{"line_number":64,"context_line":"The core that initiate stop condition will be defined as an active core, and"},{"line_number":65,"context_line":"registers of this core will be transfered."},{"line_number":66,"context_line":"*/"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"059bf72e_cf40774f","line":64,"updated":"2022-05-23 20:52:09.000000000","message":"s/initiate/initiates/","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":61,"context_line":"as one chip that works in multithreading mode under FreeRTOS OS."},{"line_number":62,"context_line":"The core that initiate the stop condition will be defined as an active cpu."},{"line_number":63,"context_line":"When one core stops, then other core will be stoped automativally by smpbreak."},{"line_number":64,"context_line":"The core that initiate stop condition will be defined as an active core, and"},{"line_number":65,"context_line":"registers of this core will be transfered."},{"line_number":66,"context_line":"*/"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"ed41b81b_6115b02d","line":64,"in_reply_to":"059bf72e_cf40774f","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":62,"context_line":"The core that initiate the stop condition will be defined as an active cpu."},{"line_number":63,"context_line":"When one core stops, then other core will be stoped automativally by smpbreak."},{"line_number":64,"context_line":"The core that initiate stop condition will be defined as an active core, and"},{"line_number":65,"context_line":"registers of this core will be transfered."},{"line_number":66,"context_line":"*/"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#define ESP_XTENSA_SMP_EXAMINE_OTHER_CORES      5"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"7757c6d6_fa8866c7","line":65,"updated":"2022-05-23 20:52:09.000000000","message":"s/transfered/transferred/","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":62,"context_line":"The core that initiate the stop condition will be defined as an active cpu."},{"line_number":63,"context_line":"When one core stops, then other core will be stoped automativally by smpbreak."},{"line_number":64,"context_line":"The core that initiate stop condition will be defined as an active core, and"},{"line_number":65,"context_line":"registers of this core will be transfered."},{"line_number":66,"context_line":"*/"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#define ESP_XTENSA_SMP_EXAMINE_OTHER_CORES      5"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"fffd64ce_2d5682a5","line":65,"in_reply_to":"7757c6d6_fa8866c7","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":87,"context_line":"\tif (ret !\u003d ERROR_OK)"},{"line_number":88,"context_line":"\t\treturn ret;"},{"line_number":89,"context_line":"\t/* in SMP mode when chip was running single-core app the other core can be left un-examined,"},{"line_number":90,"context_line":"\t   becasue examination is done before SOC reset. But after SOC reset it is functional and should be handled."},{"line_number":91,"context_line":"\t   So try to examine un-examined core just after SOC reset */"},{"line_number":92,"context_line":"\tif (target-\u003esmp \u0026\u0026 !target_was_examined(target))"},{"line_number":93,"context_line":"\t\tret \u003d xtensa_examine(target);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"17c88885_fe2b44c8","line":90,"updated":"2022-05-23 20:52:09.000000000","message":"s/becasue/because/","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":87,"context_line":"\tif (ret !\u003d ERROR_OK)"},{"line_number":88,"context_line":"\t\treturn ret;"},{"line_number":89,"context_line":"\t/* in SMP mode when chip was running single-core app the other core can be left un-examined,"},{"line_number":90,"context_line":"\t   becasue examination is done before SOC reset. But after SOC reset it is functional and should be handled."},{"line_number":91,"context_line":"\t   So try to examine un-examined core just after SOC reset */"},{"line_number":92,"context_line":"\tif (target-\u003esmp \u0026\u0026 !target_was_examined(target))"},{"line_number":93,"context_line":"\t\tret \u003d xtensa_examine(target);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f42ea637_cb1a64d1","line":90,"in_reply_to":"17c88885_fe2b44c8","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":145,"context_line":"\tint ret;"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\t/*  toggle to another core is done by gdb as follow"},{"line_number":148,"context_line":"\t *  maint packet J core_id"},{"line_number":149,"context_line":"\t *  continue"},{"line_number":150,"context_line":"\t *  the next polling trigger an halt event sent to gdb */"},{"line_number":151,"context_line":"\tif (target-\u003estate \u003d\u003d TARGET_HALTED \u0026\u0026 target-\u003esmp \u0026\u0026 target-\u003egdb_service \u0026\u0026 !target-\u003egdb_service-\u003etarget) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"492a1273_0464515d","line":148,"updated":"2022-05-23 20:52:09.000000000","message":"this maint packet has been deprecated and will be dropped soon\nhttps://review.openocd.org/6862/\nI haven\u0027t checked yet how it is used in this code.","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"4bfab0c2257ecdb1930cef02d477cbf409cb09b4","unresolved":false,"context_lines":[{"line_number":145,"context_line":"\tint ret;"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\t/*  toggle to another core is done by gdb as follow"},{"line_number":148,"context_line":"\t *  maint packet J core_id"},{"line_number":149,"context_line":"\t *  continue"},{"line_number":150,"context_line":"\t *  the next polling trigger an halt event sent to gdb */"},{"line_number":151,"context_line":"\tif (target-\u003estate \u003d\u003d TARGET_HALTED \u0026\u0026 target-\u003esmp \u0026\u0026 target-\u003egdb_service \u0026\u0026 !target-\u003egdb_service-\u003etarget) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"b4fa87ac_1e908673","line":148,"in_reply_to":"492a1273_0464515d","updated":"2022-06-11 10:46:09.000000000","message":"So, this comment is copy/paste from cortex_a.c and can be removed.\nAnyway I need to remove it from cortex_a.c and mips_m4k.c, so I can do it later in this file too.\n\nWe have the fake RTOS \"hwthread\" to handle SMP with GDB. I invite you to try to use it and eventually report issues if it doesn\u0027t work well with xtensa SMP. But this is not blocking this patch.\n\nWithout \"hwthread\", at halt the core showed by GDB is a random one in the SMP node.\nIn GDB you can change core by using \"smp_gdb\" command. This requires hooks in target-\u003eresume for dummy resume, as in cortex_a_resume(), and I see you have it already below in esp_xtensa_smp_resume().","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"int esp_xtensa_smp_assert_reset(struct target *target)"},{"line_number":78,"context_line":"{"},{"line_number":79,"context_line":"\treturn ERROR_OK;"},{"line_number":80,"context_line":"}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"int esp_xtensa_smp_deassert_reset(struct target *target)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"30d7dc34_0817db41","line":79,"updated":"2022-06-02 14:04:39.000000000","message":"call xtensa_assert_reset()?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"int esp_xtensa_smp_assert_reset(struct target *target)"},{"line_number":78,"context_line":"{"},{"line_number":79,"context_line":"\treturn ERROR_OK;"},{"line_number":80,"context_line":"}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"int esp_xtensa_smp_deassert_reset(struct target *target)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"aa25f20d_cd638063","line":79,"in_reply_to":"30d7dc34_0817db41","updated":"2022-06-03 11:16:13.000000000","message":"xtensa_assert_reset() is called for each core in the esp_xtensa_smp_soft_reset_halt() --\u003e post reset event\n\nesp_xtensa_smp_assert_reset() is there just for backward compatibility. We continue to support `reset` command.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":119,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":120,"context_line":"\t\t\treturn res;"},{"line_number":121,"context_line":"\t}"},{"line_number":122,"context_line":"\treturn res;"},{"line_number":123,"context_line":"}"},{"line_number":124,"context_line":"static struct target *get_halted_esp_xtensa_smp(struct target *target, int32_t coreid)"},{"line_number":125,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"72f44f7a_c11f40a1","line":122,"updated":"2022-06-02 23:58:58.000000000","message":"if the execution arrives here, res \u003d\u003d ERROR_OK!!! Simply\nreturn ERROR_OK;\nand remove the initialization of res at the beginning of the function","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":119,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":120,"context_line":"\t\t\treturn res;"},{"line_number":121,"context_line":"\t}"},{"line_number":122,"context_line":"\treturn res;"},{"line_number":123,"context_line":"}"},{"line_number":124,"context_line":"static struct target *get_halted_esp_xtensa_smp(struct target *target, int32_t coreid)"},{"line_number":125,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"93d40ce2_ea4896f0","line":122,"in_reply_to":"72f44f7a_c11f40a1","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":121,"context_line":"\t}"},{"line_number":122,"context_line":"\treturn res;"},{"line_number":123,"context_line":"}"},{"line_number":124,"context_line":"static struct target *get_halted_esp_xtensa_smp(struct target *target, int32_t coreid)"},{"line_number":125,"context_line":"{"},{"line_number":126,"context_line":"\tstruct target_list *head;"},{"line_number":127,"context_line":"\tstruct target *curr;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"5d41f39d_8b4e5da8","line":124,"updated":"2022-06-02 23:58:58.000000000","message":"add an empty line between the two functions","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":121,"context_line":"\t}"},{"line_number":122,"context_line":"\treturn res;"},{"line_number":123,"context_line":"}"},{"line_number":124,"context_line":"static struct target *get_halted_esp_xtensa_smp(struct target *target, int32_t coreid)"},{"line_number":125,"context_line":"{"},{"line_number":126,"context_line":"\tstruct target_list *head;"},{"line_number":127,"context_line":"\tstruct target *curr;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"437dee8d_2888d7ea","line":124,"in_reply_to":"5d41f39d_8b4e5da8","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":157,"context_line":"\t\treturn ERROR_OK;"},{"line_number":158,"context_line":"\t}"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"\tret \u003d esp_xtensa_poll(target);"},{"line_number":161,"context_line":"\tif (target-\u003esmp) {"},{"line_number":162,"context_line":"\t\tif (target-\u003estate \u003d\u003d TARGET_RESET) {"},{"line_number":163,"context_line":"\t\t\tesp_xtensa_smp-\u003eexamine_other_cores \u003d ESP_XTENSA_SMP_EXAMINE_OTHER_CORES;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"310ac793_443d5a01","line":160,"updated":"2022-06-02 23:58:58.000000000","message":"not clear what you want to do with the ret value, here.\nIt\u0027s not tested, and its value can be lost at line 188, becoming ERROR_OK.\nWhat you return at the end of this function depends on the execution of line 188.\nCan you check?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"03e7b974f615cdba6b38dd2e8798162ae8b4b47a","unresolved":false,"context_lines":[{"line_number":157,"context_line":"\t\treturn ERROR_OK;"},{"line_number":158,"context_line":"\t}"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"\tret \u003d esp_xtensa_poll(target);"},{"line_number":161,"context_line":"\tif (target-\u003esmp) {"},{"line_number":162,"context_line":"\t\tif (target-\u003estate \u003d\u003d TARGET_RESET) {"},{"line_number":163,"context_line":"\t\t\tesp_xtensa_smp-\u003eexamine_other_cores \u003d ESP_XTENSA_SMP_EXAMINE_OTHER_CORES;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"78977e3a_025d8530","line":160,"in_reply_to":"310ac793_443d5a01","updated":"2022-06-03 16:22:25.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"03e7b974f615cdba6b38dd2e8798162ae8b4b47a","unresolved":false,"context_lines":[{"line_number":157,"context_line":"\t\treturn ERROR_OK;"},{"line_number":158,"context_line":"\t}"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"\tret \u003d esp_xtensa_poll(target);"},{"line_number":161,"context_line":"\tif (target-\u003esmp) {"},{"line_number":162,"context_line":"\t\tif (target-\u003estate \u003d\u003d TARGET_RESET) {"},{"line_number":163,"context_line":"\t\t\tesp_xtensa_smp-\u003eexamine_other_cores \u003d ESP_XTENSA_SMP_EXAMINE_OTHER_CORES;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b67c3eb6_bba5e145","line":160,"in_reply_to":"310ac793_443d5a01","updated":"2022-06-03 16:22:25.000000000","message":"Yes. Added return value check.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":202,"context_line":"\t\t\t\t\tLOG_ERROR(\"Failed to resume target\");"},{"line_number":203,"context_line":"\t\t\t\t\treturn ret;"},{"line_number":204,"context_line":"\t\t\t\t}"},{"line_number":205,"context_line":"\t\t\t\treturn ret;"},{"line_number":206,"context_line":"\t\t\t}"},{"line_number":207,"context_line":"\t\t\tif (esp_xtensa_smp-\u003echip_ops-\u003eon_halt)"},{"line_number":208,"context_line":"\t\t\t\tesp_xtensa_smp-\u003echip_ops-\u003eon_halt(target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"81db7876_e994dc02","line":205,"updated":"2022-06-02 23:58:58.000000000","message":"here ret is only ERROR_OK. Simply\nreturn ERROR_OK;","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":202,"context_line":"\t\t\t\t\tLOG_ERROR(\"Failed to resume target\");"},{"line_number":203,"context_line":"\t\t\t\t\treturn ret;"},{"line_number":204,"context_line":"\t\t\t\t}"},{"line_number":205,"context_line":"\t\t\t\treturn ret;"},{"line_number":206,"context_line":"\t\t\t}"},{"line_number":207,"context_line":"\t\t\tif (esp_xtensa_smp-\u003echip_ops-\u003eon_halt)"},{"line_number":208,"context_line":"\t\t\t\tesp_xtensa_smp-\u003echip_ops-\u003eon_halt(target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"85b86657_42761281","line":205,"in_reply_to":"81db7876_e994dc02","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"ac189eb516bca2f1b4a72d4c51e7e811a7f2bd7a","unresolved":true,"context_lines":[{"line_number":268,"context_line":"\t}"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"\t/* after all targets were updated, poll the gdb serving target */"},{"line_number":271,"context_line":"\tif (gdb_target !\u003d NULL \u0026\u0026 gdb_target !\u003d target) {"},{"line_number":272,"context_line":"\t\tesp_xtensa_smp \u003d target_to_esp_xtensa_smp(gdb_target);"},{"line_number":273,"context_line":"\t\tif (esp_xtensa_smp-\u003echip_ops-\u003epoll)"},{"line_number":274,"context_line":"\t\t\tesp_xtensa_smp-\u003echip_ops-\u003epoll(gdb_target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"539daa58_022b9c2a","line":271,"updated":"2022-06-02 14:04:39.000000000","message":"add extra parentheses?","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":268,"context_line":"\t}"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"\t/* after all targets were updated, poll the gdb serving target */"},{"line_number":271,"context_line":"\tif (gdb_target !\u003d NULL \u0026\u0026 gdb_target !\u003d target) {"},{"line_number":272,"context_line":"\t\tesp_xtensa_smp \u003d target_to_esp_xtensa_smp(gdb_target);"},{"line_number":273,"context_line":"\t\tif (esp_xtensa_smp-\u003echip_ops-\u003epoll)"},{"line_number":274,"context_line":"\t\t\tesp_xtensa_smp-\u003echip_ops-\u003epoll(gdb_target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"dc551ecd_8eb93043","line":271,"in_reply_to":"539daa58_022b9c2a","updated":"2022-06-03 11:16:13.000000000","message":"Don\u0027t need here. !\u003d has higher precedence.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":268,"context_line":"\t}"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"\t/* after all targets were updated, poll the gdb serving target */"},{"line_number":271,"context_line":"\tif (gdb_target !\u003d NULL \u0026\u0026 gdb_target !\u003d target) {"},{"line_number":272,"context_line":"\t\tesp_xtensa_smp \u003d target_to_esp_xtensa_smp(gdb_target);"},{"line_number":273,"context_line":"\t\tif (esp_xtensa_smp-\u003echip_ops-\u003epoll)"},{"line_number":274,"context_line":"\t\t\tesp_xtensa_smp-\u003echip_ops-\u003epoll(gdb_target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b02ed1cd_ad9a623d","line":271,"in_reply_to":"539daa58_022b9c2a","updated":"2022-06-02 23:58:58.000000000","message":"The new checkpatch will let me remove several parentheses, here the C does not require it.\nInstead, coding style require no comparison with NULL. So\nif (gdb_target \u0026\u0026 gdb_target !\u003d target) {","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"\tLOG_DEBUG(\"exit\");"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"\treturn retval;"},{"line_number":282,"context_line":"}"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"static inline int esp_xtensa_smp_smpbreak_disable(struct target *target, uint32_t *smp_break)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b748a9eb_a79885db","line":281,"updated":"2022-06-02 23:58:58.000000000","message":"retval is always \u00270\u0027 in this function.\nBut the caller check if this function returns !\u003d ERROR_OK.","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"03e7b974f615cdba6b38dd2e8798162ae8b4b47a","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"\tLOG_DEBUG(\"exit\");"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"\treturn retval;"},{"line_number":282,"context_line":"}"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"static inline int esp_xtensa_smp_smpbreak_disable(struct target *target, uint32_t *smp_break)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"9fbd4a5f_2cec1ef1","line":281,"in_reply_to":"b748a9eb_a79885db","updated":"2022-06-03 16:22:25.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":316,"context_line":"\t\t\t\treturn res;"},{"line_number":317,"context_line":"\t\t}"},{"line_number":318,"context_line":"\t}"},{"line_number":319,"context_line":"\treturn res;"},{"line_number":320,"context_line":"}"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"int esp_xtensa_smp_resume(struct target *target,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b3e0a943_755603d0","line":319,"updated":"2022-06-02 23:58:58.000000000","message":"here res is always ERROR_OK","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":316,"context_line":"\t\t\t\treturn res;"},{"line_number":317,"context_line":"\t\t}"},{"line_number":318,"context_line":"\t}"},{"line_number":319,"context_line":"\treturn res;"},{"line_number":320,"context_line":"}"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"int esp_xtensa_smp_resume(struct target *target,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ec680109_8c5894c3","line":319,"in_reply_to":"b3e0a943_755603d0","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":378,"context_line":"\t\ttarget-\u003estate \u003d TARGET_DEBUG_RUNNING;"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"\ttarget_call_event_callbacks(target, TARGET_EVENT_RESUMED);"},{"line_number":381,"context_line":"\treturn res;"},{"line_number":382,"context_line":"}"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"int esp_xtensa_smp_step(struct target *target,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"296882a6_0247bfcf","line":381,"updated":"2022-06-02 23:58:58.000000000","message":"also here res is ERROR_OK","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":378,"context_line":"\t\ttarget-\u003estate \u003d TARGET_DEBUG_RUNNING;"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"\ttarget_call_event_callbacks(target, TARGET_EVENT_RESUMED);"},{"line_number":381,"context_line":"\treturn res;"},{"line_number":382,"context_line":"}"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"int esp_xtensa_smp_step(struct target *target,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"d57b29c5_411f4efd","line":381,"in_reply_to":"296882a6_0247bfcf","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":386,"context_line":"\ttarget_addr_t address,"},{"line_number":387,"context_line":"\tint handle_breakpoints)"},{"line_number":388,"context_line":"{"},{"line_number":389,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":390,"context_line":"\tuint32_t smp_break;"},{"line_number":391,"context_line":"\tstruct esp_xtensa_smp_common *esp_xtensa_smp \u003d target_to_esp_xtensa_smp(target);"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"22c04461_4763c113","line":389,"updated":"2022-06-02 23:58:58.000000000","message":"no need to initialize it, it is always assigned in line 394 or 398","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":386,"context_line":"\ttarget_addr_t address,"},{"line_number":387,"context_line":"\tint handle_breakpoints)"},{"line_number":388,"context_line":"{"},{"line_number":389,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":390,"context_line":"\tuint32_t smp_break;"},{"line_number":391,"context_line":"\tstruct esp_xtensa_smp_common *esp_xtensa_smp \u003d target_to_esp_xtensa_smp(target);"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"08f1a1ed_0df8096d","line":389,"in_reply_to":"22c04461_4763c113","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":416,"context_line":"{"},{"line_number":417,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"\tres \u003d xtensa_watchpoint_add(target, watchpoint);"},{"line_number":420,"context_line":"\tif (target-\u003esmp \u0026\u0026 res \u003d\u003d ERROR_OK) {"},{"line_number":421,"context_line":"\t\tstruct target_list *head;"},{"line_number":422,"context_line":"\t\tforeach_smp_target(head, target-\u003esmp_targets) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"35ead86f_4536bffc","line":419,"updated":"2022-06-02 23:58:58.000000000","message":"no need to initialize res. Write directly\nint res \u003d xtensa_watchpoint_add(...);","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":416,"context_line":"{"},{"line_number":417,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"\tres \u003d xtensa_watchpoint_add(target, watchpoint);"},{"line_number":420,"context_line":"\tif (target-\u003esmp \u0026\u0026 res \u003d\u003d ERROR_OK) {"},{"line_number":421,"context_line":"\t\tstruct target_list *head;"},{"line_number":422,"context_line":"\t\tforeach_smp_target(head, target-\u003esmp_targets) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"04105e28_d7a686ed","line":419,"in_reply_to":"35ead86f_4536bffc","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":417,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"\tres \u003d xtensa_watchpoint_add(target, watchpoint);"},{"line_number":420,"context_line":"\tif (target-\u003esmp \u0026\u0026 res \u003d\u003d ERROR_OK) {"},{"line_number":421,"context_line":"\t\tstruct target_list *head;"},{"line_number":422,"context_line":"\t\tforeach_smp_target(head, target-\u003esmp_targets) {"},{"line_number":423,"context_line":"\t\t\tstruct target *curr \u003d head-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c35911e6_5ec31993","line":420,"updated":"2022-06-02 23:58:58.000000000","message":"much more readable, removing one level of indentation, as:\n int res \u003d xtensa_watchpoint_add(...);\n if (res !\u003d ERROR_OK)\n   return res;\n if (!target-\u003esmp)\n   return ERROR_OK;\n struct target_list *head;\n foreach_smp_target(...) {\n   ...\n }\n return ERROR_OK;","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":417,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"\tres \u003d xtensa_watchpoint_add(target, watchpoint);"},{"line_number":420,"context_line":"\tif (target-\u003esmp \u0026\u0026 res \u003d\u003d ERROR_OK) {"},{"line_number":421,"context_line":"\t\tstruct target_list *head;"},{"line_number":422,"context_line":"\t\tforeach_smp_target(head, target-\u003esmp_targets) {"},{"line_number":423,"context_line":"\t\t\tstruct target *curr \u003d head-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"9957a74f_3cb4e7f3","line":420,"in_reply_to":"c35911e6_5ec31993","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":431,"context_line":"\t\t\t\twatchpoint-\u003erw, watchpoint-\u003evalue, watchpoint-\u003emask);"},{"line_number":432,"context_line":"\t\t\tcurr-\u003esmp \u003d 1;"},{"line_number":433,"context_line":"\t\t\tif (res !\u003d ERROR_OK)"},{"line_number":434,"context_line":"\t\t\t\tbreak;"},{"line_number":435,"context_line":"\t\t}"},{"line_number":436,"context_line":"\t}"},{"line_number":437,"context_line":"\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"8e8ca120_dbd92376","line":434,"updated":"2022-06-02 23:58:58.000000000","message":"return res;","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":431,"context_line":"\t\t\t\twatchpoint-\u003erw, watchpoint-\u003evalue, watchpoint-\u003emask);"},{"line_number":432,"context_line":"\t\t\tcurr-\u003esmp \u003d 1;"},{"line_number":433,"context_line":"\t\t\tif (res !\u003d ERROR_OK)"},{"line_number":434,"context_line":"\t\t\t\tbreak;"},{"line_number":435,"context_line":"\t\t}"},{"line_number":436,"context_line":"\t}"},{"line_number":437,"context_line":"\treturn res;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c4af43ed_de486ac8","line":434,"in_reply_to":"8e8ca120_dbd92376","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":439,"context_line":""},{"line_number":440,"context_line":"int esp_xtensa_smp_watchpoint_remove(struct target *target, struct watchpoint *watchpoint)"},{"line_number":441,"context_line":"{"},{"line_number":442,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"\tres \u003d xtensa_watchpoint_remove(target, watchpoint);"},{"line_number":445,"context_line":"\tif (target-\u003esmp \u0026\u0026 res \u003d\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"23c93cc4_66bc4098","line":442,"updated":"2022-06-02 23:58:58.000000000","message":"same as previous function","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":439,"context_line":""},{"line_number":440,"context_line":"int esp_xtensa_smp_watchpoint_remove(struct target *target, struct watchpoint *watchpoint)"},{"line_number":441,"context_line":"{"},{"line_number":442,"context_line":"\tint res \u003d ERROR_OK;"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"\tres \u003d xtensa_watchpoint_remove(target, watchpoint);"},{"line_number":445,"context_line":"\tif (target-\u003esmp \u0026\u0026 res \u003d\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"56514433_c50084bb","line":442,"in_reply_to":"23c93cc4_66bc4098","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"8123e98065d55ebc8633e41bd394a19db88ac16e","unresolved":true,"context_lines":[{"line_number":103,"context_line":"\tLOG_TARGET_DEBUG(target, \"begin\");"},{"line_number":104,"context_line":"\t/* in SMP mode we need to ensure that at first we reset SOC on PRO-CPU"},{"line_number":105,"context_line":"\t   and then call xtensa_assert_reset() for all cores */"},{"line_number":106,"context_line":"\tif (target-\u003esmp \u0026\u0026 target-\u003ecoreid !\u003d 0)"},{"line_number":107,"context_line":"\t\treturn ERROR_OK;"},{"line_number":108,"context_line":"\t/* Reset the SoC first */"},{"line_number":109,"context_line":"\tif (esp_xtensa_smp-\u003echip_ops-\u003ereset) {"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"157394fd_93938398","line":106,"updated":"2024-02-03 17:50:00.000000000","message":"This code exits for any core that has coreid!\u003d0\nSince we are redefining the scope of coreid, see\nhttps://review.openocd.org/c/openocd/+/7957\nI would like to know if this code can be modified and how.\nWhat is the meaning here?\nYou just want that only one of the cores continue and the other exit?\nCan the test on coreid be replaced by a test if \u0027target\u0027 is the first one listed in \u0027target-\u003esmp_targets\u0027?","commit_id":"77287b8d47b4be8ee5612037fe1eba6f0e08147f"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"1616cbf2bf0fcb337f98e55a58171144f8c313d3","unresolved":true,"context_lines":[{"line_number":103,"context_line":"\tLOG_TARGET_DEBUG(target, \"begin\");"},{"line_number":104,"context_line":"\t/* in SMP mode we need to ensure that at first we reset SOC on PRO-CPU"},{"line_number":105,"context_line":"\t   and then call xtensa_assert_reset() for all cores */"},{"line_number":106,"context_line":"\tif (target-\u003esmp \u0026\u0026 target-\u003ecoreid !\u003d 0)"},{"line_number":107,"context_line":"\t\treturn ERROR_OK;"},{"line_number":108,"context_line":"\t/* Reset the SoC first */"},{"line_number":109,"context_line":"\tif (esp_xtensa_smp-\u003echip_ops-\u003ereset) {"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"aa28601e_61d6c1ad","line":106,"in_reply_to":"157394fd_93938398","updated":"2024-02-07 12:04:59.000000000","message":"Yes something like this will also work. \n\n  if (target-\u003esmp) {\n        head \u003d list_first_entry(target-\u003esmp_targets, struct target_list, lh);\n        if (head-\u003etarget !\u003d target)\n            return ERROR_OK;\n  }\n\nDo you want me to create a patch?","commit_id":"77287b8d47b4be8ee5612037fe1eba6f0e08147f"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b448e64b897c692a9a7ca9a6e39107c40434af3e","unresolved":true,"context_lines":[{"line_number":103,"context_line":"\tLOG_TARGET_DEBUG(target, \"begin\");"},{"line_number":104,"context_line":"\t/* in SMP mode we need to ensure that at first we reset SOC on PRO-CPU"},{"line_number":105,"context_line":"\t   and then call xtensa_assert_reset() for all cores */"},{"line_number":106,"context_line":"\tif (target-\u003esmp \u0026\u0026 target-\u003ecoreid !\u003d 0)"},{"line_number":107,"context_line":"\t\treturn ERROR_OK;"},{"line_number":108,"context_line":"\t/* Reset the SoC first */"},{"line_number":109,"context_line":"\tif (esp_xtensa_smp-\u003echip_ops-\u003ereset) {"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"57d5215d_84149e27","line":106,"in_reply_to":"aa28601e_61d6c1ad","updated":"2024-02-24 17:56:37.000000000","message":"Yes, please provide a patch for this.\nThanks!","commit_id":"77287b8d47b4be8ee5612037fe1eba6f0e08147f"}],"src/target/target.c":[{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"c789848d3e632435ee52d6cbd29c7d9ac544a92a","unresolved":true,"context_lines":[{"line_number":3338,"context_line":"{"},{"line_number":3339,"context_line":"\tstruct target *target \u003d get_current_target(CMD_CTX);"},{"line_number":3340,"context_line":""},{"line_number":3341,"context_line":"\tLOG_TARGET_INFO(target, \"requesting target halt and executing a soft reset\");"},{"line_number":3342,"context_line":""},{"line_number":3343,"context_line":"\ttarget_soft_reset_halt(target);"},{"line_number":3344,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"a208b3b6_c8a35c2a","line":3341,"updated":"2022-05-22 16:39:27.000000000","message":"I am not sure this patch is the right one to change this but below output looks better and similar to others. \n\nInfo : [esp32.cpu0] requesting target halt and executing a soft reset\nInfo : [esp32.cpu1] requesting target halt and executing a soft reset","commit_id":"97eaed1373b72e1ecedc43ca70e8827435d56951"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":false,"context_lines":[{"line_number":3338,"context_line":"{"},{"line_number":3339,"context_line":"\tstruct target *target \u003d get_current_target(CMD_CTX);"},{"line_number":3340,"context_line":""},{"line_number":3341,"context_line":"\tLOG_TARGET_INFO(target, \"requesting target halt and executing a soft reset\");"},{"line_number":3342,"context_line":""},{"line_number":3343,"context_line":"\ttarget_soft_reset_halt(target);"},{"line_number":3344,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"4bdd9f06_81c448cf","line":3341,"in_reply_to":"a208b3b6_c8a35c2a","updated":"2022-05-23 20:52:09.000000000","message":"Not really appropriate, it should be in a separate patch, but not a big deal to take it here","commit_id":"97eaed1373b72e1ecedc43ca70e8827435d56951"}],"tcl/target/esp32.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"17d670dbc8d0a40836a52cc9a8de526446af58bd","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# SPDX-License-Identifier: GPL-2.0-or-later"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# The ESP32 only supports JTAG."},{"line_number":4,"context_line":"transport select jtag"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"cb7bd6d0_a1a4e530","line":1,"updated":"2022-05-23 20:52:09.000000000","message":"this file has execution permission (755), please check it","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"3fecf53dbd6999ea9e7da961940d535e8870c925","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# SPDX-License-Identifier: GPL-2.0-or-later"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# The ESP32 only supports JTAG."},{"line_number":4,"context_line":"transport select jtag"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"db029cca_d9ff1e67","line":1,"in_reply_to":"cb7bd6d0_a1a4e530","updated":"2022-05-24 16:50:19.000000000","message":"Done","commit_id":"5f7f55624f88f44331480f4661468f78c9da2392"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":55,"context_line":"$_TARGETNAME_0 configure -event gdb-attach {"},{"line_number":56,"context_line":"\t$_TARGETNAME_0 xtensa smpbreak BreakIn BreakOut"},{"line_number":57,"context_line":"\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":58,"context_line":"\thalt"},{"line_number":59,"context_line":"}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"if { $_ONLYCPU !\u003d 1 } {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"7212c1ce_b71a4ee8","line":58,"updated":"2022-06-02 23:58:58.000000000","message":"halt 1000\nSee http://review.openocd.org/5687","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":55,"context_line":"$_TARGETNAME_0 configure -event gdb-attach {"},{"line_number":56,"context_line":"\t$_TARGETNAME_0 xtensa smpbreak BreakIn BreakOut"},{"line_number":57,"context_line":"\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":58,"context_line":"\thalt"},{"line_number":59,"context_line":"}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"if { $_ONLYCPU !\u003d 1 } {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"684a7496_eb46741b","line":58,"in_reply_to":"7212c1ce_b71a4ee8","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"eab56e201087a280b89b8bc1809e6d4a59b16f10","unresolved":true,"context_lines":[{"line_number":62,"context_line":"\t$_TARGETNAME_1 configure -event gdb-attach {"},{"line_number":63,"context_line":"\t\t$_TARGETNAME_1 xtensa smpbreak BreakIn BreakOut"},{"line_number":64,"context_line":"\t\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":65,"context_line":"\t\thalt"},{"line_number":66,"context_line":"\t}"},{"line_number":67,"context_line":"\t$_TARGETNAME_1 configure -event reset-assert-post { soft_reset_halt }"},{"line_number":68,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"e9c2c24b_570126ef","line":65,"updated":"2022-06-02 23:58:58.000000000","message":"same here","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"aa53c318cd6a4712d50d3136c7eb63fefd9baaec","unresolved":false,"context_lines":[{"line_number":62,"context_line":"\t$_TARGETNAME_1 configure -event gdb-attach {"},{"line_number":63,"context_line":"\t\t$_TARGETNAME_1 xtensa smpbreak BreakIn BreakOut"},{"line_number":64,"context_line":"\t\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":65,"context_line":"\t\thalt"},{"line_number":66,"context_line":"\t}"},{"line_number":67,"context_line":"\t$_TARGETNAME_1 configure -event reset-assert-post { soft_reset_halt }"},{"line_number":68,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"86aa90e5_8972e210","line":65,"in_reply_to":"e9c2c24b_570126ef","updated":"2022-06-03 11:16:13.000000000","message":"Done","commit_id":"faa4b165f08a0db56479f80c83a6df4694ffc5db"}]}
