)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"f5d1b9c6464b9367a1eaf8cb3335d8b8ddab694f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b30b5e4b_06c6fca1","updated":"2021-09-15 06:20:15.000000000","message":"Tarek, can you please test it and give your +1?","commit_id":"1c4d7f0c042761d9d7e3ec33b233e6e7df3f693d"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"451fcf51e5bf7b3a6697a267a45a829c2a0abd04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"06b4a398_77f30483","updated":"2021-09-15 08:52:12.000000000","message":"here we don\u0027t aim for a full revert, we want to get rid off (1) and (2) and keep the stm32l4_write_block_without_loader when ressources are not available (ie workarea size is 0)\nso then programming could be performed","commit_id":"1c4d7f0c042761d9d7e3ec33b233e6e7df3f693d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"449b98adbbc5059862618fd3234c1d74e5d92256","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e58b8f01_2694e22c","in_reply_to":"06b4a398_77f30483","updated":"2021-09-15 09:08:35.000000000","message":"Oh yes, my bad - I also thought we can revert it completely. Tarek, could you please prepare a partial revert? Thanks","commit_id":"1c4d7f0c042761d9d7e3ec33b233e6e7df3f693d"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"dbfc69d7a49e5c7cc9464ccdc29473d7d3d1cc14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7c8a0b2b_1229e32a","in_reply_to":"e58b8f01_2694e22c","updated":"2021-09-15 09:19:33.000000000","message":"no worries, I will do ;)","commit_id":"1c4d7f0c042761d9d7e3ec33b233e6e7df3f693d"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"413031c5ddd6efe2a05170615a861a43e80c7467","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fbcc1402_5a8a5209","updated":"2021-09-17 06:45:53.000000000","message":"Thanks Oleksij, thanks Tarek","commit_id":"bd7fef9a90dee06020d7629165a10cca302d918f"}],"src/flash/nor/stm32l4x.c":[{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"451fcf51e5bf7b3a6697a267a45a829c2a0abd04","unresolved":true,"context_lines":[{"line_number":224,"context_line":"\tuint32_t flash_regs_base;"},{"line_number":225,"context_line":"\tconst uint32_t *flash_regs;"},{"line_number":226,"context_line":"\tbool otp_enabled;"},{"line_number":227,"context_line":"\tbool use_flashloader;"},{"line_number":228,"context_line":"\tenum stm32l4_rdp rdp;"},{"line_number":229,"context_line":"\tbool tzen;"},{"line_number":230,"context_line":"\tuint32_t optr;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"08e4fc88_4c55d1fb","side":"PARENT","line":227,"range":{"start_line":227,"start_character":1,"end_line":227,"end_character":22},"updated":"2021-09-15 08:52:12.000000000","message":"(1)","commit_id":"1247eee4e6e55889b14bec8d81c4748767bb67b8"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"2c25aa604d414cbe726e5245b7020a74673d8b86","unresolved":false,"context_lines":[{"line_number":224,"context_line":"\tuint32_t flash_regs_base;"},{"line_number":225,"context_line":"\tconst uint32_t *flash_regs;"},{"line_number":226,"context_line":"\tbool otp_enabled;"},{"line_number":227,"context_line":"\tbool use_flashloader;"},{"line_number":228,"context_line":"\tenum stm32l4_rdp rdp;"},{"line_number":229,"context_line":"\tbool tzen;"},{"line_number":230,"context_line":"\tuint32_t optr;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"9af5e926_c96a99de","side":"PARENT","line":227,"range":{"start_line":227,"start_character":1,"end_line":227,"end_character":22},"in_reply_to":"08e4fc88_4c55d1fb","updated":"2021-09-15 09:41:02.000000000","message":"Done","commit_id":"1247eee4e6e55889b14bec8d81c4748767bb67b8"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"451fcf51e5bf7b3a6697a267a45a829c2a0abd04","unresolved":true,"context_lines":[{"line_number":1366,"context_line":"}"},{"line_number":1367,"context_line":""},{"line_number":1368,"context_line":"/* Count is in double-words */"},{"line_number":1369,"context_line":"static int stm32l4_write_block_without_loader(struct flash_bank *bank, const uint8_t *buffer,"},{"line_number":1370,"context_line":"\t\t\t\tuint32_t offset, uint32_t count)"},{"line_number":1371,"context_line":"{"},{"line_number":1372,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"fcbb7418_715fce27","side":"PARENT","line":1369,"range":{"start_line":1369,"start_character":11,"end_line":1369,"end_character":45},"updated":"2021-09-15 08:52:12.000000000","message":"keep this","commit_id":"1247eee4e6e55889b14bec8d81c4748767bb67b8"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"2c25aa604d414cbe726e5245b7020a74673d8b86","unresolved":false,"context_lines":[{"line_number":1366,"context_line":"}"},{"line_number":1367,"context_line":""},{"line_number":1368,"context_line":"/* Count is in double-words */"},{"line_number":1369,"context_line":"static int stm32l4_write_block_without_loader(struct flash_bank *bank, const uint8_t *buffer,"},{"line_number":1370,"context_line":"\t\t\t\tuint32_t offset, uint32_t count)"},{"line_number":1371,"context_line":"{"},{"line_number":1372,"context_line":"\tstruct target *target \u003d bank-\u003etarget;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"7a616ecb_1f579e2d","side":"PARENT","line":1369,"range":{"start_line":1369,"start_character":11,"end_line":1369,"end_character":45},"in_reply_to":"fcbb7418_715fce27","updated":"2021-09-15 09:41:02.000000000","message":"Done","commit_id":"1247eee4e6e55889b14bec8d81c4748767bb67b8"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"451fcf51e5bf7b3a6697a267a45a829c2a0abd04","unresolved":true,"context_lines":[{"line_number":2296,"context_line":"\t\t.usage \u003d \"bank_id\","},{"line_number":2297,"context_line":"\t\t.help \u003d \"Unlock entire protected flash device.\","},{"line_number":2298,"context_line":"\t},"},{"line_number":2299,"context_line":"\t{"},{"line_number":2300,"context_line":"\t\t.name \u003d \"flashloader\","},{"line_number":2301,"context_line":"\t\t.handler \u003d stm32l4_handle_flashloader_command,"},{"line_number":2302,"context_line":"\t\t.mode \u003d COMMAND_EXEC,"},{"line_number":2303,"context_line":"\t\t.usage \u003d \"\u003cbank_id\u003e [enable|disable]\","},{"line_number":2304,"context_line":"\t\t.help \u003d \"Configure the flashloader usage\","},{"line_number":2305,"context_line":"\t},"},{"line_number":2306,"context_line":"\t{"},{"line_number":2307,"context_line":"\t\t.name \u003d \"mass_erase\","},{"line_number":2308,"context_line":"\t\t.handler \u003d stm32l4_handle_mass_erase_command,"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"64f3ccd3_b2c10016","side":"PARENT","line":2305,"range":{"start_line":2299,"start_character":1,"end_line":2305,"end_character":3},"updated":"2021-09-15 08:52:12.000000000","message":"(2)","commit_id":"1247eee4e6e55889b14bec8d81c4748767bb67b8"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"2c25aa604d414cbe726e5245b7020a74673d8b86","unresolved":false,"context_lines":[{"line_number":2296,"context_line":"\t\t.usage \u003d \"bank_id\","},{"line_number":2297,"context_line":"\t\t.help \u003d \"Unlock entire protected flash device.\","},{"line_number":2298,"context_line":"\t},"},{"line_number":2299,"context_line":"\t{"},{"line_number":2300,"context_line":"\t\t.name \u003d \"flashloader\","},{"line_number":2301,"context_line":"\t\t.handler \u003d stm32l4_handle_flashloader_command,"},{"line_number":2302,"context_line":"\t\t.mode \u003d COMMAND_EXEC,"},{"line_number":2303,"context_line":"\t\t.usage \u003d \"\u003cbank_id\u003e [enable|disable]\","},{"line_number":2304,"context_line":"\t\t.help \u003d \"Configure the flashloader usage\","},{"line_number":2305,"context_line":"\t},"},{"line_number":2306,"context_line":"\t{"},{"line_number":2307,"context_line":"\t\t.name \u003d \"mass_erase\","},{"line_number":2308,"context_line":"\t\t.handler \u003d stm32l4_handle_mass_erase_command,"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"7021d7ed_6a75080d","side":"PARENT","line":2305,"range":{"start_line":2299,"start_character":1,"end_line":2305,"end_character":3},"in_reply_to":"64f3ccd3_b2c10016","updated":"2021-09-15 09:41:02.000000000","message":"Done","commit_id":"1247eee4e6e55889b14bec8d81c4748767bb67b8"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"2c25aa604d414cbe726e5245b7020a74673d8b86","unresolved":true,"context_lines":[{"line_number":1599,"context_line":"\t * Thus means the flashloader will run in non-secure mode,"},{"line_number":1600,"context_line":"\t * and the workarea need to be in non-secure RAM */"},{"line_number":1601,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0_5))"},{"line_number":1602,"context_line":"\t\tLOG_INFO(\"RDP level is 0.5, the work-area should reside in non-secure RAM\");"},{"line_number":1603,"context_line":""},{"line_number":1604,"context_line":"\t/* first try to write using the loader, for better performance */"},{"line_number":1605,"context_line":"\tretval \u003d stm32l4_write_block(bank, buffer, offset,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"2e1816ed_e616bfcb","line":1602,"range":{"start_line":1602,"start_character":2,"end_line":1602,"end_character":10},"updated":"2021-09-15 09:41:02.000000000","message":"till this day, I\u0027m in debate with my self if it should be a warning or info","commit_id":"548d0bd4a538ba56f5680354f17127fe081b86ed"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"f1e11fdd8768ad5fc9e24b972b04974d1cad822b","unresolved":true,"context_lines":[{"line_number":1599,"context_line":"\t * Thus means the flashloader will run in non-secure mode,"},{"line_number":1600,"context_line":"\t * and the workarea need to be in non-secure RAM */"},{"line_number":1601,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0_5))"},{"line_number":1602,"context_line":"\t\tLOG_INFO(\"RDP level is 0.5, the work-area should reside in non-secure RAM\");"},{"line_number":1603,"context_line":""},{"line_number":1604,"context_line":"\t/* first try to write using the loader, for better performance */"},{"line_number":1605,"context_line":"\tretval \u003d stm32l4_write_block(bank, buffer, offset,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"8df9b8fb_c303fee6","line":1602,"range":{"start_line":1602,"start_character":2,"end_line":1602,"end_character":10},"in_reply_to":"2e1816ed_e616bfcb","updated":"2021-09-16 05:11:53.000000000","message":"It should be warning, since part of the driver functionality is disabled and system will work slower as expected.\nCan this warning provide more useful information? For example, how to find what work-area should be used?","commit_id":"548d0bd4a538ba56f5680354f17127fe081b86ed"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"44b5249c98ff930a3255eb8e523ab2bde3bcec1e","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"\t * Thus means the flashloader will run in non-secure mode,"},{"line_number":1600,"context_line":"\t * and the workarea need to be in non-secure RAM */"},{"line_number":1601,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0_5))"},{"line_number":1602,"context_line":"\t\tLOG_INFO(\"RDP level is 0.5, the work-area should reside in non-secure RAM\");"},{"line_number":1603,"context_line":""},{"line_number":1604,"context_line":"\t/* first try to write using the loader, for better performance */"},{"line_number":1605,"context_line":"\tretval \u003d stm32l4_write_block(bank, buffer, offset,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"40bcf254_8d8a2e70","line":1602,"range":{"start_line":1602,"start_character":2,"end_line":1602,"end_character":10},"in_reply_to":"8df9b8fb_c303fee6","updated":"2021-09-16 14:09:57.000000000","message":"Done","commit_id":"548d0bd4a538ba56f5680354f17127fe081b86ed"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"2c25aa604d414cbe726e5245b7020a74673d8b86","unresolved":true,"context_lines":[{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"\t/* if resources are not available write without a loader */"},{"line_number":1609,"context_line":"\tif (retval \u003d\u003d ERROR_TARGET_RESOURCE_NOT_AVAILABLE) {"},{"line_number":1610,"context_line":"\t\tLOG_INFO(\"falling back to single memory accesses\");"},{"line_number":1611,"context_line":"\t\tretval \u003d stm32l4_write_block_without_loader(bank, buffer, offset,"},{"line_number":1612,"context_line":"\t\t\t\tcount / stm32l4_info-\u003edata_width);"},{"line_number":1613,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"2a7bec82_676dc282","line":1610,"range":{"start_line":1610,"start_character":12,"end_line":1610,"end_character":50},"updated":"2021-09-15 09:41:02.000000000","message":"while at there, is better to say : falling back to programming without a loader ?","commit_id":"548d0bd4a538ba56f5680354f17127fe081b86ed"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"f1e11fdd8768ad5fc9e24b972b04974d1cad822b","unresolved":true,"context_lines":[{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"\t/* if resources are not available write without a loader */"},{"line_number":1609,"context_line":"\tif (retval \u003d\u003d ERROR_TARGET_RESOURCE_NOT_AVAILABLE) {"},{"line_number":1610,"context_line":"\t\tLOG_INFO(\"falling back to single memory accesses\");"},{"line_number":1611,"context_line":"\t\tretval \u003d stm32l4_write_block_without_loader(bank, buffer, offset,"},{"line_number":1612,"context_line":"\t\t\t\tcount / stm32l4_info-\u003edata_width);"},{"line_number":1613,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"73ad6ab1_9e48ba6a","line":1610,"range":{"start_line":1610,"start_character":12,"end_line":1610,"end_character":50},"in_reply_to":"2a7bec82_676dc282","updated":"2021-09-16 05:11:53.000000000","message":"This should be warning as well and it should say, how user will be affected by this choice.","commit_id":"548d0bd4a538ba56f5680354f17127fe081b86ed"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"44b5249c98ff930a3255eb8e523ab2bde3bcec1e","unresolved":false,"context_lines":[{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"\t/* if resources are not available write without a loader */"},{"line_number":1609,"context_line":"\tif (retval \u003d\u003d ERROR_TARGET_RESOURCE_NOT_AVAILABLE) {"},{"line_number":1610,"context_line":"\t\tLOG_INFO(\"falling back to single memory accesses\");"},{"line_number":1611,"context_line":"\t\tretval \u003d stm32l4_write_block_without_loader(bank, buffer, offset,"},{"line_number":1612,"context_line":"\t\t\t\tcount / stm32l4_info-\u003edata_width);"},{"line_number":1613,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"3f2dc70e_15e823f8","line":1610,"range":{"start_line":1610,"start_character":12,"end_line":1610,"end_character":50},"in_reply_to":"73ad6ab1_9e48ba6a","updated":"2021-09-16 14:09:57.000000000","message":"Done","commit_id":"548d0bd4a538ba56f5680354f17127fe081b86ed"}]}
