<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Adding the customized B0 bootloader in project which is already having MCUBOOT and app.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/120951/adding-the-customized-b0-bootloader-in-project-which-is-already-having-mcuboot-and-app</link><description>Hi team, 
 I&amp;#39;m using the NRF54L15DK board with NCS SDK v2.9.0. 
 I&amp;#39;m trying to include the B0 bootloader along with the MCUBOOT and application. 
 I&amp;#39;m wanted to customize the B0 bootloader using prj.conf file which I&amp;#39;ve added as B0.conf file in project</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 29 Apr 2025 10:29:02 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/120951/adding-the-customized-b0-bootloader-in-project-which-is-already-having-mcuboot-and-app" /><item><title>RE: Adding the customized B0 bootloader in project which is already having MCUBOOT and app.</title><link>https://devzone.nordicsemi.com/thread/533359?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2025 10:29:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:38825f18-3c2f-4b5d-8785-22a8370c2404</guid><dc:creator>AHaug</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Are you still using NCS v2.9.0 or have you upgraded to 3.0.0?&lt;/p&gt;
[quote user="vim_nordic"]Is folder structure given in previous questions image correct to customize both B0 and mcuboot bootloaders?&amp;nbsp;[/quote]
&lt;p&gt;Almost, the build system is sensitive for capital letters, so you will have to rename then &amp;quot;b0&amp;quot; instead of &amp;quot;B0&amp;quot;. Here&amp;#39;s a sample that has a b0 overlay within the sysbuild folder:&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-nrf/tree/main/samples/keys/hw_unique_key/sysbuild"&gt;https://github.com/nrfconnect/sdk-nrf/tree/main/samples/keys/hw_unique_key/sysbuild&lt;/a&gt;.&lt;/p&gt;
[quote user="vim_nordic"]Attached the error text we are facing.&amp;nbsp;[/quote]
&lt;p&gt;Could you share the contents of the files within the sysbuild folder and I&amp;#39;ll have a closer look? With spi-nor error, you refer to enabling an external spi nor flash device in b0, mcuboot and app, right?&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding the customized B0 bootloader in project which is already having MCUBOOT and app.</title><link>https://devzone.nordicsemi.com/thread/533350?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2025 09:51:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8d7ea23-8c19-433e-b870-44ab7c74abc7</guid><dc:creator>vim_nordic</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/members/ahaug"&gt;AHaug&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Thanks for your input and I have got a lot of idea from mentioned page.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have tried to include the B0 bootloader using&amp;nbsp;&lt;span&gt;SB_CONFIG_SECURE_BOOT_APPCORE&lt;/span&gt;&lt;span&gt;=y in susbuild.conf file.&amp;nbsp;&lt;br /&gt;But I wanted to customize few things and settings in B0 bootloader. But facing build error, not sure why I&amp;#39;m not facing any issue when building with&amp;nbsp;customized configurations.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Is folder structure given in previous questions image correct to customize both B0 and mcuboot bootloaders?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;referred the document&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_adding_sysbuild.html#adding_nrf_secure_immutable_bootloader_as_an_immutable_bootloader"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_adding_sysbuild.html#adding_nrf_secure_immutable_bootloader_as_an_immutable_bootloader&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But facing the SPI NOR error so once I&amp;#39;m enabling the SPI_NOR in B0, MCUBOOT and Application, still facing the same issue.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Attached the error text we are facing.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/6175.error.txt"&gt;devzone.nordicsemi.com/.../6175.error.txt&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="___1v187n0 fibxuh5 f1s184ao f15dniw2"&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding the customized B0 bootloader in project which is already having MCUBOOT and app.</title><link>https://devzone.nordicsemi.com/thread/532816?ContentTypeID=1</link><pubDate>Thu, 24 Apr 2025 12:09:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ebc771b-a24d-4f8a-9a00-05d0ef394b84</guid><dc:creator>AHaug</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;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&amp;nbsp;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/"&gt;https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_mcuboot_nsib.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_mcuboot_nsib.html&lt;/a&gt;&amp;nbsp;thoroughly&lt;/p&gt;
&lt;p&gt;Anyways, here&amp;#39;s some answers to your questions!&lt;/p&gt;
[quote user=""]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?[/quote]
&lt;p&gt;NSIB (b0) is not supported for&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.9.1/page/nrf/releases_and_maturity/software_maturity.html"&gt;NCS v2.9.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1745495243917v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;And is listed as experimental in&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/software_maturity.html#nrf_secure_immutable_bootloader"&gt; NCS v3.0.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1745495324095v2.png" alt=" " /&gt;&lt;/p&gt;
[quote user=""]2. Facing issue while adding the configuration for B0 bootloader as B0&lt;span&gt;.conf file. Also wanted to enable the overlay configuration for B0 bootloader to access the external flash.&amp;nbsp;&lt;/span&gt;[/quote]
&lt;p&gt;We don&amp;#39;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&lt;/p&gt;
[quote user=""]3. What is the difference between OBERON and CC310 ECDSA_SECP2561?[/quote]
&lt;p&gt;Kapa lists the following from our documentation. Please review the linked documentation&lt;/p&gt;
&lt;div&gt;ECDSA_SECP256R1 implementations using the NCS (Nordic Connect SDK) documentation provided in the knowledge sources.&lt;/div&gt;
&lt;div&gt;Based on the NCS documentation, here are the key differences between Oberon and CC310 implementations of ECDSA with the secp256r1 curve:&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Implementation Type&lt;/strong&gt;:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;CC310 (also referred to as nrf_cc3xx in NCS) is a hardware-accelerated cryptography implementation that uses the CryptoCell hardware&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;Oberon (nrf_oberon) is a software-based cryptography library&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Curve Support&lt;/strong&gt;:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;Both support secp256r1, but CC310 supports a wider range of curves including secp192r1, secp224r1, secp256r1, secp384r1, secp521r1, and various Koblitz curves&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;Oberon has more limited curve support for ECDSA, primarily supporting secp256r1 and secp224r1 as noted in the&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/security/nrf_security/doc/driver_config.html#asymmetric_signature_support" rel="noopener noreferrer" target="_blank"&gt;asymmetric signature support documentation&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Integration Differences&lt;/strong&gt;:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;According to the NCS documentation: &amp;quot;The nrf_cc3xx_mbedcrypto library does not integrate on ECP layer. Only the top-level APIs for ECDSA are replaced.&amp;quot;&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/security/nrf_security/doc/backend_config.html#ecdsa_configurations" rel="noopener noreferrer" target="_blank"&gt;ECDSA configurations&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Configuration in NCS&lt;/strong&gt;:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;In NCS, ECDSA support is enabled with the&amp;nbsp;&lt;code dir="ltr"&gt;CONFIG_MBEDTLS_ECDSA_C&lt;/code&gt;&amp;nbsp;Kconfig option&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;Driver selection is done through options like&amp;nbsp;&lt;code dir="ltr"&gt;CONFIG_PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER&lt;/code&gt;&amp;nbsp;for CC310 or automatically generated for Oberon based on enabled algorithms&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Limitations&lt;/strong&gt;:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;The nrf_oberon driver is &amp;quot;currently limited to ECC curve types secp224r1, secp256r1, and secp384r1 for ECDSA&amp;quot; as stated in the&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/security/nrf_security/doc/driver_config.html#asymmetric_signature_support" rel="noopener noreferrer" target="_blank"&gt;asymmetric signature support documentation&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
[quote user=""]4. MCUBOOT is supporting ECDSA_P256R1 then what is the difference between&amp;nbsp;ECDSA_SECP256R1(OBERON and CC310)?[/quote]
&lt;p&gt;Same as above&lt;/p&gt;
[quote user=""]5. How to make B0 bootloader as purely immutable?[/quote]
&lt;p&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_adding_sysbuild.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/mcuboot_nsib/bootloader_adding_sysbuild.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]Can I add the B0 bootloader in OTP region and how?[/quote]
&lt;p&gt;No, you can&amp;#39;t do this.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>