)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"b86ff7b164a804e75f3e70be1a68c9f25f8f8ede","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5275a5d6_e7c5cf25","updated":"2023-12-31 13:42:56.000000000","message":"Since I do not have access to the original issue #7404 I have reflected the changes needed to this new patch.\n\nThe issue with this version of the driver is that in the previous issue, it was not in a functional state. The #7739 is functional implementation and I will try to find the issues in this implementation.\n\n\nAdditionally, I have pushed a TCL script that performs the modem update for the nRF91. The must be a discussion regarding the python utility script that I have added for its functionality. The script is currently functional with the #7404.","commit_id":"6491bb86bd2a72a6745251b667b5a74c6df16e86"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"141871c7f1c82568e9638cd8061f43084d34b75d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c4a50c77_fa59ddef","in_reply_to":"32d44e9e_73d6befa","updated":"2023-12-31 14:02:28.000000000","message":"I will rewrite the changes from the master again. To remove the hassle of debugging this. \n\nWill post a functional patchset at least for nRF9160 and nRF52840/nRF52833 series.","commit_id":"6491bb86bd2a72a6745251b667b5a74c6df16e86"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"9abd239c162a38fb0bf4eb25512b2ebbd9159b50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"32d44e9e_73d6befa","in_reply_to":"5275a5d6_e7c5cf25","updated":"2023-12-31 13:54:16.000000000","message":"Now I know how to add a new patchset to Gerrit I might have added it to #7404. Should I revert to that issue?","commit_id":"6491bb86bd2a72a6745251b667b5a74c6df16e86"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cc6f1ae7_f7fe5849","updated":"2024-01-04 08:00:07.000000000","message":"Check jenkins build errors. Use TARGET_ADDR_FMT for printing target_addr_t type, however all failed LOG_INFOs seem superfluous.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"3a911838ee736ec36b70bbedc92dce8682c57f87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"07dc72c9_fdd6544a","updated":"2024-01-21 13:02:07.000000000","message":"The current state of this patch is that I\u0027m capable of using this implementation with Zephyr NCS. I\u0027m able to flash a firmware containing both flash banks(Main, UICR). I am also working implementation of the Modem Firmware Update that I will submit as a separate patch.\n\nI would appreciate it if you would try to use the openocd with the older nrf51s that we should still be working on.","commit_id":"0d581f07f8020151d39ceaa1800a12c10fcf2d64"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"a9d383277f2f78ec7636fede64788e3b44350a96","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"24c8657f_bd5e4224","updated":"2024-01-25 09:10:55.000000000","message":"Tomáši,\n\nSorry for delay.\nI got nRF53 and nRF91 dev boards last week.\nBecause I don\u0027t like the naming of nRF53 nRF91 common parts as nrf91\nand I suspected nRF53 would bring more challenges I reworked the\nflash driver again.\n\nPlease see the series around\n8112: flash/nor/nrf5: add basic nRF53 and nRF91 support | https://review.openocd.org/c/openocd/+/8112\n\nPlease give them a try!\nUse the top change from the relation chain:\ngit fetch ssh://vanekt@review.openocd.org:29418/openocd refs/changes/15/8115/1 \u0026\u0026 git checkout -b change-8115 FETCH_HEAD\n\nDuring testing I faced another problem with SWD WAIT.\nI admit this is the long term problem of OpenOCD SWD core\nand it is far from ideal to workaround it in the flash driver.\n\nThe device stalls the bus until the page is erased.\nIt takes up to 87ms and any debug access it this time window\nresults in SWD WAIT.\n\nHere is flash erase log of your patch and nRF9161 DK:\n```\nInfo : J-Link OB-nRF5340-NordicSemi compiled Nov  7 2022 16:22:01\nInfo : Hardware version: 1.00\n```\n```\n\u003e flash erase_sector 0 0 0\nAuto-Probing flash bank 0x00000000\nnRF9120-CIAA(build code: C0) 1024kB Flash, 256kB RAM\nProbing flash bank 0x00000000\nErase Bank 0x00000000\nProbing flash bank 0x00000000\nErasing page at 0x0\nSWD DPIDR 0x6ba02477\nFailed to read memory and, additionally, failed to find out where\nError waiting NVMC_READY: generic flash write/erase error (check protection etc...)\nSWD DPIDR 0x6ba02477\nFailed to enable read-only operation\n** Failed to erase reg: 0x00000000 val: 0xffffffff\nError erasing sector 0\nfailed erasing sectors 0 to 0\n \nSWD DPIDR 0x6ba02477\nPolling target nrf9160.cpu failed, trying to reexamine\nSWD DPIDR 0x6ba02477\n[nrf9160.cpu] Examination failed\nSWD DPIDR 0x6ba02477\nExamination failed, GDB will be halted. Polling again in 100ms\nSWD DPIDR 0x6ba02477\nPolling target nrf9160.cpu failed, trying to reexamine\n[nrf9160.cpu] Cortex-M33 r0p2 processor detected\n[nrf9160.cpu] target has 8 breakpoints, 4 watchpoints\n[nrf9160.cpu] Examination succeed\n\n```","commit_id":"a7369a129f4866cae97ed538ca4f4ae6d5ee8fcc"}],"src/flash/nor/drivers.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":53,"context_line":"\t\u0026npcx_flash,"},{"line_number":54,"context_line":"\t\u0026nrf5_flash,"},{"line_number":55,"context_line":"\t\u0026nrf51_flash,"},{"line_number":56,"context_line":"\t\u0026nrf52_flash,"},{"line_number":57,"context_line":"\t\u0026nrf91_flash,"},{"line_number":58,"context_line":"\t\u0026numicro_flash,"},{"line_number":59,"context_line":"\t\u0026ocl_flash,"},{"line_number":60,"context_line":"\t\u0026pic32mx_flash,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"4a798282_67d094b5","line":57,"range":{"start_line":56,"start_character":1,"end_line":57,"end_character":13},"updated":"2024-01-04 08:00:07.000000000","message":"Please don\u0027t add new driver names for any series when autodetect is possible.\nnrf5 is just fine for all, deprecated nrf51 serves for backwards compatibility only and should be removed soon.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"fd9c9c9a55c7008381d4561b021a42ceeb00b229","unresolved":true,"context_lines":[{"line_number":53,"context_line":"\t\u0026npcx_flash,"},{"line_number":54,"context_line":"\t\u0026nrf5_flash,"},{"line_number":55,"context_line":"\t\u0026nrf51_flash,"},{"line_number":56,"context_line":"\t\u0026nrf52_flash,"},{"line_number":57,"context_line":"\t\u0026nrf91_flash,"},{"line_number":58,"context_line":"\t\u0026numicro_flash,"},{"line_number":59,"context_line":"\t\u0026ocl_flash,"},{"line_number":60,"context_line":"\t\u0026pic32mx_flash,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"6fa6ff3f_e14b5a47","line":57,"range":{"start_line":56,"start_character":1,"end_line":57,"end_character":13},"in_reply_to":"4a798282_67d094b5","updated":"2024-01-04 08:44:54.000000000","message":"Should I unite them under the name nrfx_flash? \nI should probably limit the functionality of the nrf5_handle_info_command to the nrf5x series and leave it available for all of the implementations ?","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":false,"context_lines":[{"line_number":53,"context_line":"\t\u0026npcx_flash,"},{"line_number":54,"context_line":"\t\u0026nrf5_flash,"},{"line_number":55,"context_line":"\t\u0026nrf51_flash,"},{"line_number":56,"context_line":"\t\u0026nrf52_flash,"},{"line_number":57,"context_line":"\t\u0026nrf91_flash,"},{"line_number":58,"context_line":"\t\u0026numicro_flash,"},{"line_number":59,"context_line":"\t\u0026ocl_flash,"},{"line_number":60,"context_line":"\t\u0026pic32mx_flash,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b0b0aad5_b7a30ae7","line":57,"range":{"start_line":56,"start_character":1,"end_line":57,"end_character":13},"in_reply_to":"6fa6ff3f_e14b5a47","updated":"2024-01-21 11:31:09.000000000","message":"Ack","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"}],"src/flash/nor/nrf5.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":138,"context_line":"struct nrf5_info {"},{"line_number":139,"context_line":"\tunsigned int refcount;"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"\tstruct nrf5_bank {"},{"line_number":142,"context_line":"\t\tstruct nrf5_info *chip;"},{"line_number":143,"context_line":"\t\tbool probed;"},{"line_number":144,"context_line":"\t} bank[2];"},{"line_number":145,"context_line":"\tstruct target *target;"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\t/* chip identification stored in nrf5_probe() for use in nrf5_info() */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"72e941bf_ae10239e","side":"PARENT","line":144,"range":{"start_line":141,"start_character":1,"end_line":144,"end_character":11},"updated":"2024-01-04 08:00:07.000000000","message":"This correctly reflected chip structure with two banks of flash.\nYour change to ctx seems me as a step back.\nIt also generated lot of changes in the source, which complicates the review process.","commit_id":"5c53034d85480d0855394c4683733f61b27b6c5e"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"361fd922e1ba013cd470eb49360d38081a5f7956","unresolved":true,"context_lines":[{"line_number":138,"context_line":"struct nrf5_info {"},{"line_number":139,"context_line":"\tunsigned int refcount;"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"\tstruct nrf5_bank {"},{"line_number":142,"context_line":"\t\tstruct nrf5_info *chip;"},{"line_number":143,"context_line":"\t\tbool probed;"},{"line_number":144,"context_line":"\t} bank[2];"},{"line_number":145,"context_line":"\tstruct target *target;"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\t/* chip identification stored in nrf5_probe() for use in nrf5_info() */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"4bc8a4e7_de28b8de","side":"PARENT","line":144,"range":{"start_line":141,"start_character":1,"end_line":144,"end_character":11},"in_reply_to":"3da8811d_f00234de","updated":"2024-01-04 08:51:15.000000000","message":"Additionally, the nRF53 series is more like two independent MCUs in one. So it will not probably help with future implementation. For the implementation it would probably be better to use additional targets instead of implementing additional memory banks.\n\nBut I\u0027m not really proficient with the OpenOCD approach to this.\n\nWill leave this up to you.","commit_id":"5c53034d85480d0855394c4683733f61b27b6c5e"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"38b6b3397586509d89abcae9b7cd36390a6dc8b2","unresolved":true,"context_lines":[{"line_number":138,"context_line":"struct nrf5_info {"},{"line_number":139,"context_line":"\tunsigned int refcount;"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"\tstruct nrf5_bank {"},{"line_number":142,"context_line":"\t\tstruct nrf5_info *chip;"},{"line_number":143,"context_line":"\t\tbool probed;"},{"line_number":144,"context_line":"\t} bank[2];"},{"line_number":145,"context_line":"\tstruct target *target;"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\t/* chip identification stored in nrf5_probe() for use in nrf5_info() */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3da8811d_f00234de","side":"PARENT","line":144,"range":{"start_line":141,"start_character":1,"end_line":144,"end_character":11},"in_reply_to":"72e941bf_ae10239e","updated":"2024-01-04 08:41:28.000000000","message":"For me, it seemed that all of the information inside the chip information confusing and not utilized. The probed property was just confusing to read and added unnecessary complexity.\n\nWhat is in your opinion the benefit of creating multiple bank contexts of all of the information supplied by the flash_bank structure?\nI can return the structure however currently there are not properties that would go into the structure.","commit_id":"5c53034d85480d0855394c4683733f61b27b6c5e"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":777,"context_line":"\t(void)nrf5_read_ficr_info(chip);"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"\tchip-\u003espec \u003d NULL;"},{"line_number":780,"context_line":"\tfor (size_t i \u003d 0; i \u003c ARRAY_SIZE(nrf5_known_devices_table); i++) {"},{"line_number":781,"context_line":"\t\tif (chip-\u003ehwid \u003d\u003d nrf5_known_devices_table[i].hwid) {"},{"line_number":782,"context_line":"\t\t\tchip-\u003espec \u003d \u0026nrf5_known_devices_table[i];"},{"line_number":783,"context_line":"\t\t\tchip-\u003efeatures \u003d chip-\u003espec-\u003efeatures;"},{"line_number":784,"context_line":"\t\t\tbreak;"},{"line_number":785,"context_line":"\t\t}"},{"line_number":786,"context_line":"\t}"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"\tif (chip-\u003espec \u0026\u0026 chip-\u003eficr_info_valid) {"},{"line_number":789,"context_line":"\t\t/* check if HWID table gives the same part as FICR INFO */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"2333ac61_91c632c8","side":"PARENT","line":786,"range":{"start_line":780,"start_character":1,"end_line":786,"end_character":2},"updated":"2024-01-04 08:00:07.000000000","message":"Iterating nrf5_known_devices_table was the only way how to discover part number and other informations of the old nRF51 devices (v1, v2 and maybe some v3)\nDropping it means the driver describes such device as unknown","commit_id":"5c53034d85480d0855394c4683733f61b27b6c5e"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"38b6b3397586509d89abcae9b7cd36390a6dc8b2","unresolved":true,"context_lines":[{"line_number":777,"context_line":"\t(void)nrf5_read_ficr_info(chip);"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"\tchip-\u003espec \u003d NULL;"},{"line_number":780,"context_line":"\tfor (size_t i \u003d 0; i \u003c ARRAY_SIZE(nrf5_known_devices_table); i++) {"},{"line_number":781,"context_line":"\t\tif (chip-\u003ehwid \u003d\u003d nrf5_known_devices_table[i].hwid) {"},{"line_number":782,"context_line":"\t\t\tchip-\u003espec \u003d \u0026nrf5_known_devices_table[i];"},{"line_number":783,"context_line":"\t\t\tchip-\u003efeatures \u003d chip-\u003espec-\u003efeatures;"},{"line_number":784,"context_line":"\t\t\tbreak;"},{"line_number":785,"context_line":"\t\t}"},{"line_number":786,"context_line":"\t}"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"\tif (chip-\u003espec \u0026\u0026 chip-\u003eficr_info_valid) {"},{"line_number":789,"context_line":"\t\t/* check if HWID table gives the same part as FICR INFO */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"375ac783_fb5f4ad8","side":"PARENT","line":786,"range":{"start_line":780,"start_character":1,"end_line":786,"end_character":2},"in_reply_to":"2333ac61_91c632c8","updated":"2024-01-04 08:41:28.000000000","message":"This i will have to revisit to properly implement and make compatible with past functionality.","commit_id":"5c53034d85480d0855394c4683733f61b27b6c5e"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":false,"context_lines":[{"line_number":777,"context_line":"\t(void)nrf5_read_ficr_info(chip);"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"\tchip-\u003espec \u003d NULL;"},{"line_number":780,"context_line":"\tfor (size_t i \u003d 0; i \u003c ARRAY_SIZE(nrf5_known_devices_table); i++) {"},{"line_number":781,"context_line":"\t\tif (chip-\u003ehwid \u003d\u003d nrf5_known_devices_table[i].hwid) {"},{"line_number":782,"context_line":"\t\t\tchip-\u003espec \u003d \u0026nrf5_known_devices_table[i];"},{"line_number":783,"context_line":"\t\t\tchip-\u003efeatures \u003d chip-\u003espec-\u003efeatures;"},{"line_number":784,"context_line":"\t\t\tbreak;"},{"line_number":785,"context_line":"\t\t}"},{"line_number":786,"context_line":"\t}"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"\tif (chip-\u003espec \u0026\u0026 chip-\u003eficr_info_valid) {"},{"line_number":789,"context_line":"\t\t/* check if HWID table gives the same part as FICR INFO */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ebd9e803_1cff617b","side":"PARENT","line":786,"range":{"start_line":780,"start_character":1,"end_line":786,"end_character":2},"in_reply_to":"375ac783_fb5f4ad8","updated":"2024-01-21 11:31:09.000000000","message":"I have returned the table and left it only for the nRF52 series","commit_id":"5c53034d85480d0855394c4683733f61b27b6c5e"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":964,"context_line":"{"},{"line_number":965,"context_line":"\tint res;"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":"\tLOG_INFO(\"Erasing page at 0x%\" PRIx32, sector-\u003eoffset);"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"\tif (BANK_IS_UICR(ctx, bank)) {"},{"line_number":970,"context_line":"\t\tif (ctx-\u003efeatures \u0026 NRF5_FEATURE_SERIES_51) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a3f39731_2ed459f3","line":967,"range":{"start_line":967,"start_character":1,"end_line":967,"end_character":9},"updated":"2024-01-04 08:00:07.000000000","message":"Lot of LOG_ raised level from DEBUG to INFO.\nThe driver verbosity was just fine, this change is unwanted","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"38b6b3397586509d89abcae9b7cd36390a6dc8b2","unresolved":true,"context_lines":[{"line_number":964,"context_line":"{"},{"line_number":965,"context_line":"\tint res;"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":"\tLOG_INFO(\"Erasing page at 0x%\" PRIx32, sector-\u003eoffset);"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"\tif (BANK_IS_UICR(ctx, bank)) {"},{"line_number":970,"context_line":"\t\tif (ctx-\u003efeatures \u0026 NRF5_FEATURE_SERIES_51) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"d75e47ab_d3970cb9","line":967,"range":{"start_line":967,"start_character":1,"end_line":967,"end_character":9},"in_reply_to":"a3f39731_2ed459f3","updated":"2024-01-04 08:41:28.000000000","message":"Will change. Still WIP.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":true,"context_lines":[{"line_number":964,"context_line":"{"},{"line_number":965,"context_line":"\tint res;"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":"\tLOG_INFO(\"Erasing page at 0x%\" PRIx32, sector-\u003eoffset);"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"\tif (BANK_IS_UICR(ctx, bank)) {"},{"line_number":970,"context_line":"\t\tif (ctx-\u003efeatures \u0026 NRF5_FEATURE_SERIES_51) {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"7cb73d35_d0efab7f","line":967,"range":{"start_line":967,"start_character":1,"end_line":967,"end_character":9},"in_reply_to":"d75e47ab_d3970cb9","updated":"2024-01-21 11:31:09.000000000","message":"Still WIP","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":983,"context_line":"\t\t\t\tif (sector-\u003eis_erased \u003d\u003d 1)"},{"line_number":984,"context_line":"\t\t\t\t\treturn ERROR_OK;"},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"\t\t\t\tLOG_ERROR(\"The ctx was not pre-programmed with SoftDevice stack and UICR cannot be erased separately. Please issue mass erase before trying to write to this region\");"},{"line_number":987,"context_line":"\t\t\t\treturn ERROR_FAIL;"},{"line_number":988,"context_line":"\t\t\t}"},{"line_number":989,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"8519ed85_0b51807c","line":986,"range":{"start_line":986,"start_character":19,"end_line":986,"end_character":22},"updated":"2024-01-04 08:00:07.000000000","message":"Crap from replace all. Not only one","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":false,"context_lines":[{"line_number":983,"context_line":"\t\t\t\tif (sector-\u003eis_erased \u003d\u003d 1)"},{"line_number":984,"context_line":"\t\t\t\t\treturn ERROR_OK;"},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"\t\t\t\tLOG_ERROR(\"The ctx was not pre-programmed with SoftDevice stack and UICR cannot be erased separately. Please issue mass erase before trying to write to this region\");"},{"line_number":987,"context_line":"\t\t\t\treturn ERROR_FAIL;"},{"line_number":988,"context_line":"\t\t\t}"},{"line_number":989,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ec2409e9_a1dffb9d","line":986,"range":{"start_line":986,"start_character":19,"end_line":986,"end_character":22},"in_reply_to":"8519ed85_0b51807c","updated":"2024-01-21 11:31:09.000000000","message":"Ack","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":995,"context_line":"\t\t\t\t\t       0x00000001);"},{"line_number":996,"context_line":"\t\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":997,"context_line":"\t\t\t/* UICR on nRF91 series needs to perform erase-all*/"},{"line_number":998,"context_line":"\t\t\tres \u003d nrfx_nvmc_generic_erase(ctx,"},{"line_number":999,"context_line":"\t\t\t\t\t       ctx-\u003einfo.stat-\u003envmc_reg_addresses.erase_all_reg,"},{"line_number":1000,"context_line":"\t\t\t\t\t       0x00000001);"},{"line_number":1001,"context_line":"\t\t} else {"},{"line_number":1002,"context_line":"\t\t\tres \u003d ERROR_FLASH_OPER_UNSUPPORTED;"},{"line_number":1003,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"fd3d939e_19e8d6a7","line":1000,"range":{"start_line":998,"start_character":3,"end_line":1000,"end_character":24},"updated":"2024-01-04 08:00:07.000000000","message":"Erasing whole code flash as a side effect of UICR programming? NO!!!","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":true,"context_lines":[{"line_number":995,"context_line":"\t\t\t\t\t       0x00000001);"},{"line_number":996,"context_line":"\t\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":997,"context_line":"\t\t\t/* UICR on nRF91 series needs to perform erase-all*/"},{"line_number":998,"context_line":"\t\t\tres \u003d nrfx_nvmc_generic_erase(ctx,"},{"line_number":999,"context_line":"\t\t\t\t\t       ctx-\u003einfo.stat-\u003envmc_reg_addresses.erase_all_reg,"},{"line_number":1000,"context_line":"\t\t\t\t\t       0x00000001);"},{"line_number":1001,"context_line":"\t\t} else {"},{"line_number":1002,"context_line":"\t\t\tres \u003d ERROR_FLASH_OPER_UNSUPPORTED;"},{"line_number":1003,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ed2f88e1_8bb92cab","line":1000,"range":{"start_line":998,"start_character":3,"end_line":1000,"end_character":24},"in_reply_to":"a5557cde_f88ce117","updated":"2024-01-21 11:31:09.000000000","message":"I have returned ERROR_FLASH_OPER_UNSUPPORTED.\nStill WIP","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"38b6b3397586509d89abcae9b7cd36390a6dc8b2","unresolved":true,"context_lines":[{"line_number":995,"context_line":"\t\t\t\t\t       0x00000001);"},{"line_number":996,"context_line":"\t\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":997,"context_line":"\t\t\t/* UICR on nRF91 series needs to perform erase-all*/"},{"line_number":998,"context_line":"\t\t\tres \u003d nrfx_nvmc_generic_erase(ctx,"},{"line_number":999,"context_line":"\t\t\t\t\t       ctx-\u003einfo.stat-\u003envmc_reg_addresses.erase_all_reg,"},{"line_number":1000,"context_line":"\t\t\t\t\t       0x00000001);"},{"line_number":1001,"context_line":"\t\t} else {"},{"line_number":1002,"context_line":"\t\t\tres \u003d ERROR_FLASH_OPER_UNSUPPORTED;"},{"line_number":1003,"context_line":"\t\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a5557cde_f88ce117","line":1000,"range":{"start_line":998,"start_character":3,"end_line":1000,"end_character":24},"in_reply_to":"fd3d939e_19e8d6a7","updated":"2024-01-04 08:41:28.000000000","message":"I\u0027m here a little bit confused the NVMC controller is the only one in the CHIP. The UICR cannot be erased as a standalone thing. I can disable the page_erase by returning an ERROR_FLASH_OPER_UNSUPPORTED. Or just stay silent and return OK.\n\nWhat is preferred?  Or how would you approach this?","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"1c43baa1_413d8a7d","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"updated":"2024-01-04 08:00:07.000000000","message":"See https://review.openocd.org/c/openocd/+/7739/comment/d71daa1a_7ef90e9e/","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"4220b6468fa78c20943b4a409afecf0edf63b087","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"52a0d612_d197bc2a","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"03993cd1_b8173fab","updated":"2024-01-29 12:24:32.000000000","message":"I\u0027m now a little bit overwhelmed in work. So i will get to testing hopefully at the end of the weekend. \nWe are using a custom probe based on FT2232H, which is essentialy a copied steppen probe https://github.com/diegoherranz/steppenprobe with nicer USB-C interface.\n\nWould you be open to have a video call to discuss next steps and direction of your and this patch ?","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"38b6b3397586509d89abcae9b7cd36390a6dc8b2","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"7660cdfb_d758e838","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"1c43baa1_413d8a7d","updated":"2024-01-04 08:41:28.000000000","message":"I have not yet dived into the functionality of nrf5_ll_flash_write. The target_write_buffer worked in the #7739. I\u0027m aware of the comment i will get to it.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a4aaa0b4_3104144a","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"7660cdfb_d758e838","updated":"2024-01-21 11:31:09.000000000","message":"Here I gonna need some help debugging the loader. I have tried to adapt it to the nrf91 by changing the watchdog but the loader time-outs.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"a9d383277f2f78ec7636fede64788e3b44350a96","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b0bb42ec_98076dda","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"8cc0e1d0_7c47bcd3","updated":"2024-01-25 09:10:55.000000000","message":"It depends on the debug adapter used. E.g. CMSIS-DAP shows no problems as it handles SWD WAIT on its own.\n\nOn the other hand e.g. FTDI based adapter or JLink fails. And unfortunately the official nRF development kits have JLink on board.\n\nI tested your patch with nRF9161 DK:\n\nadapter speed: **2000 kHz**\nJLink OB limits the speed to 2 MHz, it is enough to get fails.\n```\n\u003e flash write_image merged.hex\nAuto-Probing flash bank 0x00000000\nnRF9120-CIAA(build code: C0) 1024kB Flash, 256kB RAM\nProbing flash bank 0x00000000\nPadding image section 0 at 0x0000023c with 4 bytes\nPadding image section 1 at 0x00000648 with 8 bytes\nPadding image section 2 at 0x00003478 with 8 bytes\nPadding image section 3 at 0x00006a80 with 4480 bytes\nPadding image section 4 at 0x00007d64 with 668 bytes\nWriting at 0x00000000 0x1b97c bytes\nProbing flash bank 0x00000000\nSWD DPIDR 0x6ba02477\nFailed to write memory at 0x00002608\nFailed to write to nrf5 flash\nerror writing to flash at address 0x00000000 at offset 0x00000000\n```\n\nAnd the same image flashed slower:\nadapter speed: **500 kHz**\n```\n\u003e flash write_image merged.hex\nAuto-Probing flash bank 0x00000000\nProbing flash bank 0x00000000\nPadding image section 0 at 0x0000023c with 4 bytes\nPadding image section 1 at 0x00000648 with 8 bytes\nPadding image section 2 at 0x00003478 with 8 bytes\nPadding image section 3 at 0x00006a80 with 4480 bytes\nPadding image section 4 at 0x00007d64 with 668 bytes\nWriting at 0x00000000 0x1b97c bytes\nProbing flash bank 0x00000000\nwrote 113020 bytes from file merged.hex in 4.031027s (27.380 KiB/s)\n```","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"e299f97a0695688d08697eda3d78cf7b560e518b","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c27116b7_52694eb8","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"a4aaa0b4_3104144a","updated":"2024-01-21 11:33:18.000000000","message":"Not sure if the armv7m is compatible with armv8m for the Cortex-M33, which is inside the nrf9160","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"b81db6fa1d9f6190e49079164dc2c2265fe62adb","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b26ab7a8_6939873b","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"b0bb42ec_98076dda","updated":"2024-01-28 11:06:48.000000000","message":"For completeness here is the log of flash writes with this change and nRF5340 detection added, ft232h based adapter and the eByte nRF5340 dev board:\n\nadapter speed: **2000 kHz**\n```\n\u003e flash write_image rand16k.bin 0x28000\nAuto-Probing flash bank 0x00000000\nProbing flash bank 0x00000000\nWriting at 0x00028000 0x4000 bytes\nProbing flash bank 0x00000000\nwrote 16384 bytes from file rand16k.bin in 0.133873s (119.516 KiB/s)\n```\nadapter speed: **3000 kHz**\n```\n\u003e flash write_image rand16k.bin 0x2c000\nAuto-Probing flash bank 0x00000000\nProbing flash bank 0x00000000\nWriting at 0x0002c000 0x4000 bytes\nProbing flash bank 0x00000000\nSWD DPIDR 0x6ba02477\nFailed to write memory at 0x0002c044\nFailed to write to nrf5 flash\nerror writing to flash at address 0x00000000 at offset 0x0002c000\n```\n\nThe limit of adapter speed shifted up but the write fails same way...","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"f285dd734dc07cb57569463fab8d08812f36186d","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"03993cd1_b8173fab","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"b26ab7a8_6939873b","updated":"2024-01-29 12:12:58.000000000","message":"Finally I was able to reproduce problems with the target async algo.\nThis time I used RPi4 and raspberrypi-native.cfg and added some WAIT timing reports.\nThe problem looks like a silicon errata, the chip occasionally writes an incorrect value when flash write runs on the chip concurrently and APB bus gets stalled periodically. The problem starts approx @ adapter speed 3000 at the same time when some SWD WAITs can be observed.\nI\u0027ll switch my version to direct writes.\n\nBTW What adapter did you use?","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"d21873718ac92b6bdf115f00790b62a9f23ec148","unresolved":true,"context_lines":[{"line_number":1162,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1163,"context_line":"\t\t\tgoto error;"},{"line_number":1164,"context_line":"\t} else if (IS_NRF9X_SERIES(ctx)) {"},{"line_number":1165,"context_line":"\t\tres \u003d target_write_buffer(ctx-\u003etarget, bank-\u003ebase + offset, count, buffer);"},{"line_number":1166,"context_line":"\t\tif (res !\u003d ERROR_OK)"},{"line_number":1167,"context_line":"\t\t\tgoto error;"},{"line_number":1168,"context_line":"\t} else {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"8cc0e1d0_7c47bcd3","line":1165,"range":{"start_line":1165,"start_character":2,"end_line":1165,"end_character":77},"in_reply_to":"c27116b7_52694eb8","updated":"2024-01-21 13:09:27.000000000","message":"Note that I was able to flash the nRF91 with adapter speed 8000 -\u003e 8Mhz maybe the target_write_buffer is working as intended after all? I have no insight into how target_write_buffer works internally.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"}],"tcl/target/nrf91.cfg":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":39,"context_line":"\techo \"\""},{"line_number":40,"context_line":"\techo \"nRF91 device has a CTRL-AP dedicated to recover the device from AP lock.\""},{"line_number":41,"context_line":"\techo \"A high level adapter (like a ST-Link) you are currently using cannot access\""},{"line_number":42,"context_line":"\techo \"the CTRL-AP so \u0027nrf91_recover\u0027 command will not work.\""},{"line_number":43,"context_line":"\techo \"Do not enable UICR APPROTECT.\""},{"line_number":44,"context_line":"\techo \"\""},{"line_number":45,"context_line":"} else {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"b62f3048_a4bcb9a2","line":42,"range":{"start_line":42,"start_character":23,"end_line":42,"end_character":36},"updated":"2024-01-04 08:00:07.000000000","message":"Where is nrf91_recover?","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\techo \"\""},{"line_number":40,"context_line":"\techo \"nRF91 device has a CTRL-AP dedicated to recover the device from AP lock.\""},{"line_number":41,"context_line":"\techo \"A high level adapter (like a ST-Link) you are currently using cannot access\""},{"line_number":42,"context_line":"\techo \"the CTRL-AP so \u0027nrf91_recover\u0027 command will not work.\""},{"line_number":43,"context_line":"\techo \"Do not enable UICR APPROTECT.\""},{"line_number":44,"context_line":"\techo \"\""},{"line_number":45,"context_line":"} else {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"e3d48875_18c193bf","line":42,"range":{"start_line":42,"start_character":23,"end_line":42,"end_character":36},"in_reply_to":"b62f3048_a4bcb9a2","updated":"2024-01-21 11:31:09.000000000","message":"Added nrf91_recover.\nACK","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"70bcd4eec431e427e78fdc4971821b3d1a123f56","unresolved":true,"context_lines":[{"line_number":65,"context_line":"\t}"},{"line_number":66,"context_line":"}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"source [find target/nrf91_mfw.cfg]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"7557ac50_250c710e","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":34},"updated":"2024-01-04 08:00:07.000000000","message":"Please limit this patch to basic flash support and submit modem firmware support in a separate patch.","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"38b6b3397586509d89abcae9b7cd36390a6dc8b2","unresolved":true,"context_lines":[{"line_number":65,"context_line":"\t}"},{"line_number":66,"context_line":"}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"source [find target/nrf91_mfw.cfg]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"88c90345_9a436041","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":34},"in_reply_to":"7557ac50_250c710e","updated":"2024-01-04 08:41:28.000000000","message":"Will omit the modem firmware update in this patch","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"},{"author":{"_account_id":1002220,"name":"Tomáš Beneš","email":"tomas@dronetag.cz","username":"optical-o"},"change_message_id":"c0474b405cd7d54135415bde147e8df10b533813","unresolved":false,"context_lines":[{"line_number":65,"context_line":"\t}"},{"line_number":66,"context_line":"}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"source [find target/nrf91_mfw.cfg]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"dcee9667_3e420cb7","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":34},"in_reply_to":"88c90345_9a436041","updated":"2024-01-21 11:31:09.000000000","message":"Ack","commit_id":"5f4853d58c7a21944d6cc424ab5955431904795d"}]}
