What about DFU suffix signature?

A simple question: when I update the firmware of my DFU device via USB with the dfu-utils application I get the message

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release

Is it possible to manage the suffix signature in the actual nRF Connect SDK?

Parents Reply Children
  • Thanks for your reply Amanda,

    I'm trying to use the nRF Util but I have the same problem of this post. I've added the

    CONFIG_USB_DEVICE_VID=0x1915
    CONFIG_USB_DEVICE_PID=0x5300

    in the child_image/mcuboot.conf but nothing changed. My child_image/mcuboot.conf is

    CONFIG_BOOT_SIGNATURE_TYPE_RSA=y
    CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256=n
    CONFIG_BOOT_SIGNATURE_KEY_FILE="C:/ncsapps/gravity/sdk_2_3_0/cruise_dongle/child_image/cruise_dongle_private_key.pem"
    CONFIG_USB_DEVICE_VID=0x1915
    CONFIG_USB_DEVICE_PID=0x5300

    and the prj.conf is

    ################################################
    ### SYSTEM CONFIGURATION #######################
    ################################################
    CONFIG_LOG=y
    CONFIG_USE_SEGGER_RTT=y
    CONFIG_RTT_CONSOLE=y
    CONFIG_UART_CONSOLE=n
    CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y
    CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y
    CONFIG_HEAP_MEM_POOL_SIZE=2048
    CONFIG_MAIN_STACK_SIZE=2048
    CONFIG_FPU=y
    # CONFIG_DISABLE_FLASH_PATCH=y
    
    ################################################
    ### SOC'S PERIPHERALS CONFIGURATION ############
    ################################################
    CONFIG_GPIO=y
    CONFIG_PWM=y
    CONFIG_SERIAL=y
    CONFIG_UART_INTERRUPT_DRIVEN=y
    CONFIG_UART_LINE_CTRL=y
    CONFIG_USB_DEVICE_STACK=y
    CONFIG_USB_DEVICE_PRODUCT="Sensor Cruise Dongle"
    CONFIG_USB_DEVICE_PID=0x0001
    CONFIG_USB_DEVICE_VID=0xAD5A
    CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
    CONFIG_USB_COMPOSITE_DEVICE=y
    
    ################################################
    ### BLE CONFIGURATION ##########################
    ################################################
    CONFIG_BT_MAX_CONN=6
    CONFIG_BT=y
    CONFIG_BT_DEBUG_LOG=y
    CONFIG_BT_CENTRAL=y
    # CONFIG_BT_SMP=y
    CONFIG_BT_GATT_CLIENT=y
    CONFIG_BT_SCAN=y
    CONFIG_BT_SCAN_FILTER_ENABLE=y
    CONFIG_BT_SCAN_CONN_ATTEMPTS_FILTER=y
    CONFIG_BT_SCAN_CONN_ATTEMPTS_FILTER_LEN=6
    CONFIG_BT_SCAN_CONN_ATTEMPTS_COUNT=2
    CONFIG_BT_SCAN_UUID_CNT=1
    CONFIG_BT_GATT_DM=y
    CONFIG_BT_BUF_ACL_RX_SIZE=502
    CONFIG_BT_ATT_PREPARE_COUNT=2
    # CONFIG_BT_L2CAP_TX_BUF_COUNT=10
    CONFIG_BT_L2CAP_TX_MTU=498
    # CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
    CONFIG_BT_CONN_TX_MAX=10
    CONFIG_BT_BUF_ACL_TX_COUNT=10
    CONFIG_BT_BUF_ACL_TX_SIZE=502
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_CTLR_PHY_2M=y
    CONFIG_BT_CTLR_RX_BUFFERS=2
    CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=4000000
    
    CONFIG_BT_USER_DATA_LEN_UPDATE=y
    CONFIG_BT_USER_PHY_UPDATE=y
    
    ################################################
    ### FLASH MEMORY SUPPORT CONFIGURATION #########
    ################################################
    CONFIG_FLASH=y
    CONFIG_MPU_ALLOW_FLASH_WRITE=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    
    ################################################
    ### DFU CONFIGURATION 
    ### dfu-util --alt 1 --device ad5a:0001 --download C:\ncsapps\gravity\sdk_2_3_0\cruise_dongle\cruise_dongle_build\zephyr\app_update.bin
    ################################################
    CONFIG_USB_DFU_CLASS=y
    CONFIG_USB_DFU_ENABLE_UPLOAD=y
    # CONFIG_USB_DEVICE_DFU_PID=0xABCD
    CONFIG_IMG_MANAGER=y
    CONFIG_BOOTLOADER_MCUBOOT=y
    CONFIG_MCUBOOT_SIGNATURE_KEY_FILE=""
    # CONFIG_MCUBOOT_IMAGE_VERSION ="0.0.0+0"
    CONFIG_USB_DFU_REBOOT=y
    CONFIG_USB_DFU_PERMANENT_DOWNLOAD=y
    

    I've tryed to set CONFIG_USB_DEVICE_PID and CONFIG_USB_DEVICE_VID only in the mcuboot.conf but nothing. Any suggestion?

  • Hi, 

    Could you try this example mcuboot_serial_recovery_cdc_acm with adding CONFIG_USB_DEVICE_VID and CONFIG_USB_DEVICE_PID?

    -Amanda H. 

  • I've tryed to run the example on the nRF52840DK but nothing: I can't see it as USB device when i connect a USB to the nRF_USB connector and then I can't see the device when I run the nrfutil device list command.

  • Could you try to hold Button 1 while restarting the DK to activate the Serial Recovery Mode? 

  • I was holding the wrong button, my fault! Now I can see the device with the mcuBoot trait and I can upload the firmware, but now I have a last question (I hope).

    With the dfu-utils and my following configuration I can to upload the firmware simply sending a line command, for example

    dfu-util --alt 1 --device ad5a:0002 --download app_update.bin

    even if the application is running (not in DFU/SRM mode). Can I achieve this feature with nrfutil without press a button? 

Related