)]}'
{"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":"ac2f8b2232ace94d2adfb054f887423b795d36a5","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1053,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1054,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1055,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1056,"context_line":"\t\t}"},{"line_number":1057,"context_line":"\t}"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ceda9b01_88599d03","line":1055,"updated":"2021-04-03 22:50:22.000000000","message":"Seems me the erase operation is failed without issuing an err msg?","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1053,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1054,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1055,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1056,"context_line":"\t\t}"},{"line_number":1057,"context_line":"\t}"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"aedf27f1_a4f7f855","line":1055,"in_reply_to":"ceda9b01_88599d03","updated":"2021-05-25 14:51:58.000000000","message":"Done","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"ac2f8b2232ace94d2adfb054f887423b795d36a5","unresolved":false,"context_lines":[{"line_number":1097,"context_line":""},{"line_number":1098,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1099,"context_line":"\t\t/* if failed to restore SECBBxRy to zeros, just return failure */"},{"line_number":1100,"context_line":"\t\tif (stm32l4_set_secbb(bank, 0) !\u003d ERROR_OK)"},{"line_number":1101,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1102,"context_line":"\t}"},{"line_number":1103,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"ceda9b01_286e7194","line":1100,"range":{"start_line":1100,"start_character":6,"end_line":1100,"end_character":23},"updated":"2021-04-03 22:50:22.000000000","message":"The retval should be treated similarly as the one from line 1096. If there is an error result from the main part, return this one. Don\u0027t convert any error to ERROR_FAIL","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":1097,"context_line":""},{"line_number":1098,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1099,"context_line":"\t\t/* if failed to restore SECBBxRy to zeros, just return failure */"},{"line_number":1100,"context_line":"\t\tif (stm32l4_set_secbb(bank, 0) !\u003d ERROR_OK)"},{"line_number":1101,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1102,"context_line":"\t}"},{"line_number":1103,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"aedf27f1_649110fb","line":1100,"range":{"start_line":1100,"start_character":6,"end_line":1100,"end_character":23},"in_reply_to":"ceda9b01_286e7194","updated":"2021-05-25 14:51:58.000000000","message":"Done","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":740,"context_line":""},{"line_number":741,"context_line":"static int stm32l4_set_secbb(struct flash_bank *bank, uint32_t value)"},{"line_number":742,"context_line":"{"},{"line_number":743,"context_line":"\tconst int secbb_regs[] \u003d {0x80, 0x84, 0x88, 0x8C, 0xA0, 0xA4, 0xA8, 0xAC};"},{"line_number":744,"context_line":"\tstruct stm32l4_flash_bank *stm32l4_info \u003d bank-\u003edriver_priv;"},{"line_number":745,"context_line":"\tint retval;"},{"line_number":746,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_2be8b9ae","line":743,"updated":"2021-08-13 16:50:20.000000000","message":"This looks like register offsets. Please do not use magic numbers.\n\nI assume, uint8_t is enough here.","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":740,"context_line":""},{"line_number":741,"context_line":"static int stm32l4_set_secbb(struct flash_bank *bank, uint32_t value)"},{"line_number":742,"context_line":"{"},{"line_number":743,"context_line":"\tconst int secbb_regs[] \u003d {0x80, 0x84, 0x88, 0x8C, 0xA0, 0xA4, 0xA8, 0xAC};"},{"line_number":744,"context_line":"\tstruct stm32l4_flash_bank *stm32l4_info \u003d bank-\u003edriver_priv;"},{"line_number":745,"context_line":"\tint retval;"},{"line_number":746,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_6b1b21d5","line":743,"in_reply_to":"2ecb373e_2be8b9ae","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":744,"context_line":"\tstruct stm32l4_flash_bank *stm32l4_info \u003d bank-\u003edriver_priv;"},{"line_number":745,"context_line":"\tint retval;"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"\tif (stm32l4_info-\u003epart_info-\u003eflags \u0026 F_HAS_TZ) {"},{"line_number":748,"context_line":"\t\t/* based on RM0438 Rev6 for STM32L5x devices:"},{"line_number":749,"context_line":"\t\t * to modify a page block-based security attribution, it is recommended to"},{"line_number":750,"context_line":"\t\t *  1- check that no flash operation is ongoing on the related page"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_0be37dd5","line":747,"updated":"2021-08-13 16:50:20.000000000","message":"please move it out of if scope:\nif (not)\n   return;\n\nnormal code flow..","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":744,"context_line":"\tstruct stm32l4_flash_bank *stm32l4_info \u003d bank-\u003edriver_priv;"},{"line_number":745,"context_line":"\tint retval;"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"\tif (stm32l4_info-\u003epart_info-\u003eflags \u0026 F_HAS_TZ) {"},{"line_number":748,"context_line":"\t\t/* based on RM0438 Rev6 for STM32L5x devices:"},{"line_number":749,"context_line":"\t\t * to modify a page block-based security attribution, it is recommended to"},{"line_number":750,"context_line":"\t\t *  1- check that no flash operation is ongoing on the related page"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_4b1665ae","line":747,"in_reply_to":"2ecb373e_0be37dd5","updated":"2021-08-13 21:45:05.000000000","message":"changed to assert, since this function should never be used with devices without trustzone","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":761,"context_line":"\t\t/* in single bank mode: do not modify FLASH_SECBB2Rx registers */"},{"line_number":762,"context_line":"\t\tunsigned int num_secbb_reg \u003d ARRAY_SIZE(secbb_regs);"},{"line_number":763,"context_line":"\t\tif (!stm32l4_info-\u003edual_bank_mode)"},{"line_number":764,"context_line":"\t\t\tnum_secbb_reg /\u003d 2;"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"\t\tfor (unsigned int i \u003d 0; i \u003c num_secbb_reg; i++) {"},{"line_number":767,"context_line":"\t\t\tretval \u003d stm32l4_write_flash_reg(bank, secbb_regs[i], value);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_cbcc9569","line":764,"updated":"2021-08-13 16:50:20.000000000","message":"this part is confusing. It is an array with offset for two banks. Where offsets for second bank are first_bank_reg |\u003d 0x20. Do i see it correctly?\nPlease make it less cryptic.","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":761,"context_line":"\t\t/* in single bank mode: do not modify FLASH_SECBB2Rx registers */"},{"line_number":762,"context_line":"\t\tunsigned int num_secbb_reg \u003d ARRAY_SIZE(secbb_regs);"},{"line_number":763,"context_line":"\t\tif (!stm32l4_info-\u003edual_bank_mode)"},{"line_number":764,"context_line":"\t\t\tnum_secbb_reg /\u003d 2;"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"\t\tfor (unsigned int i \u003d 0; i \u003c num_secbb_reg; i++) {"},{"line_number":767,"context_line":"\t\t\tretval \u003d stm32l4_write_flash_reg(bank, secbb_regs[i], value);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_0b105dac","line":764,"in_reply_to":"2ecb373e_cbcc9569","updated":"2021-08-13 21:45:05.000000000","message":"I hope with SECBB macros, the BANK1/2 registers are more explicit,\nand I hope with the comment at line 771 the usage of first half of secbb_regs (SECBB1Rx) in single bank mode is no more confusing","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":890,"context_line":"\t/* for STM32L5 and similar devices, use always non-secure"},{"line_number":891,"context_line":"\t * registers for option bytes programming */"},{"line_number":892,"context_line":"\tconst uint32_t *saved_flash_regs \u003d stm32l4_info-\u003eflash_regs;"},{"line_number":893,"context_line":"\tif (stm32l4_info-\u003epart_info-\u003eid \u003d\u003d 0x472)"},{"line_number":894,"context_line":"\t\tstm32l4_info-\u003eflash_regs \u003d stm32l5_ns_flash_regs;"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"\tretval \u003d stm32l4_unlock_reg(bank);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_ebc95156","line":893,"updated":"2021-08-13 16:50:20.000000000","message":"please use defines instead of magic numbers","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":890,"context_line":"\t/* for STM32L5 and similar devices, use always non-secure"},{"line_number":891,"context_line":"\t * registers for option bytes programming */"},{"line_number":892,"context_line":"\tconst uint32_t *saved_flash_regs \u003d stm32l4_info-\u003eflash_regs;"},{"line_number":893,"context_line":"\tif (stm32l4_info-\u003epart_info-\u003eid \u003d\u003d 0x472)"},{"line_number":894,"context_line":"\t\tstm32l4_info-\u003eflash_regs \u003d stm32l5_ns_flash_regs;"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"\tretval \u003d stm32l4_unlock_reg(bank);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_8b4c4de6","line":893,"in_reply_to":"2ecb373e_ebc95156","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"\t}"},{"line_number":1065,"context_line":""},{"line_number":1066,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1067,"context_line":"\t\tretval \u003d stm32l4_set_secbb(bank, 0xffffffff);"},{"line_number":1068,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1069,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1070,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_8bd68df5","line":1067,"updated":"2021-08-13 16:50:20.000000000","message":"this magic number need some explanation too.","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"\t}"},{"line_number":1065,"context_line":""},{"line_number":1066,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1067,"context_line":"\t\tretval \u003d stm32l4_set_secbb(bank, 0xffffffff);"},{"line_number":1068,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1069,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1070,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_ab4909d5","line":1067,"in_reply_to":"2ecb373e_8bd68df5","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":1411,"context_line":"\t\treturn retval;"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1414,"context_line":"\t\tretval \u003d stm32l4_set_secbb(bank, 0xffffffff);"},{"line_number":1415,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1416,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1417,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_abd34904","line":1414,"updated":"2021-08-13 16:50:20.000000000","message":"here too","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1411,"context_line":"\t\treturn retval;"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1414,"context_line":"\t\tretval \u003d stm32l4_set_secbb(bank, 0xffffffff);"},{"line_number":1415,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1416,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1417,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_2b15199d","line":1414,"in_reply_to":"2ecb373e_abd34904","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"\t\tretval \u003d stm32l4_set_secbb(bank, 0xffffffff);"},{"line_number":1415,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1416,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1417,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1418,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1419,"context_line":"\t\t}"},{"line_number":1420,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_4b00a56d","line":1417,"updated":"2021-08-13 16:50:20.000000000","message":"Till now I have seen here two values: 0 and -1, it would be more readable if you name it some how. If possible as close to datasheet as possible.","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"\t\tretval \u003d stm32l4_set_secbb(bank, 0xffffffff);"},{"line_number":1415,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1416,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1417,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1418,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1419,"context_line":"\t\t}"},{"line_number":1420,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_cb29f5e3","line":1417,"in_reply_to":"2ecb373e_4b00a56d","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1416,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1417,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1418,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1419,"context_line":"\t\t}"},{"line_number":1420,"context_line":"\t}"},{"line_number":1421,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_6b05617c","line":1418,"updated":"2021-08-13 16:50:20.000000000","message":"Initial retval is overwritten by ERROR_FAIL. Are there good reason for this?","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1416,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1417,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1418,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1419,"context_line":"\t\t}"},{"line_number":1420,"context_line":"\t}"},{"line_number":1421,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_eb263111","line":1418,"in_reply_to":"2ecb373e_6b05617c","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000410,"name":"Oleksij Rempel","email":"linux@rempel-privat.de","username":"olerem"},"change_message_id":"42743a675d64a042da14a901d584aa1ea3e0c109","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1432,"context_line":"\t\t/* if failed to restore SECBBxRy to zeros, just return failure */"},{"line_number":1433,"context_line":"\t\tif (stm32l4_set_secbb(bank, 0) !\u003d ERROR_OK)"},{"line_number":1434,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1435,"context_line":"\t}"},{"line_number":1436,"context_line":""},{"line_number":1437,"context_line":"\tif (retval !\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_0bfa9d73","line":1434,"updated":"2021-08-13 16:50:20.000000000","message":"Here is retval overwritten too.","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1432,"context_line":"\t\t/* if failed to restore SECBBxRy to zeros, just return failure */"},{"line_number":1433,"context_line":"\t\tif (stm32l4_set_secbb(bank, 0) !\u003d ERROR_OK)"},{"line_number":1434,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1435,"context_line":"\t}"},{"line_number":1436,"context_line":""},{"line_number":1437,"context_line":"\tif (retval !\u003d ERROR_OK) {"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_8b23edff","line":1434,"in_reply_to":"2ecb373e_0bfa9d73","updated":"2021-08-13 21:45:05.000000000","message":"Done","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1512,"context_line":"\tpart_info \u003d stm32l4_info-\u003epart_info;"},{"line_number":1513,"context_line":"\tconst char *rev_str \u003d get_stm32l4_rev_str(bank);"},{"line_number":1514,"context_line":"\tconst uint16_t rev_id \u003d stm32l4_info-\u003eidcode \u003e\u003e 16;"},{"line_number":1515,"context_line":"\tstm32l4_info-\u003eflash_regs \u003d part_info-\u003edefault_flash_regs;"},{"line_number":1516,"context_line":""},{"line_number":1517,"context_line":"\tLOG_INFO(\"device idcode \u003d 0x%08\" PRIx32 \" (%s - Rev %s : 0x%04x)\","},{"line_number":1518,"context_line":"\t\t\tstm32l4_info-\u003eidcode, part_info-\u003edevice_str, rev_str, rev_id);"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_ab2029f3","line":1515,"range":{"start_line":1515,"start_character":1,"end_line":1515,"end_character":58},"updated":"2021-08-13 21:45:05.000000000","message":"sorry, duplicated, check 4 lines below","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1820,"context_line":"\t\tif (retval !\u003d ERROR_OK) {"},{"line_number":1821,"context_line":"\t\t\t/* restore SECBBxRy to zeros */"},{"line_number":1822,"context_line":"\t\t\tstm32l4_set_secbb(bank, 0); /* ignore the return value */"},{"line_number":1823,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1824,"context_line":"\t\t}"},{"line_number":1825,"context_line":"\t}"},{"line_number":1826,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_4b7d05e4","line":1823,"range":{"start_line":1823,"start_character":3,"end_line":1823,"end_character":21},"updated":"2021-08-13 21:45:05.000000000","message":"fixed here as well","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"75aa878ec38d34209cb2c5c360ccd94380d445a6","unresolved":false,"context_lines":[{"line_number":1849,"context_line":"\tif (stm32l4_info-\u003etzen \u0026\u0026 (stm32l4_info-\u003erdp \u003d\u003d RDP_LEVEL_0)) {"},{"line_number":1850,"context_line":"\t\t/* if failed to restore SECBBxRy to zeros, just return failure */"},{"line_number":1851,"context_line":"\t\tif (stm32l4_set_secbb(bank, 0) !\u003d ERROR_OK)"},{"line_number":1852,"context_line":"\t\t\treturn ERROR_FAIL;"},{"line_number":1853,"context_line":"\t}"},{"line_number":1854,"context_line":""},{"line_number":1855,"context_line":"\tif (retval !\u003d ERROR_OK)"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"2ecb373e_6b8241cf","line":1852,"range":{"start_line":1852,"start_character":3,"end_line":1852,"end_character":21},"updated":"2021-08-13 21:45:05.000000000","message":"fixed here as well","commit_id":"11443d3c1068d002b0ff90020d5a2ea7e4d055e0"}],"tcl/target/stm32l5x.cfg":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"e4821e55fbb6597760376eb179b0a4d98e26b68d","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# create sec/ns flash and otp memories (sizes will be probed)"},{"line_number":56,"context_line":"flash bank $_CHIPNAME.flash_ns stm32l4x 0x08000000 0 0 0 $_TARGETNAME"},{"line_number":57,"context_line":"flash bank $_CHIPNAME.flash_s  stm32l4x 0x0C000000 0 0 0 $_TARGETNAME"},{"line_number":58,"context_line":"flash bank $_CHIPNAME.otp      stm32l4x 0x0BFA0000 0 0 0 $_TARGETNAME"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"# Common knowledges tells JTAG speed should be \u003c\u003d F_CPU/6."}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"ceda9b01_5c3e1a28","line":57,"range":{"start_line":57,"start_character":22,"end_line":57,"end_character":29},"updated":"2021-03-17 07:47:33.000000000","message":"Shouldn\u0027t we emphasise by the name that this isn\u0027t another bank but an alias?","commit_id":"a04f585df27879f76f506255dacfb3d67ec120a5"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"db290424a65c7c837523e479c0d56de9b5114502","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# create sec/ns flash and otp memories (sizes will be probed)"},{"line_number":56,"context_line":"flash bank $_CHIPNAME.flash_ns stm32l4x 0x08000000 0 0 0 $_TARGETNAME"},{"line_number":57,"context_line":"flash bank $_CHIPNAME.flash_s  stm32l4x 0x0C000000 0 0 0 $_TARGETNAME"},{"line_number":58,"context_line":"flash bank $_CHIPNAME.otp      stm32l4x 0x0BFA0000 0 0 0 $_TARGETNAME"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"# Common knowledges tells JTAG speed should be \u003c\u003d F_CPU/6."}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"ceda9b01_1c27320f","line":57,"range":{"start_line":57,"start_character":22,"end_line":57,"end_character":29},"in_reply_to":"ceda9b01_5c3e1a28","updated":"2021-03-17 10:45:40.000000000","message":"does flash_alias_s seems better ?\nmaybe flash_sec_alias ?","commit_id":"a04f585df27879f76f506255dacfb3d67ec120a5"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"e4821e55fbb6597760376eb179b0a4d98e26b68d","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"$_TARGETNAME configure -event halted {"},{"line_number":145,"context_line":"\tif {[is_secure]} {"},{"line_number":146,"context_line":"\t\techo \"CPU in Secure state\""},{"line_number":147,"context_line":"\t\tahb_ap_secure_access"},{"line_number":148,"context_line":"\t} else {"},{"line_number":149,"context_line":"\t\techo \"CPU in Non-Secure state\""}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"ceda9b01_3c39d63e","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":28},"updated":"2021-03-17 07:47:33.000000000","message":"Probably same as below","commit_id":"a04f585df27879f76f506255dacfb3d67ec120a5"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"e4821e55fbb6597760376eb179b0a4d98e26b68d","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\t\techo \"CPU in Secure state\""},{"line_number":147,"context_line":"\t\tahb_ap_secure_access"},{"line_number":148,"context_line":"\t} else {"},{"line_number":149,"context_line":"\t\techo \"CPU in Non-Secure state\""},{"line_number":150,"context_line":"\t\tahb_ap_non_secure_access"},{"line_number":151,"context_line":"\t}"},{"line_number":152,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"ceda9b01_9c348248","line":149,"range":{"start_line":149,"start_character":2,"end_line":149,"end_character":32},"updated":"2021-03-17 07:47:33.000000000","message":"This is very annoying, especially in gdb:\n\n(gdb) step\nSingle stepping until exit from function ...\nCPU in Non-Secure state\nCPU in Non-Secure state\nCPU in Non-Secure state\n...","commit_id":"a04f585df27879f76f506255dacfb3d67ec120a5"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"db290424a65c7c837523e479c0d56de9b5114502","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\t\techo \"CPU in Secure state\""},{"line_number":147,"context_line":"\t\tahb_ap_secure_access"},{"line_number":148,"context_line":"\t} else {"},{"line_number":149,"context_line":"\t\techo \"CPU in Non-Secure state\""},{"line_number":150,"context_line":"\t\tahb_ap_non_secure_access"},{"line_number":151,"context_line":"\t}"},{"line_number":152,"context_line":"}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"ceda9b01_bc2386ff","line":149,"range":{"start_line":149,"start_character":2,"end_line":149,"end_character":32},"in_reply_to":"ceda9b01_9c348248","updated":"2021-03-17 10:45:40.000000000","message":"agree, this would make sense only if security state has changed","commit_id":"a04f585df27879f76f506255dacfb3d67ec120a5"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":91,"context_line":"proc is_secure {} {"},{"line_number":92,"context_line":"\t# read Debug Security Control and Status Regsiter (DSCSR) and check CDS (bit 16)"},{"line_number":93,"context_line":"\tset DSCSR [mrw 0xE000EE08]"},{"line_number":94,"context_line":"\treturn [expr [expr $DSCSR \u0026 (1 \u003c\u003c 16)] !\u003d 0]"},{"line_number":95,"context_line":"}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"proc clock_config_110_mhz {} {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"aedf27f1_849674f2","line":94,"range":{"start_line":94,"start_character":1,"end_line":94,"end_character":45},"updated":"2021-05-25 14:51:58.000000000","message":"here as well","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"ac2f8b2232ace94d2adfb054f887423b795d36a5","unresolved":false,"context_lines":[{"line_number":95,"context_line":"}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"proc clock_config_110_mhz {} {"},{"line_number":98,"context_line":"\tset offset [expr [is_secure] ? 0x10000000 : 0]"},{"line_number":99,"context_line":"\t# MCU clock is MSI (4MHz) after reset, set MCU freq at 110 MHz with PLL"},{"line_number":100,"context_line":"\t# RCC_APB1ENR1 \u003d PWREN"},{"line_number":101,"context_line":"\tmww [expr 0x40021058 + $offset] 0x10000000"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"ceda9b01_e85069db","line":98,"range":{"start_line":98,"start_character":13,"end_line":98,"end_character":17},"updated":"2021-04-03 22:50:22.000000000","message":"Please use upcoming tcl 0.81 syntax\nhttps://sourceforge.net/p/openocd/mailman/openocd-devel/thread/CAAj6DX3gTvagHR1Aip8Oj400ycD-fYkQvC-3LM-7d1qU_w8ajg%40mail.gmail.com/#msg37243682","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":95,"context_line":"}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"proc clock_config_110_mhz {} {"},{"line_number":98,"context_line":"\tset offset [expr [is_secure] ? 0x10000000 : 0]"},{"line_number":99,"context_line":"\t# MCU clock is MSI (4MHz) after reset, set MCU freq at 110 MHz with PLL"},{"line_number":100,"context_line":"\t# RCC_APB1ENR1 \u003d PWREN"},{"line_number":101,"context_line":"\tmww [expr 0x40021058 + $offset] 0x10000000"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"aedf27f1_648b501c","line":98,"range":{"start_line":98,"start_character":13,"end_line":98,"end_character":17},"in_reply_to":"ceda9b01_e85069db","updated":"2021-05-25 14:51:58.000000000","message":"Done","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"ac2f8b2232ace94d2adfb054f887423b795d36a5","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"proc ahb_ap_non_secure_access {} {"},{"line_number":125,"context_line":"\t# SPROT\u003d1\u003dNon Secure access, Priv\u003d1"},{"line_number":126,"context_line":"\t[[target current] cget -dap] apcsw 0x4B000000"},{"line_number":127,"context_line":"}"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"proc ahb_ap_secure_access {} {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"ceda9b01_4844151d","line":126,"updated":"2021-04-03 22:50:22.000000000","message":"Shouldn\u0027t we use apcsw mask and set the relevant bits only?","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"proc ahb_ap_non_secure_access {} {"},{"line_number":125,"context_line":"\t# SPROT\u003d1\u003dNon Secure access, Priv\u003d1"},{"line_number":126,"context_line":"\t[[target current] cget -dap] apcsw 0x4B000000"},{"line_number":127,"context_line":"}"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"proc ahb_ap_secure_access {} {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"aedf27f1_8490b447","line":126,"in_reply_to":"ceda9b01_4844151d","updated":"2021-05-25 14:51:58.000000000","message":"Done","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"ac2f8b2232ace94d2adfb054f887423b795d36a5","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\t}"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"\t# print the secure state only when it changes"},{"line_number":166,"context_line":"\tset _CHIPNAME [stm32l5x_get_chipname]"},{"line_number":167,"context_line":"\tglobal $_CHIPNAME.secure"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"\tif {![info exists $_CHIPNAME.secure] || $secure !\u003d [set $_CHIPNAME.secure]} {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"ceda9b01_084e0d3d","line":166,"range":{"start_line":166,"start_character":16,"end_line":166,"end_character":37},"updated":"2021-04-03 22:50:22.000000000","message":"Do we need to extract the chipname? Couldn\u0027t we use [target current] directly? Some trick for double core?","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\t}"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"\t# print the secure state only when it changes"},{"line_number":166,"context_line":"\tset _CHIPNAME [stm32l5x_get_chipname]"},{"line_number":167,"context_line":"\tglobal $_CHIPNAME.secure"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"\tif {![info exists $_CHIPNAME.secure] || $secure !\u003d [set $_CHIPNAME.secure]} {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"aedf27f1_c9bc95b4","line":166,"range":{"start_line":166,"start_character":16,"end_line":166,"end_character":37},"in_reply_to":"ceda9b01_084e0d3d","updated":"2021-05-25 14:51:58.000000000","message":"I have been thinking about daisy-chains but [target current] is sufficient.\n\nnow after adding the .secure, I guess using the target name is better in order to have something like:\nstm32l5x.cpu.secure (versus stm32l5x.secure) since secure is a property for the cpu.","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"ac2f8b2232ace94d2adfb054f887423b795d36a5","unresolved":false,"context_lines":[{"line_number":185,"context_line":"\t\tahb_ap_secure_access"},{"line_number":186,"context_line":"\t\techo \"TZEN option bit enabled\""},{"line_number":187,"context_line":"\t\t# Use secure mapping"},{"line_number":188,"context_line":"\t\t$_TARGETNAME configure -work-area-phys 0x30000000"},{"line_number":189,"context_line":"\t}"},{"line_number":190,"context_line":"}"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"ceda9b01_a85a61f7","line":188,"range":{"start_line":188,"start_character":15,"end_line":188,"end_character":51},"updated":"2021-04-03 22:50:22.000000000","message":"This prevents a user from reconfiguration work area addr (and it may be necessary to keep it in non-secure ram).\nWhat if we use cget -work-area-phys, and mask or set 0x10000000 bit?","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000863,"name":"Tarek BOCHKATI","email":"tarek.bouchkati@gmail.com","username":"BouchkatiTarek"},"change_message_id":"9cacd9da78ac8edb362863663b593087ff1af2e2","unresolved":false,"context_lines":[{"line_number":185,"context_line":"\t\tahb_ap_secure_access"},{"line_number":186,"context_line":"\t\techo \"TZEN option bit enabled\""},{"line_number":187,"context_line":"\t\t# Use secure mapping"},{"line_number":188,"context_line":"\t\t$_TARGETNAME configure -work-area-phys 0x30000000"},{"line_number":189,"context_line":"\t}"},{"line_number":190,"context_line":"}"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"aedf27f1_249b081d","line":188,"range":{"start_line":188,"start_character":15,"end_line":188,"end_character":51},"in_reply_to":"ceda9b01_a85a61f7","updated":"2021-05-25 14:51:58.000000000","message":"Done","commit_id":"3d7b35ac40ef82710951f87c63970e4954e5ad34"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"deca585d25270d65f15f97eba09e584ece456810","unresolved":false,"context_lines":[{"line_number":88,"context_line":"\tset offset [expr {[is_secure] ? 0x10000000 : 0}]"},{"line_number":89,"context_line":"\t# MCU clock is MSI (4MHz) after reset, set MCU freq at 110 MHz with PLL"},{"line_number":90,"context_line":"\t# RCC_APB1ENR1 \u003d PWREN"},{"line_number":91,"context_line":"\tmww [expr 0x40021058 + $offset] 0x10000000"},{"line_number":92,"context_line":"\t# delay for register clock enable (read back reg)"},{"line_number":93,"context_line":"\tmrw [expr 0x40021058 + $offset]"},{"line_number":94,"context_line":"\t# PWR_CR1 : VOS Range 0"}],"source_content_type":"text/x-ttcn-cfg","patch_set":17,"id":"2ecb373e_aef117ca","line":91,"updated":"2021-08-15 23:33:01.000000000","message":"This will trigger syntax error with jimtcl 0.81\nYou have to use\nexpr {whatever exression}\nSame below in many places!","commit_id":"02791142a1583a17e3897eedd2d912d2c8248d9d"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"deca585d25270d65f15f97eba09e584ece456810","unresolved":false,"context_lines":[{"line_number":167,"context_line":"\tset use_secure_workarea 0"},{"line_number":168,"context_line":"\t# check if FLASH_OPTR.TZEN is enabled"},{"line_number":169,"context_line":"\tset FLASH_OPTR [mrw 0x40022040]"},{"line_number":170,"context_line":"\tif {[expr [expr $FLASH_OPTR \u0026 0x80000000] \u003d\u003d 0]} {"},{"line_number":171,"context_line":"\t\techo \"TZEN option bit disabled\""},{"line_number":172,"context_line":"\t\tahb_ap_non_secure_access"},{"line_number":173,"context_line":"\t} {"}],"source_content_type":"text/x-ttcn-cfg","patch_set":17,"id":"2ecb373e_4ebe73d3","line":170,"updated":"2021-08-15 23:33:01.000000000","message":"apart from the expr syntax issue, here you can simplify\nif {[expr {$FLASH_OPTR \u0026 0x80000000}] \u003d\u003d 0} {","commit_id":"02791142a1583a17e3897eedd2d912d2c8248d9d"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"deca585d25270d65f15f97eba09e584ece456810","unresolved":false,"context_lines":[{"line_number":180,"context_line":"\techo \"workarea_addr $workarea_addr\""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"\tif {$use_secure_workarea} {"},{"line_number":183,"context_line":"\t\tset workarea_addr [expr $workarea_addr | 0x10000000]"},{"line_number":184,"context_line":"\t} {"},{"line_number":185,"context_line":"\t\tset workarea_addr [expr $workarea_addr \u0026 ~0x10000000]"},{"line_number":186,"context_line":"\t}"}],"source_content_type":"text/x-ttcn-cfg","patch_set":17,"id":"2ecb373e_6ec32f62","line":183,"updated":"2021-08-15 23:33:01.000000000","message":"still expr issue and also two lines below","commit_id":"02791142a1583a17e3897eedd2d912d2c8248d9d"}]}
