<?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>MCUBOOT on nRF54L15: Can not FPROTECT region that big</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/128406/mcuboot-on-nrf54l15-can-not-fprotect-region-that-big</link><description>I&amp;#39;m working on a project for the nRF54L15. Until now I have not been using mcuboot, but since I added SB_CONFIG_BOOTLOADER_MCUBOOT=y to my sysbuild.conf, I get an error when building MCUBOOT: 
 
 I found some old posts which recommended looking at partition</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 10 Jun 2026 12:41:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/128406/mcuboot-on-nrf54l15-can-not-fprotect-region-that-big" /><item><title>RE: MCUBOOT on nRF54L15: Can not FPROTECT region that big</title><link>https://devzone.nordicsemi.com/thread/567710?ContentTypeID=1</link><pubDate>Wed, 10 Jun 2026 12:41:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c79af8a2-c928-45a1-a916-350f49abfc32</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;FPROTECT is limited by the available&amp;nbsp;RRAM protection regions on this chip as mentioned here: &lt;a href="https://nrfconnectdocs.nordicsemi.com/ncs/latest/nrf/app_dev/device_guides/nrf54l/dfu_config.html#nvm-protections"&gt;https://nrfconnectdocs.nordicsemi.com/ncs/latest/nrf/app_dev/device_guides/nrf54l/dfu_config.html#nvm-protections&lt;/a&gt;&amp;nbsp;so to be able to keep FPROTECT enabled in the bootloader, you will need to reduce the size of the bootloader, which you already did through your DT overlay. Given this limitation I agree that it does not make sense to have 64k allocated the bootloader slot by default.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regarding the boot issue, perhaps you are missing the provisioning step:&amp;nbsp;&lt;a href="https://nrfconnectdocs.nordicsemi.com/ncs/latest/nrf/app_dev/device_guides/nrf54l/dfu_config.html#nvm-protections"&gt;https://nrfconnectdocs.nordicsemi.com/ncs/latest/nrf/app_dev/device_guides/nrf54l/dfu_config.html#nvm-protections&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The public key is automatically provisioned to the KMU if you use the&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;west flash --erase&lt;/pre&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;command. Button to invoke this command from the VS code extension:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1781095264885v1.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Vidar&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBOOT on nRF54L15: Can not FPROTECT region that big</title><link>https://devzone.nordicsemi.com/thread/567709?ContentTypeID=1</link><pubDate>Wed, 10 Jun 2026 12:35:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a106cdf1-506b-42f3-ac6c-c8c818f9c59e</guid><dc:creator>Fridtjof</dc:creator><description>&lt;p&gt;I recreated the problem using the blinky sample. I also solved it. To recreate:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;make a copy of blinky&lt;/li&gt;
&lt;li&gt;in prj.conf, set CONFIG_MCUBOOT=y&lt;/li&gt;
&lt;li&gt;create sysbuild.conf:&lt;br /&gt;&lt;pre class="ui-code" data-mode="python"&gt;SB_CONFIG_PARTITION_MANAGER=n
SB_CONFIG_BOOTLOADER_MCUBOOT=y&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Build with west build -b nrf54l15dk/nrf54l15/cpuapp --sysbuild and observe that the mcuboot build fails with the original error. Now, we fix this build error:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;add boards/partitions.dtsi&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;boot_partition {
  reg = &amp;lt;0x0 DT_SIZE_K(62)&amp;gt;;
};&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;add sysbuild/ folder and sysbuild/mcuboot.overlay&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;quot;../boards/partition.dtsi&amp;quot;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now The build will complete, but McuBoot will fail, and you can see the log over UART:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;*** Booting MCUboot v2.3.0-dev-fce4dac2e629 ***
*** Using nRF Connect SDK v3.3.0-ba167d9f3db4 ***
*** Using Zephyr OS v4.3.99-fd9204a02d52 ***
I: Starting bootloader
I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Secondary image: magic=bad, swap_type=0x1, copy_done=0x2, image_ok=0x2
I: Boot source: none
I: Image index: 0, Swap type: none
E: Image in the primary slot is not valid!
E: Unable to find bootable image&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The problem is that just by adding mcuboot.overlay, we have stopped the build system from including an important file, bootloader/mcuboot/boot/zephyr/app.overlay, which contains:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/ {
	chosen {
		zephyr,code-partition = &amp;amp;boot_partition;
	};
};
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;If you inspect our build/mcuboot/zephyr/zephyr.dts, you can see that zephyr,code-partition is set to &amp;amp;slot0_partition. If you add the above overlay code to sysbuild/mcuboot.overlay, the firmware successfully boots! Happy days!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Now my question is: Why? Is this a bug of some sort?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Edit: it seems like this solved the problem on blinky, but in my own larger project I&amp;#39;m still getting boot issues :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBOOT on nRF54L15: Can not FPROTECT region that big</title><link>https://devzone.nordicsemi.com/thread/567700?ContentTypeID=1</link><pubDate>Wed, 10 Jun 2026 11:45:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:28804288-03e2-4358-b520-d99849b31a1c</guid><dc:creator>Fridtjof</dc:creator><description>&lt;p&gt;I changed from using sysbuild/mcuboot/boards/nrf54l15dk_nrf54l15_cpuapp.overlay to sysbuild/mcuboot.overlay and deleted the sysbuild/mcuboot folder. This made the build system use mcuboot&amp;#39;s default prj.conf, so the copied config file wasn&amp;#39;t needed anymore.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But it still does not boot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBOOT on nRF54L15: Can not FPROTECT region that big</title><link>https://devzone.nordicsemi.com/thread/567686?ContentTypeID=1</link><pubDate>Wed, 10 Jun 2026 10:07:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca938e3e-ef94-4630-b1c9-d66c5cb1ad56</guid><dc:creator>Fridtjof</dc:creator><description>&lt;p&gt;Actually this does not work. MCUBOOT does not seem to even boot&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBOOT on nRF54L15: Can not FPROTECT region that big</title><link>https://devzone.nordicsemi.com/thread/567662?ContentTypeID=1</link><pubDate>Wed, 10 Jun 2026 06:46:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:556d327b-ce18-49f1-8e41-7f9b9d7a5fdd</guid><dc:creator>Fridtjof</dc:creator><description>&lt;p&gt;For whatever reason, the nRF54L-devices cannot FPROTECT more than 62kB. However, the standard size for the bootloader partition is 64kB. There are some .dtsi files in ncs which set the correct partition size, however, I don&amp;#39;t know to make the build system include those.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I solved the issue by adding an overlay file to my project with the correct partitioning schema. In boards/nrf54l15dk_nrf54l15_partitions.overlay:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/delete-node/ &amp;amp;{/soc/rram-controller@5004b000/rram@0/partitions};

