Hardware: nRF5340DK
Software : nRF Connect SDK v2.6.1 (any reasonably up to date is fine)
Hi,
I'm new to Zephyr and Nordic and I want to make an example multi-core application where the images on both cores can be updated over a UART connection. Is there an example with multi-core CPU and bootloader, or a documentation page where a recommended setup is described?
My assumption is that to be able to upgrade the bootloader, a two-stage bootloader is needed for both cores, so the setup will be:
cpuapp: NSIB -> mcuboot -> app_image
cpunet: b0n -> net_image
I would very much like to avoid modifying the SDK as it will either complicate the setup for developers and integration with CI, or include the entire SDK in our repo. If possible I would also like to use a west.yml file to get dependencies. Right now I have a west.yml file which I have placed in a subdirectory of the repo which points to all dependencies (except for the zephyr sdk) and I would prefer to use this method as it keeps setups consistent for all developers.
I've tried setting up the nrf/samples/multicore application, which uses sysbuild which I could not get working with NSIB.
I've also tried setting up a project using child images, but it seems that there is a transition towards sysbuilds instead. Is this correct? As I'm starting a new app today what is the recommended path?
My current issue with the child images is that it seems that the ZEPHYR_EXTRA_MODULES variable propagates to the child_images, so b0 attempts to build the image for the network core.
I can upload a sample project repo when I know which path is recommended.
Thanks
Sigurd
(edited: updated bootloader structure based on response)