)]}'
{"src/flash/nor/efm32.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"eece3c9703bf596d99d91cf8dfa1c52634f7d35c","unresolved":true,"context_lines":[{"line_number":1178,"context_line":"\tfree(bank-\u003esectors);"},{"line_number":1179,"context_line":"\tbank-\u003esectors \u003d NULL;"},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"\tefm32_mcs_clock_enable(bank);"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":"\tif (bank-\u003ebase \u003d\u003d EFM32_FLASH_BASE) {"},{"line_number":1184,"context_line":"\t\tbank-\u003enum_sectors \u003d efm32_mcu_info-\u003eflash_sz_kib * 1024 / efm32_mcu_info-\u003epage_size;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"c5680520_9756796e","line":1181,"updated":"2026-02-06 20:06:26.000000000","message":"The flash is probed also during gdb attach and user may continue MCU app.\nTherefore the probe should not change MCU state. Although MCS clock enabling is very unlikely to make any conflict with MCU app I do not understand why the original code needs `efm32_read_lock_data()` in the probe. Would not be better to read fresh lock data at the beginning of `protect()` in addition to existing read in `protect_check()`?","commit_id":"6dad105ca6b36b12ebe2327b27c0a4cf9bd2a188"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"699a189249e3480bae9711d0aed4c3427408f92e","unresolved":false,"context_lines":[{"line_number":1178,"context_line":"\tfree(bank-\u003esectors);"},{"line_number":1179,"context_line":"\tbank-\u003esectors \u003d NULL;"},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"\tefm32_mcs_clock_enable(bank);"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":"\tif (bank-\u003ebase \u003d\u003d EFM32_FLASH_BASE) {"},{"line_number":1184,"context_line":"\t\tbank-\u003enum_sectors \u003d efm32_mcu_info-\u003eflash_sz_kib * 1024 / efm32_mcu_info-\u003epage_size;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"1b9dd46a_f11f9fb1","line":1181,"in_reply_to":"c5680520_9756796e","updated":"2026-02-10 17:25:23.000000000","message":"Done","commit_id":"6dad105ca6b36b12ebe2327b27c0a4cf9bd2a188"},{"author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"c2369f97f51a1933a2008f2fe18023312e8e05bc","unresolved":true,"context_lines":[{"line_number":104,"context_line":"#define EFM32_MSC_STATUS_ERASEABORTED_MASK   0x0020"},{"line_number":105,"context_line":"#define EFM32_MSC_LOCK_LOCKKEY               0x1b71"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"/* Series 2 only */"},{"line_number":108,"context_line":"#define EFM32_CMU_REG_CLKEN1_SET         0x50009068"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"enum efm32_bank_index {"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"df5685c1_af063945","line":107,"updated":"2026-03-07 11:05:39.000000000","message":"Use `//` for single-line comments, see coding style.","commit_id":"5bfbfb4c400b42bdcc431a76dc68577c11d598c5"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"d766f299168ba0fa40ba832594fd2b2bb2752983","unresolved":false,"context_lines":[{"line_number":104,"context_line":"#define EFM32_MSC_STATUS_ERASEABORTED_MASK   0x0020"},{"line_number":105,"context_line":"#define EFM32_MSC_LOCK_LOCKKEY               0x1b71"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"/* Series 2 only */"},{"line_number":108,"context_line":"#define EFM32_CMU_REG_CLKEN1_SET         0x50009068"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"enum efm32_bank_index {"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"1b5405aa_2f1fc9d3","line":107,"in_reply_to":"df5685c1_af063945","updated":"2026-03-08 10:15:46.000000000","message":"Done","commit_id":"5bfbfb4c400b42bdcc431a76dc68577c11d598c5"},{"author":{"_account_id":1000853,"name":"Marc Schink","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"c2369f97f51a1933a2008f2fe18023312e8e05bc","unresolved":true,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"static int efm32_msc_clock_enable(struct flash_bank *bank)"},{"line_number":398,"context_line":"{"},{"line_number":399,"context_line":"\tstruct efm32_flash_chip *efm32_info \u003d bank-\u003edriver_priv;"},{"line_number":400,"context_line":"\tunsigned int s2_family;"},{"line_number":401,"context_line":"\tuint32_t msc_clken;"},{"line_number":402,"context_line":"\tint ret;"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"a64e1cd4_c9327312","line":399,"updated":"2026-03-07 11:05:39.000000000","message":"Declare variables when they\u0027re used, see coding style.","commit_id":"5bfbfb4c400b42bdcc431a76dc68577c11d598c5"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"d766f299168ba0fa40ba832594fd2b2bb2752983","unresolved":false,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"static int efm32_msc_clock_enable(struct flash_bank *bank)"},{"line_number":398,"context_line":"{"},{"line_number":399,"context_line":"\tstruct efm32_flash_chip *efm32_info \u003d bank-\u003edriver_priv;"},{"line_number":400,"context_line":"\tunsigned int s2_family;"},{"line_number":401,"context_line":"\tuint32_t msc_clken;"},{"line_number":402,"context_line":"\tint ret;"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"32605479_f2b560a5","line":399,"in_reply_to":"a64e1cd4_c9327312","updated":"2026-03-08 10:15:46.000000000","message":"Done","commit_id":"5bfbfb4c400b42bdcc431a76dc68577c11d598c5"}]}
