)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"d3ca986a9522042d02e2634fb33bbf66d552813c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"46876ac8_bad63faa","updated":"2026-02-26 12:00:10.000000000","message":"Sorry for the delay. I had other topic to take care off.","commit_id":"d467e531a7034b775a30072cf2786372e556ea09"}],"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":"411006fdf8228943ea2dfa349633f3ba816c3c19","unresolved":true,"context_lines":[{"line_number":398,"context_line":"\t\tLOG_ERROR(\"Invalid page size %u\", efm32_mcu_info-\u003epage_size);"},{"line_number":399,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":400,"context_line":"\t}"},{"line_number":401,"context_line":"\tif (efm32_mcu_info-\u003efamily_data-\u003epage_size !\u003d 2) {"},{"line_number":402,"context_line":"\t\tefm32_mcu_info-\u003epage_size_ud \u003d efm32_mcu_info-\u003epage_size;"},{"line_number":403,"context_line":"\t} else {"},{"line_number":404,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"626b2bbc_8321e2c6","line":401,"range":{"start_line":401,"start_character":34,"end_line":401,"end_character":43},"updated":"2026-02-11 20:52:36.000000000","message":"Looks like copypasta. Should be `-\u003eseries`?\nAfter this fix userdata.flash @ EFR32BG22 C224 reports size 1 KiB, same as RM","commit_id":"0728a6534feb6d94d62cf17383760f7725b04469"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"2f664dc0bfc73b1d97aad1ee486391249171de9b","unresolved":true,"context_lines":[{"line_number":398,"context_line":"\t\tLOG_ERROR(\"Invalid page size %u\", efm32_mcu_info-\u003epage_size);"},{"line_number":399,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":400,"context_line":"\t}"},{"line_number":401,"context_line":"\tif (efm32_mcu_info-\u003efamily_data-\u003epage_size !\u003d 2) {"},{"line_number":402,"context_line":"\t\tefm32_mcu_info-\u003epage_size_ud \u003d efm32_mcu_info-\u003epage_size;"},{"line_number":403,"context_line":"\t} else {"},{"line_number":404,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"607f656f_5dab3ff0","line":401,"range":{"start_line":401,"start_character":34,"end_line":401,"end_character":43},"in_reply_to":"626b2bbc_8321e2c6","updated":"2026-02-12 18:40:09.000000000","message":"Exactly, that\u0027s wrong. Also, you need to enable the MSC clock before reading the user data size. Otherwise the read fails - at least on EFM32PG28.","commit_id":"0728a6534feb6d94d62cf17383760f7725b04469"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"d3ca986a9522042d02e2634fb33bbf66d552813c","unresolved":false,"context_lines":[{"line_number":398,"context_line":"\t\tLOG_ERROR(\"Invalid page size %u\", efm32_mcu_info-\u003epage_size);"},{"line_number":399,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":400,"context_line":"\t}"},{"line_number":401,"context_line":"\tif (efm32_mcu_info-\u003efamily_data-\u003epage_size !\u003d 2) {"},{"line_number":402,"context_line":"\t\tefm32_mcu_info-\u003epage_size_ud \u003d efm32_mcu_info-\u003epage_size;"},{"line_number":403,"context_line":"\t} else {"},{"line_number":404,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"f2837bfd_fe6c7227","line":401,"range":{"start_line":401,"start_character":34,"end_line":401,"end_character":43},"in_reply_to":"626b2bbc_8321e2c6","updated":"2026-02-26 12:00:10.000000000","message":"There was also an issue with the lock register. The offset was not correct an Series-2. I have fixed that in \"flash/nor/efm32: Support write flash on Series-2\"\n\nNow, properly able to write the bank.","commit_id":"0728a6534feb6d94d62cf17383760f7725b04469"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"411006fdf8228943ea2dfa349633f3ba816c3c19","unresolved":true,"context_lines":[{"line_number":403,"context_line":"\t} else {"},{"line_number":404,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"},{"line_number":405,"context_line":"\t\t\t\t\t\t\t efm32_mcu_info-\u003edi_addr-\u003epage_size,"},{"line_number":406,"context_line":"\t\t\t\t\t\t\t \u0026tmp32);"},{"line_number":407,"context_line":"\t\tif (ret !\u003d ERROR_OK)"},{"line_number":408,"context_line":"\t\t\treturn ret;"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"e49eb200_28f01bdb","line":406,"updated":"2026-02-11 20:52:36.000000000","message":"Probably better to read just once on series !\u003d 0, not as u8 @ line 385 and now as u32","commit_id":"0728a6534feb6d94d62cf17383760f7725b04469"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"d3ca986a9522042d02e2634fb33bbf66d552813c","unresolved":false,"context_lines":[{"line_number":403,"context_line":"\t} else {"},{"line_number":404,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"},{"line_number":405,"context_line":"\t\t\t\t\t\t\t efm32_mcu_info-\u003edi_addr-\u003epage_size,"},{"line_number":406,"context_line":"\t\t\t\t\t\t\t \u0026tmp32);"},{"line_number":407,"context_line":"\t\tif (ret !\u003d ERROR_OK)"},{"line_number":408,"context_line":"\t\t\treturn ret;"},{"line_number":409,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"3a085fb4_29b85a0f","line":406,"in_reply_to":"e49eb200_28f01bdb","updated":"2026-02-26 12:00:10.000000000","message":"Done","commit_id":"0728a6534feb6d94d62cf17383760f7725b04469"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3efcedca3256a8426f86b4e0940815ecfae1bf52","unresolved":true,"context_lines":[{"line_number":142,"context_line":"\t\t.off_wdata     \u003d 0x0018,"},{"line_number":143,"context_line":"\t\t.off_status    \u003d 0x001c,"},{"line_number":144,"context_line":"\t\t.off_lock      \u003d 0x003c,"},{"line_number":145,"context_line":"\t\t.off_userdatasize \u003d 0x0000, /* Does not exist in Series 0/1 */"},{"line_number":146,"context_line":"\t\t.flash_write_code \u003d efm32_flash_write_code_s0_s1,"},{"line_number":147,"context_line":"\t\t.flash_write_code_len \u003d sizeof(efm32_flash_write_code_s0_s1),"},{"line_number":148,"context_line":"\t},"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"31f2540c_0e8bf19d","line":145,"updated":"2026-03-07 11:12:26.000000000","message":"Use `//` for single-line comments.","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"470f161041e8a4820529f01e3e56d7bc8e54b761","unresolved":false,"context_lines":[{"line_number":142,"context_line":"\t\t.off_wdata     \u003d 0x0018,"},{"line_number":143,"context_line":"\t\t.off_status    \u003d 0x001c,"},{"line_number":144,"context_line":"\t\t.off_lock      \u003d 0x003c,"},{"line_number":145,"context_line":"\t\t.off_userdatasize \u003d 0x0000, /* Does not exist in Series 0/1 */"},{"line_number":146,"context_line":"\t\t.flash_write_code \u003d efm32_flash_write_code_s0_s1,"},{"line_number":147,"context_line":"\t\t.flash_write_code_len \u003d sizeof(efm32_flash_write_code_s0_s1),"},{"line_number":148,"context_line":"\t},"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"536a3ae8_ee77e4e8","line":145,"in_reply_to":"31f2540c_0e8bf19d","updated":"2026-03-08 10:16:21.000000000","message":"Done","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3efcedca3256a8426f86b4e0940815ecfae1bf52","unresolved":true,"context_lines":[{"line_number":153,"context_line":"\t\t.off_wdata     \u003d 0x0018,"},{"line_number":154,"context_line":"\t\t.off_status    \u003d 0x001c,"},{"line_number":155,"context_line":"\t\t.off_lock      \u003d 0x0040,"},{"line_number":156,"context_line":"\t\t.off_userdatasize \u003d 0x0000, /* Does not exist in Series 0/1 */"},{"line_number":157,"context_line":"\t\t.flash_write_code \u003d efm32_flash_write_code_s0_s1,"},{"line_number":158,"context_line":"\t\t.flash_write_code_len \u003d sizeof(efm32_flash_write_code_s0_s1),"},{"line_number":159,"context_line":"\t},"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"9876eee7_f8a144d8","line":156,"updated":"2026-03-07 11:12:26.000000000","message":"Same here.","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"470f161041e8a4820529f01e3e56d7bc8e54b761","unresolved":false,"context_lines":[{"line_number":153,"context_line":"\t\t.off_wdata     \u003d 0x0018,"},{"line_number":154,"context_line":"\t\t.off_status    \u003d 0x001c,"},{"line_number":155,"context_line":"\t\t.off_lock      \u003d 0x0040,"},{"line_number":156,"context_line":"\t\t.off_userdatasize \u003d 0x0000, /* Does not exist in Series 0/1 */"},{"line_number":157,"context_line":"\t\t.flash_write_code \u003d efm32_flash_write_code_s0_s1,"},{"line_number":158,"context_line":"\t\t.flash_write_code_len \u003d sizeof(efm32_flash_write_code_s0_s1),"},{"line_number":159,"context_line":"\t},"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"d30f82b9_380413be","line":156,"in_reply_to":"9876eee7_f8a144d8","updated":"2026-03-08 10:16:21.000000000","message":"Done","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3efcedca3256a8426f86b4e0940815ecfae1bf52","unresolved":true,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"\tfree(bank-\u003esectors);"},{"line_number":1224,"context_line":"\tbank-\u003esectors \u003d NULL;"},{"line_number":1225,"context_line":""},{"line_number":1226,"context_line":"\tif (bank-\u003ebase \u003d\u003d base_address) { /* main flash */"},{"line_number":1227,"context_line":"\t\tpage_size \u003d efm32_mcu_info-\u003epage_size;"},{"line_number":1228,"context_line":"\t\tbank-\u003enum_sectors \u003d efm32_mcu_info-\u003eflash_sz_kib * 1024 / page_size;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"0e4c65dc_1284baac","line":1225,"updated":"2026-03-07 11:12:26.000000000","message":"Declare `page_size` here.","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"470f161041e8a4820529f01e3e56d7bc8e54b761","unresolved":false,"context_lines":[{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"\tfree(bank-\u003esectors);"},{"line_number":1224,"context_line":"\tbank-\u003esectors \u003d NULL;"},{"line_number":1225,"context_line":""},{"line_number":1226,"context_line":"\tif (bank-\u003ebase \u003d\u003d base_address) { /* main flash */"},{"line_number":1227,"context_line":"\t\tpage_size \u003d efm32_mcu_info-\u003epage_size;"},{"line_number":1228,"context_line":"\t\tbank-\u003enum_sectors \u003d efm32_mcu_info-\u003eflash_sz_kib * 1024 / page_size;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"eeeecd40_f10e79ca","line":1225,"in_reply_to":"0e4c65dc_1284baac","updated":"2026-03-08 10:16:21.000000000","message":"Done","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"3efcedca3256a8426f86b4e0940815ecfae1bf52","unresolved":true,"context_lines":[{"line_number":1230,"context_line":"\t} else if (efm32_info-\u003einfo.family_data-\u003eseries !\u003d 2) {"},{"line_number":1231,"context_line":"\t\tpage_size \u003d efm32_mcu_info-\u003epage_size_ud;"},{"line_number":1232,"context_line":"\t\tbank-\u003enum_sectors \u003d 1;"},{"line_number":1233,"context_line":"\t} else {"},{"line_number":1234,"context_line":"\t\tret \u003d efm32_msc_clock_enable(bank);"},{"line_number":1235,"context_line":"\t\tif (ret !\u003d ERROR_OK)"},{"line_number":1236,"context_line":"\t\t\treturn ret;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"4de1f19b_c59236e6","line":1233,"updated":"2026-03-07 11:12:26.000000000","message":"Declare `userdata_size` here (use `_` to separate words).","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"aacec55c1e44e08103e79ad2c6eddd4ab6eab5ff","unresolved":false,"context_lines":[{"line_number":1230,"context_line":"\t} else if (efm32_info-\u003einfo.family_data-\u003eseries !\u003d 2) {"},{"line_number":1231,"context_line":"\t\tpage_size \u003d efm32_mcu_info-\u003epage_size_ud;"},{"line_number":1232,"context_line":"\t\tbank-\u003enum_sectors \u003d 1;"},{"line_number":1233,"context_line":"\t} else {"},{"line_number":1234,"context_line":"\t\tret \u003d efm32_msc_clock_enable(bank);"},{"line_number":1235,"context_line":"\t\tif (ret !\u003d ERROR_OK)"},{"line_number":1236,"context_line":"\t\t\treturn ret;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"262aee5a_3cb9ca27","line":1233,"in_reply_to":"048bc508_508628b4","updated":"2026-04-13 19:18:49.000000000","message":"Ack","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"470f161041e8a4820529f01e3e56d7bc8e54b761","unresolved":true,"context_lines":[{"line_number":1230,"context_line":"\t} else if (efm32_info-\u003einfo.family_data-\u003eseries !\u003d 2) {"},{"line_number":1231,"context_line":"\t\tpage_size \u003d efm32_mcu_info-\u003epage_size_ud;"},{"line_number":1232,"context_line":"\t\tbank-\u003enum_sectors \u003d 1;"},{"line_number":1233,"context_line":"\t} else {"},{"line_number":1234,"context_line":"\t\tret \u003d efm32_msc_clock_enable(bank);"},{"line_number":1235,"context_line":"\t\tif (ret !\u003d ERROR_OK)"},{"line_number":1236,"context_line":"\t\t\treturn ret;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"048bc508_508628b4","line":1233,"in_reply_to":"4de1f19b_c59236e6","updated":"2026-03-08 10:16:21.000000000","message":"The field `off_userdatasize` (and the other `off_*` fields) reuse the name f the register as written in the reference manual. Then, `userdatasize` reuse the same name to avoid confusion.\nDo you still want to add a `_`?","commit_id":"b9b6fa021be4fe8abb137305d1af0e7280caf2d9"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"aacec55c1e44e08103e79ad2c6eddd4ab6eab5ff","unresolved":true,"context_lines":[{"line_number":383,"context_line":"\t\t\tefm32_mcu_info-\u003epage_size \u003d 2048;"},{"line_number":384,"context_line":"\t\telse"},{"line_number":385,"context_line":"\t\t\tefm32_mcu_info-\u003epage_size \u003d 4096;"},{"line_number":386,"context_line":"\t} else {"},{"line_number":387,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"},{"line_number":388,"context_line":"\t\t\t\t\t\t\t efm32_mcu_info-\u003edi_addr-\u003epage_size,"},{"line_number":389,"context_line":"\t\t\t\t\t\t\t \u0026val32);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"1b404916_04a2a4dc","line":386,"updated":"2026-04-13 19:18:49.000000000","message":"Declare `val32` here.","commit_id":"3f07c4727312374a5762a4840354017ca0fddffa"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"a5cc8b459cf7aafbbc9310a9f3d1916f85d81c58","unresolved":false,"context_lines":[{"line_number":383,"context_line":"\t\t\tefm32_mcu_info-\u003epage_size \u003d 2048;"},{"line_number":384,"context_line":"\t\telse"},{"line_number":385,"context_line":"\t\t\tefm32_mcu_info-\u003epage_size \u003d 4096;"},{"line_number":386,"context_line":"\t} else {"},{"line_number":387,"context_line":"\t\tret \u003d target_read_u32(bank-\u003etarget,"},{"line_number":388,"context_line":"\t\t\t\t\t\t\t efm32_mcu_info-\u003edi_addr-\u003epage_size,"},{"line_number":389,"context_line":"\t\t\t\t\t\t\t \u0026val32);"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"b5cd89d6_f43296f3","line":386,"in_reply_to":"1b404916_04a2a4dc","updated":"2026-04-14 07:03:32.000000000","message":"Done","commit_id":"3f07c4727312374a5762a4840354017ca0fddffa"}]}
