Hi,
I am using nRF9151 with nRF Connect SDK 2.9.0.
In our project we are using an external NAND flash (MT29F4G01ABAFDWB) over SPI, and it is working successfully.
We can perform page write/read operations and also run our filesystem on it without issues.
We also have an external Wi-Fi module (SiWG917Y) connected over UART.
Using this Wi-Fi module, we download an OTA file using HTTP and store it into our external NAND flash.
We also verify the CRC of the OTA file, and the CRC matches correctly.
After writing the OTA file, we trigger a reboot.
Current Setup
-
We only use Primary Application Partition on internal flash.
→ No secondary slot partition in internal flash. -
OTA file is fully stored in the external NAND flash.
-
CRC check of downloaded OTA firmware is done and successful.
-
System reboots after download.
Goal
We want to implement Single-Image OTA update, where the bootloader will take the firmware image stored in external NAND flash and update the internal flash of nRF9151.
Question
Since we do not have a secondary partition in internal flash, and the new image is stored externally, what steps should we take to modify or configure the bootloader so that it:
-
Reads the OTA image from external NAND flash after reboot.
-
Validates the image (hash/CRC).
-
Writes the new firmware into the primary app region.
-
Boots into the updated firmware.
What is the recommended approach in NCS to support this kind of external-flash single-image update?
Is there an official reference for staging an image from external Nand flash storage instead of using the built-in secondary slot?
Or any other guidance for ota using external nand flash
Best regards,
Milan