Adding the customized B0 bootloader in project which is already having MCUBOOT and app.

Hi team, 

I'm using the NRF54L15DK board with NCS SDK v2.9.0. 

I'm trying to include the B0 bootloader along with the MCUBOOT and application. 

I'm wanted to customize the B0 bootloader using prj.conf file which I've added as B0.conf file in project. 

But not sure where my B0 main file is getting added. And I wanted to update the main.c file of B0 bootloader as part of my project.

1. Can I shift B0 bootloader main.c file as part of my project and B0 bootloader should include that file only while building the B0 bootloader?

2. Facing issue while adding the configuration for B0 bootloader as B0.conf file. Also wanted to enable the overlay configuration for B0 bootloader to access the external flash. 

I could see B0 bootloader is supporting OBERON_ECDSA_SECP256R1 and CC310_ECDSA_SECP256R1 and RSA-2048.

3. What is the difference between OBERON and CC310 ECDSA_SECP2561?

4. MCUBOOT is supporting ECDSA_P256R1 then what is the difference between ECDSA_SECP256R1(OBERON and CC310)?

5. How to make B0 bootloader as purely immutable? Can I add the B0 bootloader in OTP region and how?

My current directory

 

Please help me with the enabling both the B0 bootloader and MCUBOOT along with application as project. 

Thanks

Parents
  • Hi,

    In general I would say there are a few misunderstandings here from your perspective w.r.t how bootloaders work, so I would strongly recommend that you go through https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/ and https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_mcuboot_nsib.html thoroughly

    Anyways, here's some answers to your questions!

    1. Can I shift B0 bootloader main.c file as part of my project and B0 bootloader should include that file only while building the B0 bootloader?

    NSIB (b0) is not supported for NCS v2.9.0

    And is listed as experimental in NCS v3.0.0

    2. Facing issue while adding the configuration for B0 bootloader as B0.conf file. Also wanted to enable the overlay configuration for B0 bootloader to access the external flash. 

    We don't have support for B0 to access the external flash. B0 only knows about the second stage bootloader and/or the application and where to boot said components

    3. What is the difference between OBERON and CC310 ECDSA_SECP2561?

    Kapa lists the following from our documentation. Please review the linked documentation

    ECDSA_SECP256R1 implementations using the NCS (Nordic Connect SDK) documentation provided in the knowledge sources.
    Based on the NCS documentation, here are the key differences between Oberon and CC310 implementations of ECDSA with the secp256r1 curve:
    1. Implementation Type:
      • CC310 (also referred to as nrf_cc3xx in NCS) is a hardware-accelerated cryptography implementation that uses the CryptoCell hardware
      • Oberon (nrf_oberon) is a software-based cryptography library
    2. Curve Support:
      • Both support secp256r1, but CC310 supports a wider range of curves including secp192r1, secp224r1, secp256r1, secp384r1, secp521r1, and various Koblitz curves
      • Oberon has more limited curve support for ECDSA, primarily supporting secp256r1 and secp224r1 as noted in the asymmetric signature support documentation
    3. Integration Differences:
      • According to the NCS documentation: "The nrf_cc3xx_mbedcrypto library does not integrate on ECP layer. Only the top-level APIs for ECDSA are replaced." ECDSA configurations
    4. Configuration in NCS:
      • In NCS, ECDSA support is enabled with the CONFIG_MBEDTLS_ECDSA_C Kconfig option
      • Driver selection is done through options like CONFIG_PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER for CC310 or automatically generated for Oberon based on enabled algorithms
    5. Limitations:
    4. MCUBOOT is supporting ECDSA_P256R1 then what is the difference between ECDSA_SECP256R1(OBERON and CC310)?

    Same as above

    5. How to make B0 bootloader as purely immutable?

    https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_adding_sysbuild.html 

    Can I add the B0 bootloader in OTP region and how?

    No, you can't do this. 

    Kind regards,
    Andreas

Reply
  • Hi,

    In general I would say there are a few misunderstandings here from your perspective w.r.t how bootloaders work, so I would strongly recommend that you go through https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/ and https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_mcuboot_nsib.html thoroughly

    Anyways, here's some answers to your questions!

    1. Can I shift B0 bootloader main.c file as part of my project and B0 bootloader should include that file only while building the B0 bootloader?

    NSIB (b0) is not supported for NCS v2.9.0

    And is listed as experimental in NCS v3.0.0

    2. Facing issue while adding the configuration for B0 bootloader as B0.conf file. Also wanted to enable the overlay configuration for B0 bootloader to access the external flash. 

    We don't have support for B0 to access the external flash. B0 only knows about the second stage bootloader and/or the application and where to boot said components

    3. What is the difference between OBERON and CC310 ECDSA_SECP2561?

    Kapa lists the following from our documentation. Please review the linked documentation

    ECDSA_SECP256R1 implementations using the NCS (Nordic Connect SDK) documentation provided in the knowledge sources.
    Based on the NCS documentation, here are the key differences between Oberon and CC310 implementations of ECDSA with the secp256r1 curve:
    1. Implementation Type:
      • CC310 (also referred to as nrf_cc3xx in NCS) is a hardware-accelerated cryptography implementation that uses the CryptoCell hardware
      • Oberon (nrf_oberon) is a software-based cryptography library
    2. Curve Support:
      • Both support secp256r1, but CC310 supports a wider range of curves including secp192r1, secp224r1, secp256r1, secp384r1, secp521r1, and various Koblitz curves
      • Oberon has more limited curve support for ECDSA, primarily supporting secp256r1 and secp224r1 as noted in the asymmetric signature support documentation
    3. Integration Differences:
      • According to the NCS documentation: "The nrf_cc3xx_mbedcrypto library does not integrate on ECP layer. Only the top-level APIs for ECDSA are replaced." ECDSA configurations
    4. Configuration in NCS:
      • In NCS, ECDSA support is enabled with the CONFIG_MBEDTLS_ECDSA_C Kconfig option
      • Driver selection is done through options like CONFIG_PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER for CC310 or automatically generated for Oberon based on enabled algorithms
    5. Limitations:
    4. MCUBOOT is supporting ECDSA_P256R1 then what is the difference between ECDSA_SECP256R1(OBERON and CC310)?

    Same as above

    5. How to make B0 bootloader as purely immutable?

    https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_adding_sysbuild.html 

    Can I add the B0 bootloader in OTP region and how?

    No, you can't do this. 

    Kind regards,
    Andreas

Children
No Data
Related