<?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>Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/117875/sysbuild-configuration-for-a-updatable-section-containing-firmware-image-and-meta-data-for-external-component</link><description>NCS 2.7 
 NRF52840 
 Building with sysbuild, MCUBOOT, and 2 different applications (mfg and end-user) 
 My custom board includes a sensor fusion IMU from bosch. The firmware that must be loaded for this IMU is ~133 KB. My initial development effort embedded</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 17 Jan 2025 17:59:28 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/117875/sysbuild-configuration-for-a-updatable-section-containing-firmware-image-and-meta-data-for-external-component" /><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/518905?ContentTypeID=1</link><pubDate>Fri, 17 Jan 2025 17:59:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a436e71f-e61a-4d6e-8525-fe71ed574ee5</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Thanks,&amp;nbsp;I think I have a better understanding of the setup now. MCUboot is generally designed to have one pair of image slots for each firmware image type, which doesn&amp;#39;t make sense for the IMU image in this case as it is neither going to be executed&amp;nbsp;or swapped locally. It&amp;#39;s made to handle images that are to be run on the same device.&lt;/p&gt;
&lt;p&gt;Our MCUboot fork&amp;nbsp;does include patches that allow the main secondary slot to be reused for MCUboot updates when&amp;nbsp;MCUboot&amp;nbsp;is used as a second stage bootloader, and&amp;nbsp;it should of course be possible to&amp;nbsp;add similar modifications to support your requirements.&lt;/p&gt;
[quote user="anthony.asterisk"]This seems to be designed around the idea&amp;nbsp;every primary being paired with a corresponding secondary, I suppose so there is always a back-up copy available[/quote]
&lt;p&gt;The CPU will&amp;nbsp;usually be executing code from the primary while the update image is being written to the secondary slot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/518490?ContentTypeID=1</link><pubDate>Wed, 15 Jan 2025 16:44:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6188429d-d7d0-40ab-8f1c-24a4cc58d0f2</guid><dc:creator>Anthony Ambuehl</dc:creator><description>&lt;p&gt;No the motion fusion IMU does not have NV storage.&amp;nbsp; The firmware gets loaded at every startup.&amp;nbsp; The host interface reports whether firmware has been loaded and some version/hash of the image.&amp;nbsp; If firmware isn&amp;#39;t ready or the version/hash don&amp;#39;t match the meta data of the image in ext_fw partition, then the driver downloads the data from internal flash to the IMU.&amp;nbsp; The download takes 30-40 seconds so I try to avoid doing it unless needed.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve made progress in getting mcuboot to swap the main application firmware.&amp;nbsp; I&amp;#39;m implementing this initially with the secondary partitions on the external flash, although this isn&amp;#39;t what I really want for the production release.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One issue I ran into was a bit surprising.&amp;nbsp; When performing swap move, mcuboot requires the primary and secondary partition be the nearly the same length, with only the primary being 1 block larger than the secondary.&amp;nbsp; This seems to be designed around the idea&amp;nbsp;every primary being paired with a corresponding secondary, I suppose so there is always a back-up copy available.&amp;nbsp; This isn&amp;#39;t the way I was intending to use it.&amp;nbsp; I guess this is necessary because mcuboot doesn&amp;#39;t have any information about how much of the secondary partition is actually being used and therefore cannot check if the secondary image would fit into the space of the primary image.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe it is possible to make mcuboot work with multiple primaries of different sizes and a single secondary, isn&amp;#39;t that how updates work with multiple cores?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/518438?ContentTypeID=1</link><pubDate>Wed, 15 Jan 2025 12:57:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18e021f4-7090-4e8f-8078-aed85468ff27</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Does the IMU have NV storage for the firmware, or does it rely on the nRF to load the FW on every boot?&amp;nbsp;Also,&amp;nbsp;does the IMU perform any validation and activation steps for the FW update it receives from the nRF?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/518318?ContentTypeID=1</link><pubDate>Tue, 14 Jan 2025 18:38:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8ac0da71-6060-4b00-9871-6484f37c90f0</guid><dc:creator>Anthony Ambuehl</dc:creator><description>&lt;p&gt;Well my main reasoning is that mcuboot has the keys and crypto libraries to verify the image, and is trusted to complete the firmware swap correctly.&amp;nbsp; In my other projects guaranteeing the safety and security of firmware updates was extremely high importance.&lt;/p&gt;
&lt;p&gt;Also since this external firmware is loaded during the driver initialization process, it would also be necessary&amp;nbsp;to&amp;nbsp;restart the application regardless.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/518167?ContentTypeID=1</link><pubDate>Mon, 13 Jan 2025 13:50:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d58c4b60-9ba7-47cb-bcd7-5a7a4b240ab7</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Thanks for the clarification. I didn&amp;#39;t know bosch had IMUs with their own MCU, so I assumed it was simply a library for the NRF application to process the IMU sensor data.&lt;/p&gt;
[quote user=""]What configuration will I need to add for mcuboot to be able to update (one-at-a-time) both the application and the ext_fw partition?[/quote]
&lt;p&gt;This seems like something that should be handled in the application. MCUBoot does not support updating external DFU targets. Or is there a reason you want to do this in the bootloader?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/518007?ContentTypeID=1</link><pubDate>Fri, 10 Jan 2025 16:12:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc096fa3-a5b1-41c2-9611-30daa09246ca</guid><dc:creator>Anthony Ambuehl</dc:creator><description>&lt;p&gt;The IMU firmware gets downloaded to a processor inside the IMU.&amp;nbsp; It has no linkage with the application. Its similar to modem firmware.&lt;/p&gt;
&lt;p&gt;We have external flash, and I will temporarily proceed with using the external flash to reach short term deadlines, but in the long term the end-user application needs the entire flash for the best user experience.&lt;/p&gt;
&lt;p&gt;Is there someone at Nordic who can work with me to create a sample with multiple updatable sections?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sysbuild configuration for a updatable section containing firmware image and meta-data for external component</title><link>https://devzone.nordicsemi.com/thread/517980?ContentTypeID=1</link><pubDate>Fri, 10 Jan 2025 14:58:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b16d858-d294-4d16-bbf7-5786c0350387</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We do not have ready support for mutliple app images. If your design already includes external flash, I recommend relocating your secondary partition to this flash. Is the IMU a standalone separately linked application with its own vector table, or is it going to be linked as part of the main application? If it is the latter, it&amp;nbsp;could make sense to have a look at the &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/qspi_xip_split_image.html"&gt;QSPI XIP split image&lt;/a&gt;&amp;nbsp;implementation to see how you can split the app into two separate memory areas.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/sysbuild_image_ids.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/bootloaders_dfu/sysbuild_image_ids.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>