nRF5 SDK v15.3.0
Macros
DFU validation configuration

Macros

#define NRF_DFU_APP_ACCEPT_SAME_VERSION
 Whether to accept application upgrades with the same version as the current application. More...
 
#define NRF_DFU_APP_DOWNGRADE_PREVENTION
 Check the firmware version and SoftDevice requirements of application (and SoftDevice) updates. More...
 
#define NRF_DFU_EXTERNAL_APP_VERSIONING
 Require versioning for external applications. More...
 
#define NRF_DFU_FORCE_DUAL_BANK_APP_UPDATES
 Accept only dual-bank application updates. More...
 
#define NRF_DFU_HW_VERSION
 Device hardware version. More...
 
#define NRF_DFU_REQUIRE_SIGNED_APP_UPDATE
 Require a valid signature to update the application or SoftDevice. More...
 
#define NRF_DFU_SINGLE_BANK_APP_UPDATES
 Place the application and the SoftDevice directly where they are supposed to be. More...
 

Detailed Description

Macro Definition Documentation

#define NRF_DFU_APP_ACCEPT_SAME_VERSION

Whether to accept application upgrades with the same version as the current application.

This applies to application updates, and possibly to SoftDevice updates. Bootloader upgrades always require higher versions. SoftDevice upgrades look at the sd_req field independently of this config. Disabling this protects against replay attacks wearing out the flash of the device. This config only has an effect when NRF_DFU_APP_DOWNGRADE_PREVENTION is enabled.

Set to 1 to activate.

Note
This is an NRF_CONFIG macro.
#define NRF_DFU_APP_DOWNGRADE_PREVENTION

Check the firmware version and SoftDevice requirements of application (and SoftDevice) updates.

Whether to check the incoming version against the version of the existing app and/or the incoming SoftDevice requirements against the existing SoftDevice. This applies to application updates, and possibly to SoftDevice updates. Disabling this causes the checks to always ignore the incoming firmware version and to ignore the SoftDevice requirements if the first requirement is 0. This does not apply the bootloader updates. If the bootloader depends on the SoftDevice e.g. for BLE transport, this does not apply to SoftDevice updates. See Validation for more information. When signed updates are required, version checking should always be enabled.

Set to 1 to activate.

Note
This is an NRF_CONFIG macro.
#define NRF_DFU_EXTERNAL_APP_VERSIONING

Require versioning for external applications.

This configuration is only used if NRF_DFU_SUPPORTS_EXTERNAL_APP is set to 1. Setting this will require that any FW images using the FW upgrade type DFU_FW_TYPE_EXTERNAL_APPLICATION must follow a monotonic versioning scheme where the FW version of an upgrade must always be larger than the previously stored FW version.

Set to 1 to activate.

Note
This is an NRF_CONFIG macro.
#define NRF_DFU_FORCE_DUAL_BANK_APP_UPDATES

Accept only dual-bank application updates.

If not enabled then if there is not enough space to perform dual-bank update application is deleted and single-bank update is performed. In case it is considered security concern user can prefer to discard update request rather than overwrite current application.

Set to 1 to activate.

Note
This is an NRF_CONFIG macro.
#define NRF_DFU_HW_VERSION

Device hardware version.

This is used to determine if given update is targeting the device. It is checked against the hw_version value in the init packet

Note
This is an NRF_CONFIG macro.
#define NRF_DFU_REQUIRE_SIGNED_APP_UPDATE

Require a valid signature to update the application or SoftDevice.

Set to 1 to activate.

Note
This is an NRF_CONFIG macro.
#define NRF_DFU_SINGLE_BANK_APP_UPDATES

Place the application and the SoftDevice directly where they are supposed to be.

Note that this creates security concerns when signing and version checks are enabled. An attacker will be able to delete (but not replace) the current app or SoftDevice without knowing the signature key.

Set to 1 to activate.

Note
This is an NRF_CONFIG macro.

Documentation feedback | Developer Zone | Subscribe | Updated