saving twice did not help. I have logs where reading both locations failed.
These are the kind of errors module spits on UART:
[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565
complete log sequence:
(NOTE: the “ASSERT >>> [FLASH] WRITE DEFAULTS” comments are from our code when both locations failed to read)
“2025-07-05 17:46:38:203”,[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_mapping_table_init, line: 1565[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_read, line: 982[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_read, line: 982ASSERT >>> [FLASH] WRITE DEFAULTS
“2025-07-05 17:46:38:752”,[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:b6, read value:36312e32[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:b4, read value:39310001[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:b2, read value:7d00fa0[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:b0, read value:2166abcd[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:ae, read value:ffffff[FTL_LEVEL_ERROR]:ftl_check_logical_addr logical_addr exceed MAX_logical_address_size (0xa8c0, 0xff4)[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:aa, read value:a001a8c0[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:a8, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:a6, read value:1[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:a4, read value:ffc32f3f[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:a2, read value:7962dcff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:a0, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:9e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:9c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:9a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:98, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:96, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:94, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:92, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:90, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:8e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:8c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:8a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:88, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:86, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:84, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:82, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:80, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:7e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:7c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:7a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:78, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:76, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:74, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:72, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:70, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:6e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:6c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:6a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:68, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:66, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:64, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:62, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:60, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:5e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:5c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:5a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:58, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:56, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:54, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:52, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:50, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:4e, read value:ffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:4c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:4a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:48, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:46, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:44, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:42, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:40, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:3e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:3c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:3a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:38, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:36, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:34, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:32, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:30, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:2e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:2c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:2a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:28, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:26, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:24, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:22, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:20, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:1e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:1c, read value:ffff0199[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:1a, read value:1ff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:18, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:16, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:14, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:12, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:10, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:e, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:c, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:a, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:8, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:6, read value:ffffffff[FTL_LEVEL_ERROR]:ftl_page_garbage_collect_Imp:length != 1!recycle page:2, retry_count:2, index:4, read value:ffffffffREADY
ROR]:[ftl] length != 1! func: ftl_read, line: 982[FTL_LEVEL_ERROR]:[ftl] length != 1! func: ftl_read, line: 982ASSERT >>> [FLASH] WRITE DEFAULTS