Adding USB capability to secure DFU BLE bootloader

Hi,

I'd like to add the capability to perform secure DFU over USB with the secure DFU BLE bootloader as a baseline. What needs to be done to achieve this? In addition to adding the USB transport, do I need to add USB CDC in the bootloader to be able to send the DFU using nrfutil?

I'm using sdk v17 as the baseline for the secure DFU bootloader.

Thanks

Parents
  • Hi,

    The open USB bootloader have everything needed to be a secure bootloader (and in fact by default it do require signature on bootloader updates). The only change that is needed in order to also require signature verification on application and SoftDevice updates is to set NRF_DFU_REQUIRE_SIGNED_APP_UPDATE to 1 in the bootlaoder's sdk_config.h. So if all you need is the USB transport, then take the example and make this change.

    If you want to combine USB with BLE, then you should take one of the examples and add includes, configuration, etc from the other, as well as adjust size and start address (there are quite a few things to resolve so it is a bit of work but not a huge task). Essentially all you need to add a transport is to add the required files, and then it will automatically be initialized and work out of the box. You do not need to do anything else to support for the USB CDC, as that is all part of the USB transport implementation.

  • Hi, where can I find information on the size and start addresses, either documentation on them or their physical location in the bootloaders?

    Thank you

  • I am not sure what you refer to there? The size of the bootloader depends on how much you include. When you add more features, the size typically increases. As the bootloader is located at the end of the flash (with two free pages above it for MBR params and BL Settings), that means that you need to move down the start address. There is no generic way to know how much when you add stuff without building and seeing.

Reply
  • I am not sure what you refer to there? The size of the bootloader depends on how much you include. When you add more features, the size typically increases. As the bootloader is located at the end of the flash (with two free pages above it for MBR params and BL Settings), that means that you need to move down the start address. There is no generic way to know how much when you add stuff without building and seeing.

Children
No Data
Related