nRF SDK 2.9.2: BT_CTLR_RX_BUFFERS unsatisfied dependencies: BT_LL_SW_SPLIT (=n)

I need help with this issue. I'm updating the code from SDK 2.4.2 to SDK 2.9.2. I had change the device tree to HWM2 and I'm using sysbuild.

The build log is showing this warning:

warning: BT_CTLR_RX_BUFFERS (defined at subsys/bluetooth\controller/Kconfig:225) was assigned the
value '10' but got the value ''. Check these unsatisfied dependencies: BT_LL_SW_SPLIT (=n). See
docs.zephyrproject.org/.../kconfig.html and/or look up
BT_CTLR_RX_BUFFERS in the menuconfig/guiconfig interface. The Application Development Primer,
Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
helpful too.

After I had set CONFIG_BT_LL_SW_SPLIT in HCI_IPC_CONF I got more errors:

After a day trying to figure out what I'm missing I decided to use the hello world sample with nrf5340dk and I got the same error. Below I copied the log.

./cfs-file/__key/communityserver-discussions-components-files/4/compilation-log.txt

Here my test code using the hello_world sample.

/cfs-file/__key/communityserver-discussions-components-files/4/0005.hello_5F00_world.zip

  • Hello,

    Susheel is a bit tied up with some other tasks at the moment, and I will help you in the meantime.

    The warning you posted in your opening query says that the configuration option is only available when the Zephyr Bluetooth Link Layer (BT_LL_SW_SPLIT) is enabled. If BT_LL_SW_SPLIT is not enabled (=n), then CONFIG_BT_CTLR_RX_BUFFERS is ignored, resulting in the warning.

    I see that you are enabling the Zephyr controller here. From SDK v2.8.0 onwards, you need to build with this snippet to enable the Zephyr BLE controller. See this DevZone case which shows how you can do the same. I guess this is the issue you are facing, let me know if it's not, and I will take a look into the hello_world sample you shared.

    Kind regards,
    Abhijith

  • I added bt-ll-sw-split snippet.

    Below the west command generated by VsCode:

    west build --build-dir c:/Work/nrf-samples/hello_world/app/build c:/Work/nrf-samples/hello_world/app --pristine --board nrf5340dk/nrf5340/cpuapp -- -DNCS_TOOLCHAIN_VERSION=NONE -DCONF_FILE=prj.conf -DSNIPPET=bt-ll-sw-split -DBOARD_ROOT=c:/work/nrf-samples/hello_world

    I got the following error:

    devicetree error: C:/ncs/v2.9.2/zephyr/snippets/bt-ll-sw-split/bt-ll-sw-split.overlay:1 (column 1): parse error: undefined node label 'bt_hci_controller'
    CMake Error at C:/ncs/v2.9.2/zephyr/cmake/modules/dts.cmake:295 (execute_process):
    execute_process failed command indexes:

    1: "Child return code: 1"

  • Hello,

    Sorry for getting back to you a bit late, it's summer vacation here in Norway, which is the reason for the delay in responding.

    Is this a custom board or a DK? I suspect that the DTS might be missing the bt_hci.controller node. The error message you're seeing occurs because the bt-ll-sw-split snippet expects the bt_hci_controller node to exist in your board's device tree. If your board's DTS does not define this node, or if it is disabled, you will encounter this error.

    This issue has been discussed in an older DevZone case, please refer to it and try adding the overlay as mentioned there.

    Kind regards,
    Abhijith

  • I'm using for this debug the nRF5340DK_nrf5340 device tree.

    I added an overlay:

    / {
        chosen {
            zephyr,bt-hci = &bt_hci_controller;
        };
    };

    &bt_hci_sdc {
        status = "disabled";
    };

    &bt_hci_controller {
        status = "okay";
    };
    And got another error. 

    devicetree error: c:\\work\\nrf-samples\\hello_world\\app\\boards\\nrf5340dk_nrf5340_cpuapp.overlay:7 (column 1): parse error: undefined node label 'bt_hci_sdc'
    CMake Error at C:/ncs/v2.9.2/zephyr/cmake/modules/dts.cmake:295 (execute_process):

    This ticket is going nowhere. 

Related