secure DFU for nRF52820 without crypto cell?

Hi
my application is working fine with secure bootloader on devkit PCA10056 using nRF52840 and GCC.
Now I want to bring it to my target hardware using nRF52820

to get rid of the complaints about missing FPU I defined
CFLAGS += -DFLOAT_ABI_SOFT
CFLAGS += -D__SOFTFP__
ASMFLAGS += -DFLOAT_ABI_SOFT
ASMFLAGS += -D__SOFTFP__

but another error message hurts me much more. The source file
nRF5_SDK_17.0.2_d674dde/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_init.c
contains a function cc310_bl_backend_init(void) which does at line 86
    NRF_CRYPTOCELL->ENABLE = 1;

I realize nRF52820 has no crypto cell.

Does that mean I have to forget about secure DFU on nRF52820 ?
Or is there an software emulation I can enable?


best regards
Peter

Parents
  • Hi,

    You are right that CryptoCell is not available on nRF52820. However, that is no problem in this regard. The nrf_crypto library that is used for crypto in the DFU supports several backends, and you need to select another backend. See Configuring nrf_crypto frontend and backends.

    I suggest you compare your bootloader project with a bootloader project for another nRF52 device to see the crypto configuration used. There you will see in sdk_config.h that NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED is set to 1 andNRF_CRYPTO_BACKEND_CC310_BL_ENABLED is set to 0. You also need the NRF_CRYPTO_BACKEND_NRF_SW_ENABLED set to 1 etc.

Reply
  • Hi,

    You are right that CryptoCell is not available on nRF52820. However, that is no problem in this regard. The nrf_crypto library that is used for crypto in the DFU supports several backends, and you need to select another backend. See Configuring nrf_crypto frontend and backends.

    I suggest you compare your bootloader project with a bootloader project for another nRF52 device to see the crypto configuration used. There you will see in sdk_config.h that NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED is set to 1 andNRF_CRYPTO_BACKEND_CC310_BL_ENABLED is set to 0. You also need the NRF_CRYPTO_BACKEND_NRF_SW_ENABLED set to 1 etc.

Children
No Data
Related