I'm investigating a failure in 2 devices. The devices are immediately failing in application start-up due to fds_init failure. I tracked the failure back to fds pages_init returning NO_SWAP status.
This product uses nrf5232, with SDK 15.0.0.
The application is configured with
#define FDS_ENABLED 1
#define FDS_VIRTUAL_PAGES 6
#define FDS_VIRTUAL_PAGE_SIZE 1024
#define FDS_BACKEND 2
#define FDS_OP_QUEUE_SIZE 4
#define FDS_CRC_CHECK_ON_READ 0
#define FDS_CRC_CHECK_ON_WRITE 0
#define FDS_MAX_USERS 4
The secure_bootloader has.
#define FDS_ENABLED 0
After reading back the complete image and overwriting the bootloader with a version that would immediately proceed to the application, I was able to add logging to the FDS pages_init function. I found the first 2 pages hold non-fds data, and the remaining 4 pages have fds data pages. There is no FDS swap page found.
The non-fds data pages are odd. They are NOT a result of an incomplete swap page erase procedure. (As explained in https://devzone.nordicsemi.com/f/nordic-q-a/44723/fds---data-corruption-during-an-interrupted-swap/176032#176032) They appear to contain some garbage data.
Is there some other module that might be also be modifying flash memory? Are there any updates available for FDS to resolve the known bugs?