"Image does not have a hash TLV" when using external flash for DFU

Hello,

 

I am working on adding MCUboot to my custom board (using nRF52832 chip) to make it DFU-able. That works fine when using internal flash but never when moving the partition mcuboot_secondary to external flash.

 

There are no build or flash errors, partitioning seems to be working (dynamically with PM and statically with a pm_static.yml file - I tried both). I followed the steps of "nRF Connect SDK Intermediate" course ( https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-3-dfu-with-external-flash/). I am using AuTerm to send firmware updates via UART. When uploading the new firmware, AuTerm reports that "the image does not have a hash TLV" and mcuboot does not swap the images and no update is performed.

Currently I am using partition manager without any static partitioning.

My external flash is connected via SPI. I can write to and erase the flash in the application, so I assume that the DTS definition is ok.

I am using nrf Connect SDK (v. 3.1.1) / Zephyr v.4.1.99 in VS Code on Windows.
When I simply comment out the lines in my sysbuild.conf:

SB_CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
SB_CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y

And thus use internal flash for mcuboot_secondary instead, the update works fine.

For this reason, I assume that the problem lies somewhere in the communication between the mcuboot and the external flash but I am running out of ideas.

Parents Reply Children
Related