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

  • Hi Hieu !

    multicore is a good example, but in real life, we need a sample where mcuboot and b0n bootloaders are also part of multiimage build. I have taken the original sample and added those bootloaders as child images.

    I have attached multicore.zip where minimal modifications are included.

    It can be built by line $ west build --pristine --board nrf5340dk_nrf5340_cpuapp

    DFU strategy is configured as Recover of app and network core images.

    Building generates all relevant files for nrfjprog flashing and DFU update for app core e.g app_update.bin

    BUT

    not any BIN update for the network core.

    It looks like adding a custom network core has some impact on building updates.

    How to build an update for the network core ?

    Regards,

    Eugene

    8662.multicore.zip

  • Hi Eugene,

    Thank you for the zip file.

    I see that you opened a new question for the netcore file not generated problem.

    Shall we consolidate the discussion there?

    Or am I missing something, and there is another question unresolved in this thread?

    Regards,

    Hieu

  • Hi Heiu !

    Looks like there are quite similar.

    Let's continue there :  NCS 2.2 custom net child image 

    Regards,

    Eugene

Reply Children
No Data
Related