NRF5340 MCUBOOT DFU failed: Slot image has no hash TLV

Hi Nordic,

We have a custom board based on nrf5340(no extern flash). And the DFU works ok with only app update based on ncs 2.5.0

CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_IMG_ERASE_PROGRESSIVELY=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_VALIDATION=y

But we cann't perform APP+NET core update by add.

CONFIG_NRF53_UPGRADE_NETWORK_CORE=y
# CONFIG_UPDATEABLE_IMAGE_NUMBER=2
The nrf connect app always show error below:
The log file
Scanner On.
Device Scanned.
Connected.
Discovered 00001523-13E7-4AA0-B835-3057D65AFC7C and SMP Service Services.
Discovered Characteristics 00001526-13E7-4AA0-B835-3057D65AFC7C, 00001527-13E7-4AA0-B835-3057D65AFC7C, and 00001528-13E7-4AA0-B835-3057D65AFC7C for Service 00001523-13E7-4AA0-B835-3057D65AFC7C.
Discovered Characteristics SMP Characteristic for Service SMP Service.
Discovered Client Characteristic Configuration for Characteristic 00001526-13E7-4AA0-B835-3057D65AFC7C
Discovered Client Characteristic Configuration for Characteristic 00001527-13E7-4AA0-B835-3057D65AFC7C
Characteristic 00001528-13E7-4AA0-B835-3057D65AFC7C has no Descriptors.
Discovered Client Characteristic Configuration for Characteristic SMP Characteristic
Device Appearance switched from Generic to McuMgrDFU.
Found valid Firmware in file:///var/mobile/Containers/Data/Application/7AAA04F0-7EC3-4AD5-B36F-7B7F87978B8D/Library/Caches/dfu_applicationA91A2091-7B65-492B-AAE2-CE99EAFC98FE-82933-00000F36EB16C2CE.zip for Device DFU McuMgr.
Upgrade started with 2 image(s) using 'Confirm only' mode
Firmware Upgrade Started.
State changed from none to requestMcuMgrParameters
Peripheral connected
Device ready
Mcu Manager parameters received (4 x 2475)
State changed from requestMcuMgrParameters to bootloaderInfo
Bootloader info received (mode: Swap without scratch)
State changed from bootloaderInfo to validate
Image List response: Header: {"version": "1", "op": "1", "flags": 0, "length": 134, "group": 1, "seqNum": 169, "commandId": 0}, Payload: {"images" : {{"slot" : 0, "pending" : false, "permanent" : false, "bootable" : true, "version" : "0.0.0", "hash" : 0x5B2FAACF9B6D1871E74EC9856FC3259D47D25DA65CEB1BE410059A1F5982FDB6, "active" : true, "confirmed" : true}}, "splitStatus" : 0}
Scheduling upload (hash: 0x2DBBDD879C0D6001105CE5E277450C4BE17E8B928B567D12CC7FF46E4E6B8107) for image 0 (slot: 1)
Scheduling upload (hash: 0xC05A19DB4385EA11EAE7CAA5119F3E8B02544507D9A2F592EF4BB986ADDC17F1) for image 1 (slot: 1)
State changed from validate to upload
No remaining chunks to be sent? chunkOffset: 207388, imageData: 207388.
No remaining chunks to be sent? chunkOffset: 207388, imageData: 207388.
Uploaded image 0 (1 of 2)
Uploading image 1 with Target Slot 1 (181352 bytes)...
No remaining chunks to be sent? chunkOffset: 181352, imageData: 181352.
No remaining chunks to be sent? chunkOffset: 181352, imageData: 181352.
Upload finished (2 of 2)
State changed from upload to eraseAppSettings
App settings erased
State changed from eraseAppSettings to confirm
Image Confirm response: Header: {"version": "1", "op": "3", "flags": 0, "length": 19, "group": 1, "seqNum": 74, "commandId": 0}, Payload: {"err" : {"group" : 1, "rc" : Not supported}}
Slot image has no hash TLV
DFU failed: Slot image has no hash TLV
DFU Failed with Error: Slot image has no hash TLV
What should we do if we want to do both application & network app update
Thanks
Chen
Parents Reply
  • Hi,

    No, none of the samples that showcases simultaneous DFU from the unofficial bootloader gitrepository uses internal flash and simultaneous DFU. But if you follow the documentation I sent you regarding simultaneous DFU you should be able to add support for this without adding external flash.

    The reason for why our samples only uses external flash is due to the application size. For simultaneous DFU you need to be able to fit both your app-core firmware and net-core firmware within mcuboot_secondary application slot, meaning that it will leave you with ~350kB available flash for your appcore firmware on your mcuboot primary application slot. It is not recommended to use simultaneous DFU and internal flash due to this limitation, but it is possible to do.

    Kind regards,
    Andreas

Children
Related