Confirmation of nRF5340 CC312 Accelerator Usage and Power Consumption Analysis

  • 1. When adding CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y to the configuration as shown in the diagram, does it enable the use of the CC310 accelerator?

  • 2. My understanding is that the accelerator turns on/off only when executing encryption-related functions such as psa_aead_encrypt. If this is correct, could you please share the relevant documentation? If not, do we need to manually control the on/off state of the accelerator?

  • 3. I am currently working with the AES-CCM example to implement AES-CCM encryption. The example appears to utilize PSA drivers and includes encryption functionality. However, I am unable to locate detailed usage instructions for the relevant APIs. Could you guide me on where to find this information?

  • 4. During my research into encryption libraries, I came across two libraries: 3xx_platform and nrf_cc3xx_mbedcrypto. I am unclear about the differences between these two libraries and which one is officially recommended for use with NCS (nRF Connect SDK). Could you provide clarification?

Parents
  • Hi,

    1. When adding CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y to the configuration as shown in the diagram, does it enable the use of the CC310 accelerator?

    Yes. CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y enables ARM CryptoCell cc3xx driver, but before using the driver CryptoCell cc310/cc312 hardware needs to be initialized. You can find more information in ARM CryptoCell cc3xx driver documentation.

    2. My understanding is that the accelerator turns on/off only when executing encryption-related functions such as psa_aead_encrypt. If this is correct, could you please share the relevant documentation? If not, do we need to manually control the on/off state of the accelerator?

    Whenever CryptoCell hardware is enabled, it consumes power even when there is no ongoing operation. The information is available in nrf_cc310_bl crypto library which also describes way for enabling/disabling CryptoCell hardware.

    3. I am currently working with the AES-CCM example to implement AES-CCM encryption. The example appears to utilize PSA drivers and includes encryption functionality. However, I am unable to locate detailed usage instructions for the relevant APIs. Could you guide me on where to find this information?

    Looking for example at psa_aead_encrypt() from AES_CCM sample, here is relevant API.

    4. During my research into encryption libraries, I came across two libraries: 3xx_platform and nrf_cc3xx_mbedcrypto. I am unclear about the differences between these two libraries and which one is officially recommended for use with NCS (nRF Connect SDK). Could you provide clarification?

    Both mentioned libraries are covered in our documentation and can be used - nrf_cc3xx_mbedcrypto and nrf_cc3xx_platform. Each link contains some information about the purpose of that particular library.

    Please let me know if you have any further questions.

    Best regards,
    Dejan

Reply
  • Hi,

    1. When adding CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y to the configuration as shown in the diagram, does it enable the use of the CC310 accelerator?

    Yes. CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y enables ARM CryptoCell cc3xx driver, but before using the driver CryptoCell cc310/cc312 hardware needs to be initialized. You can find more information in ARM CryptoCell cc3xx driver documentation.

    2. My understanding is that the accelerator turns on/off only when executing encryption-related functions such as psa_aead_encrypt. If this is correct, could you please share the relevant documentation? If not, do we need to manually control the on/off state of the accelerator?

    Whenever CryptoCell hardware is enabled, it consumes power even when there is no ongoing operation. The information is available in nrf_cc310_bl crypto library which also describes way for enabling/disabling CryptoCell hardware.

    3. I am currently working with the AES-CCM example to implement AES-CCM encryption. The example appears to utilize PSA drivers and includes encryption functionality. However, I am unable to locate detailed usage instructions for the relevant APIs. Could you guide me on where to find this information?

    Looking for example at psa_aead_encrypt() from AES_CCM sample, here is relevant API.

    4. During my research into encryption libraries, I came across two libraries: 3xx_platform and nrf_cc3xx_mbedcrypto. I am unclear about the differences between these two libraries and which one is officially recommended for use with NCS (nRF Connect SDK). Could you provide clarification?

    Both mentioned libraries are covered in our documentation and can be used - nrf_cc3xx_mbedcrypto and nrf_cc3xx_platform. Each link contains some information about the purpose of that particular library.

    Please let me know if you have any further questions.

    Best regards,
    Dejan

Children
No Data
Related