&amp;amp;cpuapp_rram {
	reg = &amp;lt;0x0 0x165000&amp;gt;;
	partitions{
		compatible = &amp;quot;fixed-partitions&amp;quot;;
		#address-cells = &amp;lt;0x1&amp;gt;;
		#size-cells = &amp;lt;0x1&amp;gt;;
		boot_partition: partition@0 {
			label = &amp;quot;mcuboot&amp;quot;;
			reg = &amp;lt;0x0 DT_SIZE_K(62)&amp;gt;;
		};
		slot0_partition: partition@10000 {
			label = &amp;quot;image-0&amp;quot;;
			reg = &amp;lt;0x10000 0xa0000&amp;gt;;
		};
		slot1_partition: partition@b0000 {
			label = &amp;quot;image-1&amp;quot;;
			reg = &amp;lt;0xb0000 0xa0000&amp;gt;;
		};
		storage_partition: partition@150000 {
			label = &amp;quot;storage&amp;quot;;
			reg = &amp;lt;0x150000 0x15000&amp;gt;;
		};
	};
    // cpuflpr occupies 0x165000 - 0x17d000
};
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Then including this file in cpuapp&amp;#39;s and mcuboot&amp;#39;s overlay files. In boards/nrf54l15dk_nrf54l15_cpuapp.overlay:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;quot;nrf54l15dk_nrf54l15_partitions.overlay&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;In sysbuild/mcuboot/boards/nrf54l15dk_nrf54l15_cpuapp.overlay:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;quot;../../../boards/nrf54l15dk_nrf54l15_partitions.overlay&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When adding a sysbuild folder (which we must in order to add a device tree overlay to mcuboot), zephyr stops including the default mcuboot prj.conf. So I copied it and added it as sysbuild/mcuboot/prj.conf:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="python"&gt;####################################################################
# Copied from $ZEPHYR_BASE/bootloader/mcuboot/boot/zephyr/prj.conf #
####################################################################

CONFIG_PM=n

CONFIG_MAIN_STACK_SIZE=10240

CONFIG_BOOT_SWAP_SAVE_ENCTLV=n
CONFIG_BOOT_ENCRYPT_IMAGE=n

CONFIG_BOOT_UPGRADE_ONLY=n
CONFIG_BOOT_BOOTSTRAP=n

### mbedTLS has its own heap
# CONFIG_HEAP_MEM_POOL_SIZE is not set

CONFIG_FLASH=y

### Various Zephyr boards enable features that we don&amp;#39;t want.
# CONFIG_BT is not set
# CONFIG_I2C is not set

CONFIG_LOG=y
CONFIG_LOG_MODE_MINIMAL=y
### Ensure Zephyr logging changes don&amp;#39;t use more resources
CONFIG_LOG_DEFAULT_LEVEL=0
### Use info log level by default
CONFIG_MCUBOOT_LOG_LEVEL_INF=y
### Decrease footprint by ~4 KB in comparison to CBPRINTF_COMPLETE=y
CONFIG_CBPRINTF_NANO=y
### Use picolibc to reduce flash usage
CONFIG_PICOLIBC=y
### Disable malloc arena because we don&amp;#39;t need it
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=0

# NCS boot banner
CONFIG_NCS_APPLICATION_BOOT_BANNER_STRING=&amp;quot;MCUboot&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Please tell me if this is a bad way to go.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>