)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"1f8686a69c700d8f1f8e400b829abeb0e9d9900f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c6d18793_b0f81e9b","updated":"2022-06-13 21:14:41.000000000","message":"Great!  Thanks for confirming, @erhan","commit_id":"9b4b8832cfddd33d54318b77bcfe8997afe58315"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"9d27373f8a952d9de5a41061345854e6dc16d38d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4f530e67_92bd971d","updated":"2022-06-12 12:28:00.000000000","message":"ok for me. Let\u0027s wait for the outcome of the last point open by Ian.","commit_id":"9b4b8832cfddd33d54318b77bcfe8997afe58315"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"56120f4571fb065b90b9359458006b7df28d4701","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3a0017ba_9554602a","updated":"2022-06-14 15:28:28.000000000","message":"Hi Antonio, Ian, \n\nI did a memory region correction and some indentation fixes. Please have a look once again. \n\nSorry for the last minute changes.","commit_id":"5e8c119a6fa153e32d143ce83ff25a3cbecf815d"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"d26295cc86d2ac21975ce84fab6f059e34d0fec3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"23154f5a_3d5268ec","updated":"2022-06-14 17:01:11.000000000","message":"Looks fine to me.  Thanks.","commit_id":"5e8c119a6fa153e32d143ce83ff25a3cbecf815d"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3cd5e18889fd23673ecd54ac170bd5d0f7a93fd7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c671933c_d37e054b","updated":"2022-06-15 09:59:26.000000000","message":"Thanks, I will merge it in ~10 days.","commit_id":"5e8c119a6fa153e32d143ce83ff25a3cbecf815d"}],"contrib/loaders/reset/espressif/esp32s3/Makefile":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"9f851a315d1475dbdb4dcc6313244d913bc7e8f7","unresolved":true,"context_lines":[{"line_number":28,"context_line":"INCLUDES :\u003d"},{"line_number":29,"context_line":"DEFINES :\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"include ../common.mk"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"03a1d32b_8287f5e0","line":31,"updated":"2022-06-11 10:57:16.000000000","message":"The last line misses the newline char at the end","commit_id":"730dd931f5d51fd99f3750fd95d635d1cf3c5c1e"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"4a5ed2415abef89aba1d299869d15e9581e0f859","unresolved":false,"context_lines":[{"line_number":28,"context_line":"INCLUDES :\u003d"},{"line_number":29,"context_line":"DEFINES :\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"include ../common.mk"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"76e5e597_45e62da4","line":31,"in_reply_to":"03a1d32b_8287f5e0","updated":"2022-06-11 16:33:06.000000000","message":"Done","commit_id":"730dd931f5d51fd99f3750fd95d635d1cf3c5c1e"}],"contrib/loaders/reset/espressif/esp32s3/esp32s3_cpu_reset_handler.S":[{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":77,"context_line":"    .align 4"},{"line_number":78,"context_line":"reset:"},{"line_number":79,"context_line":"    /* Use a5 as a zero register */"},{"line_number":80,"context_line":"    xor a5, a5, a5"},{"line_number":81,"context_line":"    /* Select static reset vector 0 (XCHAL_RESET_VECTOR0_VADDR, 0x50000000) */"},{"line_number":82,"context_line":"    movi a4, RTC_CNTL_RESET_STATE_REG"},{"line_number":83,"context_line":"    s32i a5, a4, 0"}],"source_content_type":"text/x-asm","patch_set":3,"id":"c45c6879_25873ee6","line":80,"updated":"2022-06-02 18:14:23.000000000","message":"is windowing disabled at this point?  presume care is taken so that a4/a5 accesses won\u0027t cause an overflow?  also presume interrupts are disabled during this sequence?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"2863c95368316bac06beaed4a719dc992b0c95cc","unresolved":true,"context_lines":[{"line_number":77,"context_line":"    .align 4"},{"line_number":78,"context_line":"reset:"},{"line_number":79,"context_line":"    /* Use a5 as a zero register */"},{"line_number":80,"context_line":"    xor a5, a5, a5"},{"line_number":81,"context_line":"    /* Select static reset vector 0 (XCHAL_RESET_VECTOR0_VADDR, 0x50000000) */"},{"line_number":82,"context_line":"    movi a4, RTC_CNTL_RESET_STATE_REG"},{"line_number":83,"context_line":"    s32i a5, a4, 0"}],"source_content_type":"text/x-asm","patch_set":3,"id":"ed7c71e4_edb07608","line":80,"in_reply_to":"0ef7410d_abfbf7bf","updated":"2022-06-13 13:14:04.000000000","message":"I don\u0027t think this would need to block the patch if it is an issue.  I\u0027m fine with moving forward and fixing this later if it\u0027s not exhibiting problems, e.g. you can reset successfully when the code is 8+ frames deep in a call stack.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"4a5ed2415abef89aba1d299869d15e9581e0f859","unresolved":true,"context_lines":[{"line_number":77,"context_line":"    .align 4"},{"line_number":78,"context_line":"reset:"},{"line_number":79,"context_line":"    /* Use a5 as a zero register */"},{"line_number":80,"context_line":"    xor a5, a5, a5"},{"line_number":81,"context_line":"    /* Select static reset vector 0 (XCHAL_RESET_VECTOR0_VADDR, 0x50000000) */"},{"line_number":82,"context_line":"    movi a4, RTC_CNTL_RESET_STATE_REG"},{"line_number":83,"context_line":"    s32i a5, a4, 0"}],"source_content_type":"text/x-asm","patch_set":3,"id":"0ef7410d_abfbf7bf","line":80,"in_reply_to":"c45c6879_25873ee6","updated":"2022-06-11 16:33:06.000000000","message":"I will check this.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"393b7aa9a0bd7c545cee507d89a3cf430743b6ba","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    .align 4"},{"line_number":78,"context_line":"reset:"},{"line_number":79,"context_line":"    /* Use a5 as a zero register */"},{"line_number":80,"context_line":"    xor a5, a5, a5"},{"line_number":81,"context_line":"    /* Select static reset vector 0 (XCHAL_RESET_VECTOR0_VADDR, 0x50000000) */"},{"line_number":82,"context_line":"    movi a4, RTC_CNTL_RESET_STATE_REG"},{"line_number":83,"context_line":"    s32i a5, a4, 0"}],"source_content_type":"text/x-asm","patch_set":3,"id":"2e91264c_f49faad4","line":80,"in_reply_to":"ed7c71e4_edb07608","updated":"2022-06-13 20:39:12.000000000","message":"Hi Ian,\n\nSince we get here just after reset, PS.WOE bit is zero, so windowing is disabled. Interrupts are disabled too. So it is OK.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"}],"src/target/espressif/Makefile.am":[{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":4,"context_line":"       %D%/esp_xtensa.h \\"},{"line_number":5,"context_line":"       %D%/esp_xtensa_smp.c \\"},{"line_number":6,"context_line":"       %D%/esp_xtensa_smp.h \\"},{"line_number":7,"context_line":"       %D%/esp32.c \\"},{"line_number":8,"context_line":"       %D%/esp32.h \\"},{"line_number":9,"context_line":"       %D%/esp32s2.c \\"},{"line_number":10,"context_line":"       %D%/esp32s2.h \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"e29cb79f_ad4f9719","line":7,"updated":"2022-06-02 18:14:23.000000000","message":"i think these files are part of another patch.  should they be included in this review too or removed from this makefile?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":4,"context_line":"       %D%/esp_xtensa.h \\"},{"line_number":5,"context_line":"       %D%/esp_xtensa_smp.c \\"},{"line_number":6,"context_line":"       %D%/esp_xtensa_smp.h \\"},{"line_number":7,"context_line":"       %D%/esp32.c \\"},{"line_number":8,"context_line":"       %D%/esp32.h \\"},{"line_number":9,"context_line":"       %D%/esp32s2.c \\"},{"line_number":10,"context_line":"       %D%/esp32s2.h \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"66f3ce82_447ceb82","line":7,"in_reply_to":"e29cb79f_ad4f9719","updated":"2022-06-03 17:14:12.000000000","message":"Since they are both smp target, I created this patch on top of esp32 patch. So it\u0027s ok.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"}],"src/target/espressif/esp32s3.c":[{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":361,"context_line":"\t\t\t\t\tres);"},{"line_number":362,"context_line":"\t\t\t\treturn res;"},{"line_number":363,"context_line":"\t\t\t}"},{"line_number":364,"context_line":"\t\t\talive_sleep(10);"},{"line_number":365,"context_line":"\t\t\txtensa_poll(target);"},{"line_number":366,"context_line":"\t\t\tbool reset_halt_save \u003d target-\u003ereset_halt;"},{"line_number":367,"context_line":"\t\t\ttarget-\u003ereset_halt \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"768fed32_d1aecb11","line":364,"updated":"2022-06-02 18:14:23.000000000","message":"why is a delay required here?  is this something that would change board-to-board or is specific to the esp32s3 chipset?  can it (and others below) be handled more flexibly by a timeout loop?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0a818e5ff0a3af2b81f122bf4d507bd2b07074e9","unresolved":false,"context_lines":[{"line_number":361,"context_line":"\t\t\t\t\tres);"},{"line_number":362,"context_line":"\t\t\t\treturn res;"},{"line_number":363,"context_line":"\t\t\t}"},{"line_number":364,"context_line":"\t\t\talive_sleep(10);"},{"line_number":365,"context_line":"\t\t\txtensa_poll(target);"},{"line_number":366,"context_line":"\t\t\tbool reset_halt_save \u003d target-\u003ereset_halt;"},{"line_number":367,"context_line":"\t\t\ttarget-\u003ereset_halt \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"a0d42838_0c6b44d1","line":364,"in_reply_to":"768fed32_d1aecb11","updated":"2022-06-04 16:17:23.000000000","message":"It works fine without delay but still I would like to keep this. There might have seen some corner cases at the time this function was written.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"85e00eaf69d76c0231974d9b1dda68c0276d4c9a","unresolved":true,"context_lines":[{"line_number":383,"context_line":"\t\t\t}"},{"line_number":384,"context_line":"\t\t}"},{"line_number":385,"context_line":"\t}"},{"line_number":386,"context_line":"\tassert(target-\u003estate \u003d\u003d TARGET_HALTED);"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"\tif (target-\u003esmp) {"},{"line_number":389,"context_line":"\t\tforeach_smp_target(head, target-\u003esmp_targets) {"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"04b75c13_ab4024fa","line":386,"updated":"2022-06-03 16:01:08.000000000","message":"I disagree with the assert in this case.\nClearly there could be some problem that prevents the target to be halted (e.g. JTAG unreliable due to too high speed), but what you gain with an assert?\nBetter printing an error message and return. At least user can try some command to understand what happened!\nAssert should be used to guarantee that the code is correct, for example that a function does not receives a NULL pointer as parameter.\nRun-time errors should just return an error","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":383,"context_line":"\t\t\t}"},{"line_number":384,"context_line":"\t\t}"},{"line_number":385,"context_line":"\t}"},{"line_number":386,"context_line":"\tassert(target-\u003estate \u003d\u003d TARGET_HALTED);"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"\tif (target-\u003esmp) {"},{"line_number":389,"context_line":"\t\tforeach_smp_target(head, target-\u003esmp_targets) {"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"38617ba7_349e4237","line":386,"in_reply_to":"04b75c13_ab4024fa","updated":"2022-06-03 17:14:12.000000000","message":"Yes agreed. Also looks like at that point it is guaranteed that target is in halted state.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":398,"context_line":"\t\t\t\t\tLOG_TARGET_ERROR(head-\u003etarget, \"Failed to unstall CPUs before SW reset!\");"},{"line_number":399,"context_line":"\t\t\t\t\treturn res;"},{"line_number":400,"context_line":"\t\t\t\t}"},{"line_number":401,"context_line":"\t\t\t\tbreak;\t/* both cores are unstalled now, so exit the loop */"},{"line_number":402,"context_line":"\t\t\t}"},{"line_number":403,"context_line":"\t\t}"},{"line_number":404,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"403f1e00_70a3ea4f","line":401,"updated":"2022-06-02 18:14:23.000000000","message":"is comment correct?  it seems like this will cause the loop to only unstall the first core.  or is the break network connected asymmetrically?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0a818e5ff0a3af2b81f122bf4d507bd2b07074e9","unresolved":false,"context_lines":[{"line_number":398,"context_line":"\t\t\t\t\tLOG_TARGET_ERROR(head-\u003etarget, \"Failed to unstall CPUs before SW reset!\");"},{"line_number":399,"context_line":"\t\t\t\t\treturn res;"},{"line_number":400,"context_line":"\t\t\t\t}"},{"line_number":401,"context_line":"\t\t\t\tbreak;\t/* both cores are unstalled now, so exit the loop */"},{"line_number":402,"context_line":"\t\t\t}"},{"line_number":403,"context_line":"\t\t}"},{"line_number":404,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"d6a2610d_19ee6439","line":401,"in_reply_to":"403f1e00_70a3ea4f","updated":"2022-06-04 16:17:23.000000000","message":"Yes, comment is correct. Writing zero to the same register unstalls both cores.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"85e00eaf69d76c0231974d9b1dda68c0276d4c9a","unresolved":true,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"\tconst uint8_t esp32s3_reset_stub_code[] \u003d {"},{"line_number":407,"context_line":"\t#include \"contrib/loaders/reset/espressif/esp32s3/cpu_reset_handler_code.inc\""},{"line_number":408,"context_line":"\t};"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":411,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32s3_reset_stub_code)];"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"5c8dbe88_232f4081","line":408,"updated":"2022-06-03 16:01:08.000000000","message":"also here, move esp32s3_reset_stub_code[] \u003d{}; out of the function\nPlus use\n#include \"../../../contrib/what/ever/file.c\"","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"\tconst uint8_t esp32s3_reset_stub_code[] \u003d {"},{"line_number":407,"context_line":"\t#include \"contrib/loaders/reset/espressif/esp32s3/cpu_reset_handler_code.inc\""},{"line_number":408,"context_line":"\t};"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":411,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32s3_reset_stub_code)];"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"1d4207eb_55564d6e","line":408,"in_reply_to":"5c8dbe88_232f4081","updated":"2022-06-03 17:14:12.000000000","message":"Done","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":410,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":411,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32s3_reset_stub_code)];"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"\tconst int RTC_SLOW_MEM_BASE \u003d 0x50000000;"},{"line_number":414,"context_line":"\t/* Save contents of RTC_SLOW_MEM which we are about to overwrite */"},{"line_number":415,"context_line":"\tres \u003d target_read_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":416,"context_line":"\tif (res !\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"822b8378_5149305e","line":413,"updated":"2022-06-02 18:14:23.000000000","message":"should this be a define in a header file?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":410,"context_line":"\tLOG_DEBUG(\"Loading stub code into RTC RAM\");"},{"line_number":411,"context_line":"\tuint8_t slow_mem_save[sizeof(esp32s3_reset_stub_code)];"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"\tconst int RTC_SLOW_MEM_BASE \u003d 0x50000000;"},{"line_number":414,"context_line":"\t/* Save contents of RTC_SLOW_MEM which we are about to overwrite */"},{"line_number":415,"context_line":"\tres \u003d target_read_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":416,"context_line":"\tif (res !\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"6d1acf9f_02c53679","line":413,"in_reply_to":"822b8378_5149305e","updated":"2022-06-03 17:14:12.000000000","message":"Done","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":431,"context_line":"\tres \u003d xtensa_resume(target, 0, RTC_SLOW_MEM_BASE + 4, 0, 0);"},{"line_number":432,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":433,"context_line":"\t\tLOG_ERROR(\"Failed to run stub (%d)!\", res);"},{"line_number":434,"context_line":"\t\treturn res;"},{"line_number":435,"context_line":"\t}"},{"line_number":436,"context_line":"\txtensa-\u003esuppress_dsr_errors \u003d false;"},{"line_number":437,"context_line":"\tLOG_DEBUG(\"resume done, waiting for the target to come alive\");"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"f1767892_ea9c72c9","line":434,"updated":"2022-06-02 18:14:23.000000000","message":"dsr errors should be made active again before this error return?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":431,"context_line":"\tres \u003d xtensa_resume(target, 0, RTC_SLOW_MEM_BASE + 4, 0, 0);"},{"line_number":432,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":433,"context_line":"\t\tLOG_ERROR(\"Failed to run stub (%d)!\", res);"},{"line_number":434,"context_line":"\t\treturn res;"},{"line_number":435,"context_line":"\t}"},{"line_number":436,"context_line":"\txtensa-\u003esuppress_dsr_errors \u003d false;"},{"line_number":437,"context_line":"\tLOG_DEBUG(\"resume done, waiting for the target to come alive\");"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"87673ea0_46f9ccf5","line":434,"in_reply_to":"f1767892_ea9c72c9","updated":"2022-06-03 17:14:12.000000000","message":"Done","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":439,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":440,"context_line":"\talive_sleep(100);"},{"line_number":441,"context_line":"\tint timeout \u003d 100;"},{"line_number":442,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 --timeout \u003e 0) {"},{"line_number":443,"context_line":"\t\talive_sleep(10);"},{"line_number":444,"context_line":"\t\txtensa_poll(target);"},{"line_number":445,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"56e92131_2eee3a6d","line":442,"updated":"2022-06-02 18:14:23.000000000","message":"please add extra parentheses for readability","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":true,"context_lines":[{"line_number":439,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":440,"context_line":"\talive_sleep(100);"},{"line_number":441,"context_line":"\tint timeout \u003d 100;"},{"line_number":442,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 --timeout \u003e 0) {"},{"line_number":443,"context_line":"\t\talive_sleep(10);"},{"line_number":444,"context_line":"\t\txtensa_poll(target);"},{"line_number":445,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"d3300424_8cab8478","line":442,"in_reply_to":"56e92131_2eee3a6d","updated":"2022-06-03 17:14:12.000000000","message":"Ian, If compiler doesn\u0027t warn, for me adding extra parentheses not a good practice.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"f5d75719392597ba5506268993bc85dd054dd7ba","unresolved":false,"context_lines":[{"line_number":439,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":440,"context_line":"\talive_sleep(100);"},{"line_number":441,"context_line":"\tint timeout \u003d 100;"},{"line_number":442,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 --timeout \u003e 0) {"},{"line_number":443,"context_line":"\t\talive_sleep(10);"},{"line_number":444,"context_line":"\t\txtensa_poll(target);"},{"line_number":445,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"f52d90c8_1295af60","line":442,"in_reply_to":"d3300424_8cab8478","updated":"2022-06-03 17:18:41.000000000","message":"OK with me.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":461,"context_line":"\tLOG_DEBUG(\"restoring RTC_SLOW_MEM\");"},{"line_number":462,"context_line":"\tres \u003d target_write_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":463,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":464,"context_line":"\t\tLOG_ERROR(\"Failed to restore contents of RTC_SLOW_MEM (%d)!\", res);"},{"line_number":465,"context_line":"\t\treturn res;"},{"line_number":466,"context_line":"\t}"},{"line_number":467,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"e2e20e23_d370985a","line":464,"updated":"2022-06-02 18:14:23.000000000","message":"there are other error cases (above) where the memory region will not be restored.  is this memory that will be lost during the reset, or is it persistent?  wondering whether it needs to be restored at all or if additional care should be taken to ensure it\u0027s always preserved.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"0a818e5ff0a3af2b81f122bf4d507bd2b07074e9","unresolved":false,"context_lines":[{"line_number":461,"context_line":"\tLOG_DEBUG(\"restoring RTC_SLOW_MEM\");"},{"line_number":462,"context_line":"\tres \u003d target_write_buffer(target, RTC_SLOW_MEM_BASE, sizeof(slow_mem_save), slow_mem_save);"},{"line_number":463,"context_line":"\tif (res !\u003d ERROR_OK) {"},{"line_number":464,"context_line":"\t\tLOG_ERROR(\"Failed to restore contents of RTC_SLOW_MEM (%d)!\", res);"},{"line_number":465,"context_line":"\t\treturn res;"},{"line_number":466,"context_line":"\t}"},{"line_number":467,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"f3b4d531_d7ff71f9","line":464,"in_reply_to":"e2e20e23_d370985a","updated":"2022-06-04 16:17:23.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":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":537,"context_line":"static int esp32s3_virt2phys(struct target *target,"},{"line_number":538,"context_line":"\ttarget_addr_t virtual, target_addr_t *physical)"},{"line_number":539,"context_line":"{"},{"line_number":540,"context_line":"\t*physical \u003d virtual;"},{"line_number":541,"context_line":"\treturn ERROR_OK;"},{"line_number":542,"context_line":"}"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"7b7c32ef_9e082ef1","line":540,"updated":"2022-06-02 18:14:23.000000000","message":"is pointer guaranteed non-null or should it be checked here?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":537,"context_line":"static int esp32s3_virt2phys(struct target *target,"},{"line_number":538,"context_line":"\ttarget_addr_t virtual, target_addr_t *physical)"},{"line_number":539,"context_line":"{"},{"line_number":540,"context_line":"\t*physical \u003d virtual;"},{"line_number":541,"context_line":"\treturn ERROR_OK;"},{"line_number":542,"context_line":"}"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"8a839a1c_cbbc3657","line":540,"in_reply_to":"7b7c32ef_9e082ef1","updated":"2022-06-03 17:14:12.000000000","message":"Done","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":601,"context_line":"\t\t.chain \u003d esp_xtensa_smp_command_handlers,"},{"line_number":602,"context_line":"\t},"},{"line_number":603,"context_line":"\t{"},{"line_number":604,"context_line":"\t\t.name \u003d \"esp32\","},{"line_number":605,"context_line":"\t\t.usage \u003d \"\","},{"line_number":606,"context_line":"\t\t.chain \u003d smp_command_handlers,"},{"line_number":607,"context_line":"\t},"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"ab114195_d6d3ddaf","line":604,"updated":"2022-06-02 18:14:23.000000000","message":"should name be esp32s3?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":601,"context_line":"\t\t.chain \u003d esp_xtensa_smp_command_handlers,"},{"line_number":602,"context_line":"\t},"},{"line_number":603,"context_line":"\t{"},{"line_number":604,"context_line":"\t\t.name \u003d \"esp32\","},{"line_number":605,"context_line":"\t\t.usage \u003d \"\","},{"line_number":606,"context_line":"\t\t.chain \u003d smp_command_handlers,"},{"line_number":607,"context_line":"\t},"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"f10cd2a9_d42fff77","line":604,"in_reply_to":"ab114195_d6d3ddaf","updated":"2022-06-03 17:14:12.000000000","message":"esp32 is the common command name for our chips.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"9f851a315d1475dbdb4dcc6313244d913bc7e8f7","unresolved":true,"context_lines":[{"line_number":343,"context_line":" */"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"const uint8_t esp32s3_reset_stub_code[] \u003d {"},{"line_number":346,"context_line":"#include \"contrib/loaders/reset/espressif/esp32s3/cpu_reset_handler_code.inc\""},{"line_number":347,"context_line":"};"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"static int esp32s3_soc_reset(struct target *target)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"749e7e43_c246c136","line":346,"updated":"2022-06-11 10:57:16.000000000","message":"#include \"../../../contrib/loaders/reset/espressif/esp32s3/cpu_reset_handler_code.inc\"","commit_id":"730dd931f5d51fd99f3750fd95d635d1cf3c5c1e"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"4a5ed2415abef89aba1d299869d15e9581e0f859","unresolved":false,"context_lines":[{"line_number":343,"context_line":" */"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"const uint8_t esp32s3_reset_stub_code[] \u003d {"},{"line_number":346,"context_line":"#include \"contrib/loaders/reset/espressif/esp32s3/cpu_reset_handler_code.inc\""},{"line_number":347,"context_line":"};"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"static int esp32s3_soc_reset(struct target *target)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"0418ab47_b1189379","line":346,"in_reply_to":"749e7e43_c246c136","updated":"2022-06-11 16:33:06.000000000","message":"Done","commit_id":"730dd931f5d51fd99f3750fd95d635d1cf3c5c1e"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"9f851a315d1475dbdb4dcc6313244d913bc7e8f7","unresolved":true,"context_lines":[{"line_number":441,"context_line":""},{"line_number":442,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":443,"context_line":"\talive_sleep(100);"},{"line_number":444,"context_line":"\tint timeout \u003d 100;"},{"line_number":445,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 --timeout \u003e 0) {"},{"line_number":446,"context_line":"\t\talive_sleep(10);"},{"line_number":447,"context_line":"\t\txtensa_poll(target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"4ab65540_d6784365","line":444,"updated":"2022-06-11 10:57:16.000000000","message":"Can you please convert this \"counted\" timeout to something in \"time\" delay?\nUsing timeval_ms() as in src/target/xtensa/xtensa.c:xtensa_do_step().\nBy the way, I see the same counted timeout used in esp32s2.c and esp32.c; can be converted in a following patch?","commit_id":"730dd931f5d51fd99f3750fd95d635d1cf3c5c1e"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"4a5ed2415abef89aba1d299869d15e9581e0f859","unresolved":false,"context_lines":[{"line_number":441,"context_line":""},{"line_number":442,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":443,"context_line":"\talive_sleep(100);"},{"line_number":444,"context_line":"\tint timeout \u003d 100;"},{"line_number":445,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 --timeout \u003e 0) {"},{"line_number":446,"context_line":"\t\talive_sleep(10);"},{"line_number":447,"context_line":"\t\txtensa_poll(target);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"26bfdc54_b705fcca","line":444,"in_reply_to":"4ab65540_d6784365","updated":"2022-06-11 16:33:06.000000000","message":"Done for S3, I\u0027ll convert the others.","commit_id":"730dd931f5d51fd99f3750fd95d635d1cf3c5c1e"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"06789612bce4e291455726ce8d3d6dba792c12f0","unresolved":true,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":444,"context_line":"\talive_sleep(100);"},{"line_number":445,"context_line":"\tlong long timeout \u003d timeval_ms() + 100;"},{"line_number":446,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 timeval_ms() \u003c timeout) {"},{"line_number":447,"context_line":"\t\talive_sleep(10);"},{"line_number":448,"context_line":"\t\txtensa_poll(target);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"ceda73cd_f3564e0a","line":445,"updated":"2022-06-11 17:08:38.000000000","message":"s/long long/int64_t/","commit_id":"17bd319be18aa51938f31e29c3ac6b83126408fd"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"ca70312595c94c50bcc50e771d9f7fad2c295e8c","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"\t/* Wait for SoC to reset */"},{"line_number":444,"context_line":"\talive_sleep(100);"},{"line_number":445,"context_line":"\tlong long timeout \u003d timeval_ms() + 100;"},{"line_number":446,"context_line":"\twhile (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING \u0026\u0026 timeval_ms() \u003c timeout) {"},{"line_number":447,"context_line":"\t\talive_sleep(10);"},{"line_number":448,"context_line":"\t\txtensa_poll(target);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"0f03b330_c362b495","line":445,"in_reply_to":"ceda73cd_f3564e0a","updated":"2022-06-11 22:53:25.000000000","message":"Done","commit_id":"17bd319be18aa51938f31e29c3ac6b83126408fd"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"06789612bce4e291455726ce8d3d6dba792c12f0","unresolved":true,"context_lines":[{"line_number":447,"context_line":"\t\talive_sleep(10);"},{"line_number":448,"context_line":"\t\txtensa_poll(target);"},{"line_number":449,"context_line":"\t}"},{"line_number":450,"context_line":"\tif (timeval_ms() \u003e\u003d timeout) {"},{"line_number":451,"context_line":"\t\tLOG_TARGET_ERROR(target, \"Timed out waiting for CPU to be reset, target state\u003d%d\", target-\u003estate);"},{"line_number":452,"context_line":"\t\t/* First try to restore the memory before return ERROR_TARGET_TIMEOUT */"},{"line_number":453,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"aa5f36a1_2df29b69","line":450,"updated":"2022-06-11 17:08:38.000000000","message":"It is possible that it quit from the loop due to halt, but then the host OS reschedule before this call to timeval_ms() and we end in timeout.\n bool get_timeout \u003d false;\n while (target-\u003estate !\u003d TARGET_RESET \u0026\u0026 target-\u003estate !\u003d TARGET_RUNNING) {\n   alive_sleep(10);\n   xtensa_poll(target);\n   if (timeval_ms() \u003e\u003d timeout) {\n     LOG_TARGET_ERROR(...);\n     get_timeout \u003d false;\n     break;\n   }\n }","commit_id":"17bd319be18aa51938f31e29c3ac6b83126408fd"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"ca70312595c94c50bcc50e771d9f7fad2c295e8c","unresolved":false,"context_lines":[{"line_number":447,"context_line":"\t\talive_sleep(10);"},{"line_number":448,"context_line":"\t\txtensa_poll(target);"},{"line_number":449,"context_line":"\t}"},{"line_number":450,"context_line":"\tif (timeval_ms() \u003e\u003d timeout) {"},{"line_number":451,"context_line":"\t\tLOG_TARGET_ERROR(target, \"Timed out waiting for CPU to be reset, target state\u003d%d\", target-\u003estate);"},{"line_number":452,"context_line":"\t\t/* First try to restore the memory before return ERROR_TARGET_TIMEOUT */"},{"line_number":453,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"7b6f9c41_69e1e3a2","line":450,"in_reply_to":"aa5f36a1_2df29b69","updated":"2022-06-11 22:53:25.000000000","message":"Done","commit_id":"17bd319be18aa51938f31e29c3ac6b83126408fd"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"06789612bce4e291455726ce8d3d6dba792c12f0","unresolved":true,"context_lines":[{"line_number":465,"context_line":"\t\tLOG_TARGET_ERROR(target, \"Timed out waiting for CPU to be halted after SoC reset\");"},{"line_number":466,"context_line":"\t}"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"\treturn timeout \u003d\u003d 0 ? ERROR_TARGET_TIMEOUT : res;"},{"line_number":469,"context_line":"}"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"static int esp32s3_disable_wdts(struct target *target)"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"4ec3618a_33e09a66","line":468,"updated":"2022-06-11 17:08:38.000000000","message":"this is now broken\n return get_timeout ? ERROR_TARGET_TIMEOUT : res;","commit_id":"17bd319be18aa51938f31e29c3ac6b83126408fd"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"ca70312595c94c50bcc50e771d9f7fad2c295e8c","unresolved":false,"context_lines":[{"line_number":465,"context_line":"\t\tLOG_TARGET_ERROR(target, \"Timed out waiting for CPU to be halted after SoC reset\");"},{"line_number":466,"context_line":"\t}"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"\treturn timeout \u003d\u003d 0 ? ERROR_TARGET_TIMEOUT : res;"},{"line_number":469,"context_line":"}"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"static int esp32s3_disable_wdts(struct target *target)"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"63e09f3c_b19057a2","line":468,"in_reply_to":"4ec3618a_33e09a66","updated":"2022-06-11 22:53:25.000000000","message":"Sorry for taking your time. Now this is ok. Also changed for ESP32. Please check 6889","commit_id":"17bd319be18aa51938f31e29c3ac6b83126408fd"}],"tcl/mmr_helpers.tcl":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"85e00eaf69d76c0231974d9b1dda68c0276d4c9a","unresolved":true,"context_lines":[{"line_number":88,"context_line":"proc mmr_get_bitfield { ADDR MSB LSB } {"},{"line_number":89,"context_line":"\tset rval [memread32 $ADDR]"},{"line_number":90,"context_line":"    return normalize_bitfield $rval $MSB $LSB"},{"line_number":91,"context_line":"}"}],"source_content_type":"text/x-tcl","patch_set":3,"id":"5e3c3ce5_a7dc777f","line":91,"updated":"2022-06-03 16:01:08.000000000","message":"I know it\u0027s annoying, but I prefer you send this in a separate patch.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":88,"context_line":"proc mmr_get_bitfield { ADDR MSB LSB } {"},{"line_number":89,"context_line":"\tset rval [memread32 $ADDR]"},{"line_number":90,"context_line":"    return normalize_bitfield $rval $MSB $LSB"},{"line_number":91,"context_line":"}"}],"source_content_type":"text/x-tcl","patch_set":3,"id":"cec5a624_90a18301","line":91,"in_reply_to":"5e3c3ce5_a7dc777f","updated":"2022-06-03 17:14:12.000000000","message":"will do it.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"}],"tcl/target/esp32s3.cfg":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"85e00eaf69d76c0231974d9b1dda68c0276d4c9a","unresolved":true,"context_lines":[{"line_number":100,"context_line":"$_TARGETNAME_0 configure -event gdb-attach {"},{"line_number":101,"context_line":"\t$_TARGETNAME_0 xtensa smpbreak BreakIn BreakOut"},{"line_number":102,"context_line":"\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":103,"context_line":"\thalt"},{"line_number":104,"context_line":"\tif { [esp32s3_memprot_is_enabled] } {"},{"line_number":105,"context_line":"\t\t# \u0027reset halt\u0027 to disable memory protection and allow flasher to work correctly"},{"line_number":106,"context_line":"\t\techo \"Memory protection is enabled. Reset target to disable it...\""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"4f25ac15_bc6c2344","line":103,"updated":"2022-06-03 16:01:08.000000000","message":"halt 1000","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":100,"context_line":"$_TARGETNAME_0 configure -event gdb-attach {"},{"line_number":101,"context_line":"\t$_TARGETNAME_0 xtensa smpbreak BreakIn BreakOut"},{"line_number":102,"context_line":"\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":103,"context_line":"\thalt"},{"line_number":104,"context_line":"\tif { [esp32s3_memprot_is_enabled] } {"},{"line_number":105,"context_line":"\t\t# \u0027reset halt\u0027 to disable memory protection and allow flasher to work correctly"},{"line_number":106,"context_line":"\t\techo \"Memory protection is enabled. Reset target to disable it...\""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"7a12fb7d_3d3d7c45","line":103,"in_reply_to":"4f25ac15_bc6c2344","updated":"2022-06-03 17:14:12.000000000","message":"Done","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"85e00eaf69d76c0231974d9b1dda68c0276d4c9a","unresolved":true,"context_lines":[{"line_number":113,"context_line":"\t$_TARGETNAME_1 configure -event gdb-attach {"},{"line_number":114,"context_line":"\t\t$_TARGETNAME_1 xtensa smpbreak BreakIn BreakOut"},{"line_number":115,"context_line":"\t\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":116,"context_line":"\t\thalt"},{"line_number":117,"context_line":"\t\tif { [esp32s3_memprot_is_enabled] } {"},{"line_number":118,"context_line":"\t\t\t# \u0027reset halt\u0027 to disable memory protection and allow flasher to work correctly"},{"line_number":119,"context_line":"\t\t\techo \"Memory protection is enabled. Reset target to disable it...\""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"904d31f1_fc845748","line":116,"updated":"2022-06-03 16:01:08.000000000","message":"same","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":113,"context_line":"\t$_TARGETNAME_1 configure -event gdb-attach {"},{"line_number":114,"context_line":"\t\t$_TARGETNAME_1 xtensa smpbreak BreakIn BreakOut"},{"line_number":115,"context_line":"\t\t# necessary to auto-probe flash bank when GDB is connected"},{"line_number":116,"context_line":"\t\thalt"},{"line_number":117,"context_line":"\t\tif { [esp32s3_memprot_is_enabled] } {"},{"line_number":118,"context_line":"\t\t\t# \u0027reset halt\u0027 to disable memory protection and allow flasher to work correctly"},{"line_number":119,"context_line":"\t\t\techo \"Memory protection is enabled. Reset target to disable it...\""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"d9b55a5b_08928740","line":116,"in_reply_to":"904d31f1_fc845748","updated":"2022-06-03 17:14:12.000000000","message":"Done","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001982,"name":"Ian Thompson","email":"ianst@cadence.com","username":"ianstcdns"},"change_message_id":"3aed3600db53b70b7e53bf875172e8a37757fd06","unresolved":true,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"gdb_breakpoint_override hard"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"adapter speed 20000"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"5e6bac51_c1c5f13c","line":128,"updated":"2022-06-02 18:14:23.000000000","message":"in the earlier s2 review, was the consensus that adapter speed should go into the board files if possible?","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"},{"author":{"_account_id":1001964,"name":"Erhan Kurubas","display_name":"Erhan Kurubas","email":"erhan.kurubas@espressif.com","username":"erhankur"},"change_message_id":"9b2e79f97471991a28084da32b820a420a14e6ba","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"gdb_breakpoint_override hard"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"adapter speed 20000"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"d7892c1d_e4749642","line":128,"in_reply_to":"5e6bac51_c1c5f13c","updated":"2022-06-03 17:14:12.000000000","message":"Yes.Rebased and fixed.","commit_id":"5bdc3b41078915cb09ed30d0b3178dbd7cce0271"}]}
