mcuboot missing trait mcuBoot in nrfutil

The board is nrf52840 based using mcuboot via usb, mcuboot can be activated using a switch, and is indicated via a led, all setup via device-tree, so no legacy here. Software is quite up to date using zephyr-2.4.99/ncs-2.5.0. Updating works fine using mcumgr, but as I understand it, this tool is deprecated and nrfutil is the new swiss-army-knive (devzone.nordicsemi.com/.../nrf-util-unified-command-line-utility).

But: Updating using nrfutil does not work, presumably because there is no mcuBoot trait listed for MCUBOOT. My question: How do I achieve that mcuboot shows this trait in nrfutil?

# nrfutil --version
nrfutil 7.6.0 (92ce3a0 2023-08-15)
commit-hash: 92ce3a0c1cc7e203326d85919d826009510dc631
commit-date: 2023-08-15
host: x86_64-apple-darwin
build-timestamp: 2023-08-23T08:22:30.0306Z
classification: nrf-external

# nrfutil device list
6XXXXXXXXXXXXXXB
product MCUBOOT
ports /dev/tty.usbmodem14301, vcom: 0
/dev/tty.usbmodem14303, vcom: 1
traits serialPorts, usb

Parents
  • Hi mdell,

    It seems that custom devices are not officially supported by nRF Util yet. The documentation says:

    nRF Util supports Nordic Semiconductor Development Kit (DK)s, prototyping platforms, and dongles.

    You could try adding --override-traits mcuBoot to the command and see if it helps?

    Hieu

  • I could not find any documentation about the --override-traits flag. If I try to use it, I get an error:

    nrfutil device program --firmware app_signed.hex --traits mcuBoot --override-traits mcuBoot 

    error: unexpected argument '--override-traits' found

    # nrfutil --version
    nrfutil 7.6.0 (92ce3a0 2023-08-15)
    commit-hash: 92ce3a0c1cc7e203326d85919d826009510dc631
    commit-date: 2023-08-15
    host: x86_64-apple-darwin
    build-timestamp: 2023-08-23T08:22:30.0306Z
    classification: nrf-external

    # nrfutil upgrade
    nrfutil-device is already the newest version (2.0.3)
    nrfutil-nrf5sdk-tools is already the newest version (1.0.1)

  • Hello Thibaud,

    Thibaud said:

    Are you talking about the experimental option in nrfutil device command x-boot-mode-get/set ?

    nrfutil can work with smpserver ?

    No, the feature isn't available right now. However, there will be a new feature to communicate with devices using the SMP Protocol.

    Thibaud said:

    I used it long time ago with mcumgr but now I am moving to nrfutil because it is faster in USB and I am looking for a way to starts my update sequence from application . For now I am able to do update with nrfutil but I need to have my product in bootloader.

    Firstly I was replying to this post because mcuboot traits was missing in nrfutil device list but since my comment I found that I needed to change VID/PID of my product.

    I am a little confused here. Do you communicate with your device using SMP Protocol over USB? What commands are you using?

    Regards,

    Hieu

  • Helo Hieu,

    For now I ddin't implemented SMP server in my app.

    I just flashed mcuBoot and using nrfUtil with mcuBoot. 

    Now I am looking for a way to go in bootloader from app via nrfUtil command.

    Regards

    Thibaud

  • Hi Thibaud,

    The protocol that you use to talk with MCUboot is also SMP Protocol. As mentioned, a more full-feature support for it is in the work, but we don't comment about release date on DevZone.

    Thibaud said:
    I just flashed mcuBoot and using nrfUtil with mcuBoot. 

    Do you mean you flash MCUboot using nrfUtil with a debugger? Or could you explain in more details what you did here?

    Regards,

    Hieu

  • Hi Hieu

    The protocol that you use to talk with MCUboot is also SMP Protocol. As mentioned, a more full-feature support for it is in the work, but we don't comment about release date on DevZone.

    Ok, no problem. And about the experimental option of nrfutil device command "x-boot-mode-get/set" can you do any comment ?

    Do you mean you flash MCUboot using nrfUtil with a debugger? Or could you explain in more details what you did here?

    I flashed a merged.hex of my app and mcuboot with a debugger and I am using nrfutil to do DFU.For now, I need to start my product in bootloader to be able to do the DFU and I am looking for a way to reset my product and start in boot. I thought I may be able to do it with nrfutil experimental option mentionned aboved but I don't know how to make my app handles the nrfutil commands.

    Regards

    Thibaud

  • Hi Thibaud,

    Thibaud said:
    And about the experimental option of nrfutil device command "x-boot-mode-get/set" can you do any comment ?

    My apologies but I am a little confused.
    What is wrong with this command? Are you expecting to use it to tell the application to reboot in bootloader mode or not?
    Could you please share the reference from which you learned of this experimental command? It would be helpful as a starting point for me to look further into it.

    Regards,

    Hieu

Reply
  • Hi Thibaud,

    Thibaud said:
    And about the experimental option of nrfutil device command "x-boot-mode-get/set" can you do any comment ?

    My apologies but I am a little confused.
    What is wrong with this command? Are you expecting to use it to tell the application to reboot in bootloader mode or not?
    Could you please share the reference from which you learned of this experimental command? It would be helpful as a starting point for me to look further into it.

    Regards,

    Hieu

Children
No Data
Related