This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bootloader via DFU

I have a few questions about the DFU:

Is it necessary to flash everything together (Bootloader, DFU, APP) for the initial programming when testing buttonless secure DFU without bonds?

In the sections that are about the “Buttonless DFU Template Application”,  the paragraph “Bootloader settings page” page makes it clear that when bonding is enabled, the buttonless Bootloader is fully dependent on the buttonless application to create the bond with the client device. In turn, this means that testing with bonding enabled requires  initial programming with a  single “full stack”.hex file: 1) SoftDevice, 2) Bootloader with settings page that includes the app information, 3) the application that matches the info in the setting page. The paragraph “Testing Buttonless Secure DFU with bonds” works this way.

 The Bootloader settings  (in flash) are updated whenever the Application is successfully updated via DFU.
 So, I may have a the same Bootloader on more than one type of board (product1, Product2, product3, ..)
Each of these boards has its own unique application firmware.

When I need to update that bootloader on all products, can I do it with one DFU image?

If so, what stuff do I leave out of the Bootloader Setting Page of the new image?

If not, do I need a separate DFU image for every unique application?

 Are there other rules that apply in this scenario?

Parents
  • Hi Wes,

    Is it necessary to flash everything together (Bootloader, DFU, APP) for the initial programming when testing buttonless secure DFU without bonds?

    No, In this case it is enough to flash the bootloader and SoftDevice (or only MBR would be sufficient if using another transport than BLE). In this case, the MBR will start the bootloader, and the bootloader will enter DFU mode as there is no valid application present.

    When I need to update that bootloader on all products, can I do it with one DFU image?

    In theory yes, but in practice, no. It is probably not sensible to use the same bootloader on different products. This is because the bootloader can check if a upgrade image is suitable for itself or not, using NRF_DFU_HW_VERSION. This is set in the bootloader's sdk_config.h and is checked against the HW version that is specified when generating the .zip package using nrfutil. If those are not the same, upgrade will not be allowed. That way you ensure that only firmware suitable for the specific device can be used.

    If not, do I need a separate DFU image for every unique application?

    Yes. There is no support for several applications in a single DFU image (though you can have both SoftDevice, application and bootloader in a single image).

    Einar

Reply
  • Hi Wes,

    Is it necessary to flash everything together (Bootloader, DFU, APP) for the initial programming when testing buttonless secure DFU without bonds?

    No, In this case it is enough to flash the bootloader and SoftDevice (or only MBR would be sufficient if using another transport than BLE). In this case, the MBR will start the bootloader, and the bootloader will enter DFU mode as there is no valid application present.

    When I need to update that bootloader on all products, can I do it with one DFU image?

    In theory yes, but in practice, no. It is probably not sensible to use the same bootloader on different products. This is because the bootloader can check if a upgrade image is suitable for itself or not, using NRF_DFU_HW_VERSION. This is set in the bootloader's sdk_config.h and is checked against the HW version that is specified when generating the .zip package using nrfutil. If those are not the same, upgrade will not be allowed. That way you ensure that only firmware suitable for the specific device can be used.

    If not, do I need a separate DFU image for every unique application?

    Yes. There is no support for several applications in a single DFU image (though you can have both SoftDevice, application and bootloader in a single image).

    Einar

Children
No Data
Related