)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"e55a8df7b7a6a32358da5f1882364ed23d708792","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"156184b3_20bcdc23","updated":"2025-06-10 15:57:32.000000000","message":"Ahmed, I tested with U385 nucleo. Mostly worked, just sector unprotecting failed. I protected a block of sectors (233 to 245) and issued `stm32l4x option_load 0` and `reset init`. Then tried erases and writes violating protection, all were refused correctly. After that I wanted to unprotect the block: the command always fails with FLASH_PGSERR. Could you please take a look?\n\n```\nDebug: 560 8042297 command.c:86 script_debug(): command - flash protect 0 233 245 off\nDebug: 561 8042298 target.c:2571 target_read_u32(): address: 0x40022040, value: 0x1feff0aa\nDebug: 562 8042299 target.c:2571 target_read_u32(): address: 0x40022058, value: 0xff80ffff\nDebug: 563 8042299 target.c:2571 target_read_u32(): address: 0x4002205c, value: 0xff80ffff\nDebug: 564 8042300 target.c:2571 target_read_u32(): address: 0x40022068, value: 0x7ff5ffe9\nDebug: 565 8042301 target.c:2571 target_read_u32(): address: 0x4002206c, value: 0x7f80ff81\nDebug: 566 8042302 target.c:2571 target_read_u32(): address: 0x40022068, value: 0x7ff5ffe9\nDebug: 567 8042303 target.c:2571 target_read_u32(): address: 0x4002206c, value: 0x7f80ff81\nDebug: 568 8042303 stm32l4x.c:1474 stm32l4_protect_same_bank(): current protected areas: [233,245]\nDebug: 569 8042303 stm32l4x.c:1496 stm32l4_protect_same_bank(): requested areas for protection: none\nDebug: 570 8042303 target.c:2571 target_read_u32(): address: 0x40022068, value: 0x7ff5ffe9\nDebug: 571 8042304 target.c:2571 target_read_u32(): address: 0x40022028, value: 0xc0000000\nDebug: 572 8042304 target.c:2659 target_write_u32(): address: 0x40022008, value: 0x45670123\nDebug: 573 8042305 target.c:2659 target_write_u32(): address: 0x40022008, value: 0xcdef89ab\nDebug: 574 8042307 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x40000000\nDebug: 575 8042308 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x40000000\nDebug: 576 8042308 target.c:2659 target_write_u32(): address: 0x40022010, value: 0x08192a3b\nDebug: 577 8042308 target.c:2659 target_write_u32(): address: 0x40022010, value: 0x4c5d6e7f\nDebug: 578 8042310 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x00000000\nDebug: 579 8042310 target.c:2659 target_write_u32(): address: 0x40022068, value: 0x00000001\nDebug: 580 8042311 target.c:2659 target_write_u32(): address: 0x40022028, value: 0x00020000\nDebug: 581 8042312 target.c:2571 target_read_u32(): address: 0x40022020, value: 0x00002000\nDebug: 582 8042312 stm32l4x.c:993 stm32l4_wait_status_busy(): status: 0x2000\nDebug: 583 8042313 target.c:2659 target_write_u32(): address: 0x40022028, value: 0xc0000000\nDebug: 584 8042314 target.c:2571 target_read_u32(): address: 0x4002206c, value: 0x7f80ff81\nDebug: 585 8042315 target.c:2571 target_read_u32(): address: 0x40022028, value: 0xc0000000\nDebug: 586 8042315 target.c:2659 target_write_u32(): address: 0x40022008, value: 0x45670123\nDebug: 587 8042316 target.c:2659 target_write_u32(): address: 0x40022008, value: 0xcdef89ab\nDebug: 588 8042317 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x40000000\nDebug: 589 8042318 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x40000000\nDebug: 590 8042318 target.c:2659 target_write_u32(): address: 0x40022010, value: 0x08192a3b\nDebug: 591 8042319 target.c:2659 target_write_u32(): address: 0x40022010, value: 0x4c5d6e7f\nDebug: 592 8042321 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x00000000\nDebug: 593 8042321 target.c:2659 target_write_u32(): address: 0x4002206c, value: 0x00000001\nDebug: 594 8042321 target.c:2659 target_write_u32(): address: 0x40022028, value: 0x00020000\nDebug: 595 8042323 target.c:2571 target_read_u32(): address: 0x40022020, value: 0x00002080\nDebug: 596 8042323 stm32l4x.c:993 stm32l4_wait_status_busy(): status: 0x2080\nDebug: 597 8042323 target.c:2659 target_write_u32(): address: 0x40022020, value: 0x00000080\nDebug: 598 8042324 target.c:2659 target_write_u32(): address: 0x40022028, value: 0xc0000000\nError: 599 8042325 core.c:80 flash_driver_protect(): failed setting protection for blocks 233 to 245\nDebug: 600 8042325 command.c:457 exec_command(): Command \u0027flash protect\u0027 failed with error code -4\n```","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"7c8e9b51125a1e380efaed191ca5522e7aebfb12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dcf3adf3_365189d0","updated":"2025-05-23 16:57:53.000000000","message":"BTW Ahmed, could you (or anybody else from ST) submit the H5 flash driver?\nIt would be nice to have it in upcoming release.","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"56c1679e79314865f364469996a68e991f51c59a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a01b7512_1dd641c1","updated":"2025-07-06 04:53:44.000000000","message":"Please add  \n8981: flash/nor/stm32l4x: fix permanent write protection on STM32U5 | https://review.openocd.org/c/openocd/+/8981","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a837aee8_35ebc6fc","updated":"2025-05-23 16:52:56.000000000","message":"Thanks.\nI have a Nucleo U385 on the way. I\u0027ll test the patch on hw ASAP.","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"67d6d82877fbd89400318c7bb78b93b92d6a8c66","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a8112a43_449667ba","in_reply_to":"156184b3_20bcdc23","updated":"2025-07-02 15:20:31.000000000","message":"Unprotecting works well on STM34L4R5 with this patch but similarly fails on STM32U5A5 without this patch (as well as @ commit 6554d176e926e1e (flash/stm32l4x: support STM32U59/U5Ax devices). So the problem is not in this patch, it\u0027s in the stm32l4x flash driver, most probably the unprotecting never worked on U5/U3 devices.\n\n```\nDebug: 70 363367 command.c:86 script_debug(): command - flash protect 0 487 500 off\nDebug: 71 363367 target.c:2571 target_read_u32(): address: 0x40022040, value: 0x1feff8aa\nDebug: 72 363367 target.c:2571 target_read_u32(): address: 0x40022058, value: 0xff00ffff\nDebug: 73 363367 target.c:2571 target_read_u32(): address: 0x4002205c, value: 0xff00ffff\nDebug: 74 363367 target.c:2571 target_read_u32(): address: 0x40022068, value: 0x7ff4ffe7\nDebug: 75 363367 target.c:2571 target_read_u32(): address: 0x4002206c, value: 0x7f00ff01\nDebug: 76 363368 target.c:2571 target_read_u32(): address: 0x40022068, value: 0x7ff4ffe7\nDebug: 77 363368 target.c:2571 target_read_u32(): address: 0x4002206c, value: 0x7f00ff01\nDebug: 78 363368 stm32l4x.c:1474 stm32l4_protect_same_bank(): current protected areas: [487,500]\nDebug: 79 363368 stm32l4x.c:1496 stm32l4_protect_same_bank(): requested areas for protection: none\nDebug: 80 363368 target.c:2571 target_read_u32(): address: 0x40022068, value: 0x7ff4ffe7\nDebug: 81 363368 target.c:2571 target_read_u32(): address: 0x40022028, value: 0xc0000000\nDebug: 82 363368 target.c:2659 target_write_u32(): address: 0x40022008, value: 0x45670123\nDebug: 83 363368 target.c:2659 target_write_u32(): address: 0x40022008, value: 0xcdef89ab\nDebug: 84 363368 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x40000000\nDebug: 85 363368 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x40000000\nDebug: 86 363369 target.c:2659 target_write_u32(): address: 0x40022010, value: 0x08192a3b\nDebug: 87 363369 target.c:2659 target_write_u32(): address: 0x40022010, value: 0x4c5d6e7f\nDebug: 88 363369 target.c:2571 target_read_u32(): address: 0x40022028, value: 0x00000000\nDebug: 89 363369 target.c:2659 target_write_u32(): address: 0x40022068, value: 0x00000001\nDebug: 90 363369 target.c:2659 target_write_u32(): address: 0x40022028, value: 0x00020000\nDebug: 91 363369 target.c:2571 target_read_u32(): address: 0x40022020, value: 0x00002080\nDebug: 92 363369 stm32l4x.c:993 stm32l4_wait_status_busy(): status: 0x2080\nDebug: 93 363369 target.c:2659 target_write_u32(): address: 0x40022020, value: 0x00000080\nDebug: 94 363369 target.c:2659 target_write_u32(): address: 0x40022028, value: 0xc0000000\nError: 95 363369 core.c:80 flash_driver_protect(): failed setting protection for blocks 487 to 500\nDebug: 96 363370 command.c:457 exec_command(): Command \u0027flash protect\u0027 failed with error code -4\n```","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"95f146ac7f3a82c025ace593717e8a36f361810b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6318f52b_96874274","in_reply_to":"3de0cce7_679b5e7d","updated":"2025-07-28 08:15:17.000000000","message":"Unfortunately I\u0027m unable to test the new version as both U3 devices I have are permanently locked after previous tests. I believe it works now as it does on U5.\n\nBTW Ahmed, could you please arrange sending of a replacement dev kits from ST?\nI know there is no warranty in OpenOCD at all so I locked them on my own risk, on the other hand I would appreciate to be able to test in full range again.","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1002386,"name":"Ahmed Haoues","email":"ahmed.haoues@st.com","username":"ahmed-haoues"},"change_message_id":"7bd073a3e19bfefee467014d9a45ba0a3b8675d5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b4b8fabe_062dbbab","in_reply_to":"6318f52b_96874274","updated":"2025-08-07 13:46:32.000000000","message":"Thank you for your message. I will check with my manager regarding the possibility of sending replacement dev kits after the summer vacation period and will update you as soon as I have more information.","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"56c1679e79314865f364469996a68e991f51c59a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0d9ef55d_35b98a8b","in_reply_to":"8540fb8f_9fe186a5","updated":"2025-07-06 04:53:44.000000000","message":"Ack","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"56c1679e79314865f364469996a68e991f51c59a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9f571fa0_fa7b5ab5","in_reply_to":"87fc2ddb_54ebafdd","updated":"2025-07-06 04:53:44.000000000","message":"Please add F_WRP_HAS_LOCK flag as I recently used for U5 fix:\n8981: flash/nor/stm32l4x: fix permanent write protection on STM32U5 | https://review.openocd.org/c/openocd/+/8981\n\nDon\u0027t forget to test including WRP functionality!","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1002386,"name":"Ahmed Haoues","email":"ahmed.haoues@st.com","username":"ahmed-haoues"},"change_message_id":"d68b8bb7026e1a887bb3467aef5f3b484a569923","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3de0cce7_679b5e7d","in_reply_to":"9f571fa0_fa7b5ab5","updated":"2025-07-07 13:59:42.000000000","message":"Thank you Tomas, for identifying and resolving the issue.\nI have add the F_WRP_HAS_LOCK flag and verified that the WRP functionality is working correctly","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"b712d0c835d9c5a798730402d9900dfa791353c6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"87fc2ddb_54ebafdd","in_reply_to":"a8112a43_449667ba","updated":"2025-07-02 16:10:15.000000000","message":"I found the issue: the bit `UNLOCK` of FLASH_WRPxyR registers is written zero by the flash driver and on U3/U5 devices this means the protection is permanently locked. Oh shit it seems I permanently locked the protection on 3 of my testing devices.","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"},{"author":{"_account_id":1002386,"name":"Ahmed Haoues","email":"ahmed.haoues@st.com","username":"ahmed-haoues"},"change_message_id":"ef0f8d683c6ded4c2eebe44395a4c77630c35c49","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8540fb8f_9fe186a5","in_reply_to":"dcf3adf3_365189d0","updated":"2025-05-26 09:16:33.000000000","message":"Hello Tomas, we have already a plan to do this ASAP with the help of my colleague Tarek BOCHATI.\nFYI, internally (also available in ST GitHub) we have created a separate driver for H5. However, for upstream we want to merge it with H7 flash driver.","commit_id":"d164b62a4e6b76fd6cee7cd2af320a10d8e7ea21"}],"src/flash/nor/stm32l4x.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"fa9f63327adfde9acfbd0671b3a97ba2b321351a","unresolved":true,"context_lines":[{"line_number":1355,"context_line":"\t4. Wait for the BSY bit to be cleared"},{"line_number":1356,"context_line":"\t */"},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"\tretval \u003d stm32l4_wait_status_busy(bank, FLASH_ERASE_TIMEOUT);"},{"line_number":1359,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":1360,"context_line":"\t\tgoto err_lock;"},{"line_number":1361,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"3d07d210_51d27158","line":1358,"updated":"2025-05-08 12:28:41.000000000","message":"Please mention this change in the commit message.\nNext time prefer a separate patch for a code change not directly related to the new introduced device and influencing all other devices served by the flash driver.","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"\t4. Wait for the BSY bit to be cleared"},{"line_number":1356,"context_line":"\t */"},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"\tretval \u003d stm32l4_wait_status_busy(bank, FLASH_ERASE_TIMEOUT);"},{"line_number":1359,"context_line":"\tif (retval !\u003d ERROR_OK)"},{"line_number":1360,"context_line":"\t\tgoto err_lock;"},{"line_number":1361,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"c6ae749e_44b4deed","line":1358,"in_reply_to":"3d07d210_51d27158","updated":"2025-05-23 16:52:56.000000000","message":"Done","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"}],"tcl/target/stm32u3x.cfg":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"fa9f63327adfde9acfbd0671b3a97ba2b321351a","unresolved":true,"context_lines":[{"line_number":18,"context_line":"# we need to set the voltage scale to range 1"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"proc config_voltage_range {} {"},{"line_number":21,"context_line":"    mmw 0x40030C94 0x4 0"},{"line_number":22,"context_line":"    if {(([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001)} {"},{"line_number":23,"context_line":"        mmw 0x40030810 0x20000000 0"},{"line_number":24,"context_line":"        set voltage_range [expr {[mrw 0x4003080C] \u0026 ~0x3}]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"5113a1af_ff443ad9","line":21,"updated":"2025-05-08 12:28:41.000000000","message":"Please comment what bits in what register are modified.\nWould it work in secure mode, in which reg addresses 0x500xxxxx are used?\nSee e.g. `stm32u5x_clock_config`\n\nAlso set variable for multiple used registers, like\n`set PWR_VOSR 0x4003080C`","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[{"line_number":18,"context_line":"# we need to set the voltage scale to range 1"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"proc config_voltage_range {} {"},{"line_number":21,"context_line":"    mmw 0x40030C94 0x4 0"},{"line_number":22,"context_line":"    if {(([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001)} {"},{"line_number":23,"context_line":"        mmw 0x40030810 0x20000000 0"},{"line_number":24,"context_line":"        set voltage_range [expr {[mrw 0x4003080C] \u0026 ~0x3}]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"b9b030b4_6c934746","line":21,"in_reply_to":"5113a1af_ff443ad9","updated":"2025-05-23 16:52:56.000000000","message":"Done","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"fa9f63327adfde9acfbd0671b3a97ba2b321351a","unresolved":true,"context_lines":[{"line_number":21,"context_line":"    mmw 0x40030C94 0x4 0"},{"line_number":22,"context_line":"    if {(([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001)} {"},{"line_number":23,"context_line":"        mmw 0x40030810 0x20000000 0"},{"line_number":24,"context_line":"        set voltage_range [expr {[mrw 0x4003080C] \u0026 ~0x3}]"},{"line_number":25,"context_line":"        set voltage_range [expr {$voltage_range | 0x1}]"},{"line_number":26,"context_line":"        mww 0x4003080C $voltage_range"},{"line_number":27,"context_line":"        while {([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001} {}"},{"line_number":28,"context_line":"        while {([mrw 0x4003080C] \u0026 0x1000000) !\u003d 0} {}"},{"line_number":29,"context_line":"        mww 0x40030C94 0x0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"75304d44_5a85a84d","line":26,"range":{"start_line":24,"start_character":8,"end_line":26,"end_character":37},"updated":"2025-05-08 12:28:41.000000000","message":"This is exactly what `mmw` does. Why not use\n`mww 0x4003080C 1 3`\n?","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    mmw 0x40030C94 0x4 0"},{"line_number":22,"context_line":"    if {(([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001)} {"},{"line_number":23,"context_line":"        mmw 0x40030810 0x20000000 0"},{"line_number":24,"context_line":"        set voltage_range [expr {[mrw 0x4003080C] \u0026 ~0x3}]"},{"line_number":25,"context_line":"        set voltage_range [expr {$voltage_range | 0x1}]"},{"line_number":26,"context_line":"        mww 0x4003080C $voltage_range"},{"line_number":27,"context_line":"        while {([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001} {}"},{"line_number":28,"context_line":"        while {([mrw 0x4003080C] \u0026 0x1000000) !\u003d 0} {}"},{"line_number":29,"context_line":"        mww 0x40030C94 0x0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"5c93cec8_23dbd2f3","line":26,"range":{"start_line":24,"start_character":8,"end_line":26,"end_character":37},"in_reply_to":"75304d44_5a85a84d","updated":"2025-05-23 16:52:56.000000000","message":"Done","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"fa9f63327adfde9acfbd0671b3a97ba2b321351a","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        set voltage_range [expr {$voltage_range | 0x1}]"},{"line_number":26,"context_line":"        mww 0x4003080C $voltage_range"},{"line_number":27,"context_line":"        while {([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001} {}"},{"line_number":28,"context_line":"        while {([mrw 0x4003080C] \u0026 0x1000000) !\u003d 0} {}"},{"line_number":29,"context_line":"        mww 0x40030C94 0x0"},{"line_number":30,"context_line":"\t}"},{"line_number":31,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"f7a2fa7d_6d3ec817","line":28,"updated":"2025-05-08 12:28:41.000000000","message":"Wait for BOOSTRDY \u003d\u003d 0\nWhy? BOOSTEN was not reset before","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        set voltage_range [expr {$voltage_range | 0x1}]"},{"line_number":26,"context_line":"        mww 0x4003080C $voltage_range"},{"line_number":27,"context_line":"        while {([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001} {}"},{"line_number":28,"context_line":"        while {([mrw 0x4003080C] \u0026 0x1000000) !\u003d 0} {}"},{"line_number":29,"context_line":"        mww 0x40030C94 0x0"},{"line_number":30,"context_line":"\t}"},{"line_number":31,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"7ad7f6e1_4ded76b5","line":28,"in_reply_to":"f7a2fa7d_6d3ec817","updated":"2025-05-23 16:52:56.000000000","message":"Done","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"fa9f63327adfde9acfbd0671b3a97ba2b321351a","unresolved":true,"context_lines":[{"line_number":26,"context_line":"        mww 0x4003080C $voltage_range"},{"line_number":27,"context_line":"        while {([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001} {}"},{"line_number":28,"context_line":"        while {([mrw 0x4003080C] \u0026 0x1000000) !\u003d 0} {}"},{"line_number":29,"context_line":"        mww 0x40030C94 0x0"},{"line_number":30,"context_line":"\t}"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"606242da_7392f205","line":29,"updated":"2025-05-08 12:28:41.000000000","message":"Do not switch PWR clocks off to avoid conflict with target firmware","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        mww 0x4003080C $voltage_range"},{"line_number":27,"context_line":"        while {([mrw 0x4003080C] \u0026 0x10001) !\u003d 0x10001} {}"},{"line_number":28,"context_line":"        while {([mrw 0x4003080C] \u0026 0x1000000) !\u003d 0} {}"},{"line_number":29,"context_line":"        mww 0x40030C94 0x0"},{"line_number":30,"context_line":"\t}"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"363fc52f_be4bf1e3","line":29,"in_reply_to":"606242da_7392f205","updated":"2025-05-23 16:52:56.000000000","message":"Done","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"fa9f63327adfde9acfbd0671b3a97ba2b321351a","unresolved":true,"context_lines":[{"line_number":30,"context_line":"\t}"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"$_TARGETNAME configure -event examine-end {"},{"line_number":34,"context_line":"\tconfig_voltage_range"},{"line_number":35,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"a547df7a_fdc7d9f7","line":33,"range":{"start_line":33,"start_character":30,"end_line":33,"end_character":41},"updated":"2025-05-08 12:28:41.000000000","message":"IMO the event selection is wrong.\n- `examine-end` event is used in stm32x5x_common.cfg and this overwrites the previous definition\n- it may collide with target firmware as examination is possible on running target\n- setting VOS range is needed before flash programming only, so it should go to `reset-init` event","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"6e47326efa3b018d88d6ac3380960f7e02d67ffe","unresolved":false,"context_lines":[{"line_number":30,"context_line":"\t}"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"$_TARGETNAME configure -event examine-end {"},{"line_number":34,"context_line":"\tconfig_voltage_range"},{"line_number":35,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"9a508237_cf387008","line":33,"range":{"start_line":33,"start_character":30,"end_line":33,"end_character":41},"in_reply_to":"a547df7a_fdc7d9f7","updated":"2025-05-23 16:52:56.000000000","message":"Done","commit_id":"10aba1e0cf871470eca4a444474cf5460c379926"}]}
