undefined reference to `__device_dts_ord_88'

Trying to migrate from SDK v2.7.0 to v2.8.0 and suddenly getting the build error 

undefined reference to `__device_dts_ord_88'

Based on other forum posts, I was able to track down more information using the <build target>\<project>\zephyr\include\generated\zephyr\devicetree_generated.h file which lists:

 *   88  /soc/radio@40001000/bt_hci_sdc

Reading around it looks like I need to add something along the lines of 

&bt_hci_sdc {
    status = "okay";
};
to the Device Tree, but I am struggling to figure out where, which file, and the exact syntax.  So far nothing I've cobbled together based on online searching has worked.  For completeness, my environment is:

  • Windows 11
  • VS Code w/ nRF Connect plugin
  • toolchain / SDK v2.8.0
  • custom PCB using an nRF52832 in the QFAA package
  • sysbuild
  • MCUBOOT
Parents Reply
  • Will_20241202 said:
    I'm not sure how to build using the West commands. 

    See How to use nRF Connect terminal profile

    Will_20241202 said:
    One significant difference between the samples and my application is the usage of mcuboot. 

    I enabled the mcuboot configs to build the peripheral sample for your custom board file, and I still cannot reproduce the issue.  

    Will_20241202 said:
    I am using sysbuild, and everything built fine in SDK v2.7.0 using sysbuild, and the original board files.  It was the jump to SDK v2.8.0 that broke things.

    Ensure you are using the correct boot board root path to build your application in NCS v2.8.0. 

     

Children
  • Ensure you are using the correct boot root path to build your application in NCS v2.8.0. 

    Can you give a little more detail on what this means?

    As an additional data point, I discovered that when trying to build with SDK v2.8.0, the "Extra CMake arguments" specified on the add/edit Build Configuration page are not being applied (they were in SDK v2.7.0 based on the build logs I kept).  Worse still, after I add them using that page and press the Generate button to create the Build Configuration for later building, if I edit the Build Configuration for that target they have all been removed!

    For reference, the arguments I was trying to include using this method were:

    -Dmcuboot_CONF_FILE=D:/Projects/<REDACTED>/repositories/<REDACTED>/sysbuild/mcuboot/prj.conf
    -Dmcuboot_EXTRA_CONF_FILE=C:/ncs/v2.8.0/nrf/subsys/partition_manager/partition_manager_enabled.conf
    -DCACHED_CONF_FILE=D:/Projects/<REDACTED>/repositories/<REDACTED>/prj.conf

    Again to be clear, these were fine using SDK/toolchain v2.7.0 and appeared in the build logs output by VS Code to its "terminal" window.  Looking at the failing build logs for SDK/toolchain v2.8.0 they are not even being passed as arguments.

  • Sorry, I mean the board path. 

    I don't think you need those arguments. It uses sysbuild by default since NCS v2.8.0. 

  • Where is the board path specified?  The only place I'm aware of is on the add/edit Build Configuration page there is a section for "Board target", and I chose the "generic_nrf52832_v2/nrf52832" option from the drop down menu.

    Looking through the failed build log I do see lines like

    -- Found BOARD.dts: D:/Projects/<redacted>/repositories/<redacted>/boards/Generic/generic_nrf52832_v2/generic_nrf52832_v2.dts
    
    ...
    
    Loaded configuration 'D:/Projects/<redacted>/repositories/<redacted>/boards/Generic/generic_nrf52832_v2/generic_nrf52832_v2_defconfig'

    which agrees with where I think it should be looking.

  • If you ensure that the board path is correct, then I have no idea. 

    Could you provide a simple project to help reproduce the issue?

  • I've managed to cut down the broken project as far as I can.  Still produces the same error.  Not seeing any way to upload it to the forum.  Seems to only let me upload valid image or video files, but not a zip (even if I change the extension).  Is there another method for sharing?

Related