"SD version failure" during DFU when not changing SD

I am doing a DFU on a 52811 board, and getting "SD version failure"

But I am not updating SD, and I am even getting this error when doing a DFU with the same code level (DFU on itself).

This project had a working DFU before, only thing I changed is the RAM placement (RAM_START and RAM_SIZE) :
Before:
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0xf000;RAM_START=0x20002140;RAM_SIZE=0x3ec0"

After:
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0xf000;RAM_START=0x20002268;RAM_SIZE=0x3d98"


What am I missing ? I don't understand why I'm getting this error

Parents
  • Hello,

    The bootloader will check if the Softdevice version requirement specified by the DFU package matches the Softdevice version on the device. If it doesn't it will reject the update. This ensures the application can't be uploaded unless the target device has a compatible version of the Softdevice installed.

    Can you show the arguments you use to generate the DFU package with nrfutil and let me know what Softdevice you use?

    $ nrfutil pkg generate --help
    
      Generate a zip package for distribution to apps that support Nordic DFU OTA.
      The application, bootloader, and SoftDevice files are converted to .bin if
      supplied as .hex files. For more information on the generated package, see:
      http://developer.nordicsemi.com/nRF5_SDK/doc/
    
    ...
    --sd-req TEXT                   The SoftDevice requirements. A comma-
                                      separated list of SoftDevice firmware IDs (1
                                      or more) of which one must be present on the
                                      target device. Each item on the list must be
                                      a two- or four-digit hex number prefixed
                                      with "0x" (e.g. "0x12", "0x1234"). A non-
                                      exhaustive list of well-known values to use
                                      with this option follows:
                                      |s112_nrf52_6.0.0|0xA7|
                                      |s112_nrf52_6.1.0|0xB0|
                                      |s112_nrf52_6.1.1|0xB8|
                                      |s112_nrf52_7.0.0|0xC4|
                                      |s112_nrf52_7.0.1|0xCD|
                                      |s112_nrf52_7.2.0|0x103|
                                      |s112_nrf52_7.3.0|0x126|
                                      |s113_nrf52_7.0.0|0xC3|
                                      |s113_nrf52_7.0.1|0xCC|
                                      |s113_nrf52_7.2.0|0x102|
                                      |s113_nrf52_7.3.0|0x125|
                                      |s122_nrf52_8.0.0|0xEA|
                                      |s122_nrf52_8.1.1|0x112|
                                      |s130_nrf51_1.0.0|0x67|
                                      |s130_nrf51_2.0.0|0x80|
                                      |s130_nrf51_2.0.1|0x87|
                                      |s132_nrf52_2.0.0|0x81|
                                      |s132_nrf52_2.0.1|0x88|
                                      |s132_nrf52_3.0.0|0x8C|
                                      |s132_nrf52_3.1.0|0x91|
                                      |s132_nrf52_4.0.0|0x95|
                                      |s132_nrf52_4.0.2|0x98|
                                      |s132_nrf52_4.0.3|0x99|
                                      |s132_nrf52_4.0.4|0x9E|
                                      |s132_nrf52_4.0.5|0x9F|
                                      |s132_nrf52_5.0.0|0x9D|
                                      |s132_nrf52_5.1.0|0xA5|
                                      |s132_nrf52_6.0.0|0xA8|
                                      |s132_nrf52_6.1.0|0xAF|
                                      |s132_nrf52_6.1.1|0xB7|
                                      |s132_nrf52_7.0.0|0xC2|
                                      |s132_nrf52_7.0.1|0xCB|
                                      |s132_nrf52_7.2.0|0x101|
                                      |s132_nrf52_7.3.0|0x124|
                                      |s140_nrf52_6.0.0|0xA9|
                                      |s140_nrf52_6.1.0|0xAE|
                                      |s140_nrf52_6.1.1|0xB6|
                                      |s140_nrf52_7.0.0|0xC1|
                                      |s140_nrf52_7.0.1|0xCA|
                                      |s140_nrf52_7.2.0|0x100|
                                      |s140_nrf52_7.3.0|0x123|
                                      |s212_nrf52_6.1.1|0xBC|
                                      |s332_nrf52_6.1.1|0xBA|
                                      |s340_nrf52_6.1.1|0xB9|
    
    

    Best regards,

    Vidar

  • It is using SD s112 v7.0.1
    That this is a project that is in production for several years, and has managed dozens of DFUs on thousand of customers.

    Command line :
    nrfutil pkg generate (...) --sd-req 0xCD

    I am not passing --sd-id curiously. Is this the issue ?

Reply Children
Related