SDK version: nRF5_SDK_15.0.0_a53641a
Softdevice version: s132_nrf52_6.0.0_softdevice
Hardware: nrf52DK PCA10040
nrfutil version 5.2.0
Hi,
I am trying to get the DFU via UART to work. I am using the secure bootloader secure_bootloader\pca10040_uart_debug example in the SDK to create the bootloader.
I created my own dfu_public_key.c following the instructions using nrfutil and replaced it in the bootloader folder. I also built the application .zip package using the matching private key.
I see in the RTT log that the DFU process is succesful and that the key is verified and that the application is written to flash succesfully in the RTT log. But after that the DK is stuck in continous reset mode with the bootloader and does load the application. Following is the RTT log capture (relevant section). Any help in this is much appreciated.
As you can see the FLASH was successful (passing the key check CRC etc..),the issue comes after that with the hardware stuck in this bootloader/reset loop.
<debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0002E640, src=0x20000E98, len=64 bytes), queue usage: 1
<debug> nrf_dfu_flash: Flash write success: addr=0x0002E640, pending 0
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> app: Shutting down transports (found: 1)
<info> nrf_dfu_serial_uart: Allocated buffer 20000E94
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
<debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0002E680, src=0x20000F1C, len=64 bytes), queue usage: 1
<debug> nrf_dfu_flash: Flash write success: addr=0x0002E680, pending 0
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> app: Shutting down transports (found: 1)
<info> nrf_dfu_serial_uart: Allocated buffer 20000F18
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)
<debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0002E6C0, src=0x20000E98, len=56 bytes), queue usage: 1
<debug> app: Shutting down transports (found: 1)
<info> nrf_dfu_serial_uart: Allocated buffer 20000F18
<debug> nrf_dfu_flash: Flash write success: addr=0x0002E6C0, pending 0
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)
<debug> nrf_dfu_req_handler: Offset:34552, CRC:0xC0978E80
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x3, 0x1]
<debug> app: Shutting down transports (found: 1)
<info> nrf_dfu_serial_uart: Allocated buffer 20000F18
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)
<debug> nrf_dfu_req_handler: Postvalidation of firmware image.
<debug> nrf_dfu_validation: Hash verification. Firmware start address: 0x26000, size: 0x86F8
<debug> nrf_dfu_validation: Invalidating old application in bank 0.
<debug> nrf_dfu_serial: Sending Response: [0x4, 0x1]
<debug> nrf_dfu_settings: Writing settings...
<debug> nrf_dfu_settings: Erasing old settings at: 0x0007F000
<debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0007F000, len=1 pages), queue usage: 1
<debug> nrf_dfu_flash: Flash erase success: addr=0x0007F000, pending 0
<debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0007F000, src=0x2000070C, len=348 bytes), queue usage: 1
<debug> nrf_dfu_flash: Flash write success: addr=0x0007F000, pending 0
<debug> nrf_dfu_req_handler: All flash operations have completed. DFU completed.
<debug> app: Shutting down transports (found: 1)
<debug> app: Resetting bootloader.
<info> app: Inside main
<debug> app: In nrf_bootloader_init
<debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
<debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
<debug> app: Enter nrf_bootloader_fw_activate
<debug> app: Valid App
<debug> app: Enter nrf_dfu_app_continue
<debug> app: No copy needed src_addr: 0x26000, dst_addr: 0x26000
<debug> app: Setting app as valid
<debug> nrf_dfu_settings: Writing settings...
<debug> nrf_dfu_settings: Erasing old settings at: 0x0007F000
<debug> nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0007F000, len=1 pages), queue usage: 0
<debug> nrf_dfu_flash: Flash erase success: addr=0x0007F000, pending 0
<debug> nrf_dfu_flash: nrf_fstorage_write(addr=0x0007F000, src=0x2000070C, len=348 bytes), queue usage: 1
<debug> nrf_dfu_flash: Flash write success: addr=0x0007F000, pending 0
<debug> app: Resetting bootloader.
<info> app: Inside main
<debug> app: In nrf_bootloader_init
<debug> nr<info> app: Inside main
<debug> app: In nrf_boo<info> app: Inside main
<debug> app: In nrf_boo<info> app: Inside main
<debug> app: In nrf_boo<info> app: Inside main
<debug> app: In nrf_boo<info> app: Inside main
<debug> app: In nrf_bootloa<info> app: Inside main
<debug> app: In nrf<info> app: Inside main
<debug> app: In nrf<info> app: Inside main
<debug> app: In nrf_boo<info> app: Inside main
<debug> app: In nrf<info> app: Inside main
<debug> app: In nrf_boo<info> app: Inside main
<debug> app: In nrf_bootloa<info> app: Inside main