Porting our board from ncs sdk 2.6.1 to 3.2.1

Hi

I'm currently in the middle of porting our board from nrf sdk 2.6.1 to nrf sdk 3.2.1.

I made it so far, that the correct dts are used, but somehow the build process seems not to see, that our board is based on the nrf5340 soc.

During sysbuild (whatever that is) it recognizes the dependency as the entries are correct in
build/zephyr/.config:

SB_CONFIG_BOARD="panngmodule"
SB_CONFIG_BOARD_REVISION=""
SB_CONFIG_BOARD_PANNGMODULE=y
SB_CONFIG_BOARD_PANNGMODULE_NRF5340_CPUAPP_NS=y
SB_CONFIG_BOARD_QUALIFIERS="nrf5340/cpuapp/ns"
SB_CONFIG_SOC="nrf5340"
SB_CONFIG_SOC_SERIES="nrf53"
SB_CONFIG_SOC_FAMILY="nordic_nrf"
SB_CONFIG_SOC_FAMILY_NORDIC_NRF=y
SB_CONFIG_SOC_SERIES_NRF53X=y
SB_CONFIG_SOC_NRF5340_CPUAPP=y
SB_CONFIG_SOC_NRF5340_CPUAPP_QKAA=y


But when the normal build for our project starts, the dependency to the SOC is missing.

Our Kconfig.panngmodule looks exactly like that one of NRF5340DK, except of the Board "prefix"
config BOARD_PANNGMODULE
	select SOC_NRF5340_CPUAPP_QKAA if BOARD_PANNGMODULE_NRF5340_CPUAPP
	select SOC_NRF5340_CPUAPP_QKAA if BOARD_PANNGMODULE_NRF5340_CPUAPP_NS
	select SOC_NRF5340_CPUNET_QKAA if BOARD_PANNGMODULE_NRF5340_CPUNET

So where would I need to search for?

Parents Reply Children
  • Hi Vidar,

    Here my current sysbuild.conf perhaps it is a part of the problem.

    SB_CONFIG_BOOTLOADER_MCUBOOT=y
    SB_CONFIG_MCUBOOT_MODE_SINGLE_APP=y
    
    SB_CONFIG_NETCORE_802154_RPMSG=y
    
    SB_CONFIG_PARTITION_MANAGER=y


    pm_static.yml is located in the root of the project and was always magically picked.

    We use a single slot for the application and have b0n for the netcore and of course the netcore app itself. Thats why we have the SB_CONFIG_MCUBOOT_MODE_SINGLE_APP in sysbuild.conf
    and in the prj.conf of mcuboot I added:
    CONFIG_SINGLE_APPLICATION_SLOT=y
    CONFIG_MCUBOOT_GENERATE_UNSIGNED_IMAGE=y


    My build currently tells me, that the slot0_parition is missing:
    CMake Error at /media/data/projects/pan-ng/ZephyrSDK/zephyr/cmake/modules/extensions.cmake:3880 (message):
      required nodelabel not found: slot0_partition
    Call Stack (most recent call first):
      CMakeLists.txt:554 (dt_nodelabel)
    
     
    I'm unsure if it is because we have no slot0_parition in the dts, as we used the pm_static.yml way and dts definition were ignored anyway, so we removed them.

    And the other problem is, that we use unsigned images but mcuboot wants a key file:
    MCUBoot bootloader key file: /media/data/projects/pan-ng/ZephyrSDK/bootloader/mcuboot/root-rsa-2048.pem
    CMake Warning at CMakeLists.txt:442 (message):
      WARNING: Using default MCUboot signing key file, this file is for debug use
      only and is not secure!
    


    But good to now, that the pm_static.yml can still be used.

    Cheers,
    Thilo

  • Hi Thilo,

    It looks like it is failing here https://github.com/nrfconnect/sdk-mcuboot/commit/866780009f698f8b777a3672dcf05c4b5f49b461 because the DT partition "slot0_partition" is not defined in your devicetree though it shouldn't be required since the PM will override the DT entries. But to work around this you will define this partition in the DT: https://github.com/nrfconnect/sdk-zephyr/blob/a30979d44c81b6cf232090f501b18a78f890ad55/dts/vendor/nordic/nrf5340_cpuapp_partition.dtsi#L21 

    To disable signature validation you can add SB_CONFIG_BOOT_SIGNATURE_TYPE_NONE=y to your sysbuild.conf file

    Cheers 

    Vidar

Related