Netcore bootloader b0n as child image

Hello !

I try to find in latest nRF connect samples template for typical nRF5340 application ( app+ network cores, mcuboot+b0n bootloaders) with posibility to configure all components and build all of them at once ( multiimage/child images). But looks like no any example where all components are easily visible.

As usually CONFIG_BT=y is in use and no any glue how b0n bootloader is configured there.

I have taken multicore sample and apply mcuboot config from sample Bluetooth: Peripheral UART application.

The folder tree looks like this : 

.
├── aci
│   └── CMakeLists.txt
├── child_image
│   └── mcuboot.conf
├── CMakeLists.txt
├── cpunet
│   ├── child_image
│   │   └── b0n.conf
│   ├── CMakeLists.txt
│   ├── Kconfig
│   ├── ___pm.yml
│   ├── prj.conf
│   └── src
│   └── main.c
├── Kconfig
├── pm_static.yml
├── prj.conf
├── README.rst
├── sample.yaml
├── src
│   └── main.c
└── zephyr
└── module.yml

Build work for all cores and bootloaders. 

I can flash it by west -v flash -d ./build --skip-rebuild -r nrfjprog and execute app_core update by using mcumgr.

BUT

it build only updates for app core e.g

[196/208] Generating ../../zephyr/app_update.bin
[197/208] Generating ../../zephyr/app_signed.hex
[199/208] Generating ../../zephyr/app_test_update.hex

1. no any updates for networkcore at all only composite images for nrfjprog type of flashing.

2. Configuration file for b0n is not taken in account , not visible it in build log ( mcuboot.conf is visible and configuration is taken)

─ child_image
│   │   └── b0n.conf

b0n is added to cpunet by line CONFIG_SECURE_BOOT=y

How I can configure build hierarchy for be able to generate netcore updates ?

How to configure b0n bootloader properly e.g via what config file ? 

What configuration flags are need for create similar Serial recovery method of update ( both cores) like in 

Bluetooth: Peripheral UART application sample. Looks like b0n usage SDK is hidden a bit.

Regards,

Eugene

Parents
  • Hi !

    Just small correction about b0n.conf. It is really taken in account:

    === child image b0n - CPUNET (inherited) begin ===
    ...
    Parsing /home/xxx/ncs/v2.2.0/nrf/samples/nrf5340/netboot/Kconfig
    Loaded configuration '/home/xxx/ncs/v2.2.0/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpunet_defconfig'
    Merged configuration '/home/xxx/ncs/v2.2.0/nrf/samples/nrf5340/netboot/prj.conf'
    Merged configuration '/home/xxxx/ncs/v2.2.0/nrf/subsys/partition_manager/partition_manager_enabled.conf'
    Merged configuration '/home/yxxx/nsctest/3/cpunet/child_image/b0n.conf'
    Configuration saved to '/home/xxx/nsctest/3/build/cpunet/b0n/zephyr/.config'
    Kconfig header saved to '/home/xxx/nsctest/3/build/cpunet/b0n/zephyr/include/generated/autoconf.h'

    ...

    -- Build files have been written to: /home/xxx/nsctest/3/build/cpunet/b0n
    === child image b0n - CPUNET (inherited) end ===

    BUT

    in any case netcore update bin files are not generated.

    Bluetooth: Peripheral UART application sample have some not-so-visible definitions that force the build of netcore updates.

    Regards

    Eugene

  • Hi Eugene,

    I am trying to follow what you are doing to reproduce the issue and look into it. However, I cannot get the Multicore Sample to build the way you described. Could you please give the detailed steps to recreate your setup from an unmodified Multicore Sample?

    Regards,

    Hieu

Reply Children
Related