This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2564MODN: Bluetooth page timeout issue

Part Number: CC2564MODN
Other Parts Discussed in Thread: CC2560

Hello,

We have an issue with the CC2564MODN where it fails occasionally to connect via bluetooth the phone to the IVI. This issue is intermittent and happens every 3 or 4 power cycle.

We are running Linux 5.15 and bluez 5.72.

HCI0 : Firmware file : /lib/firmware/ti-connectivity/TIInit_6.7.16.bts

 

A log using btmon showcasing a bluetooth Status: Page Timeout (0x04)

The "Page Timeout (0x04)" error indicates that the Bluetooth controller couldn't establish a connection with the device within the allowed time period (5.12sec) .

 

Question : Do you recommend an HCI log based on this guide : /cfs-file/__key/communityserver-discussions-components-files/968/CC256x-Logger-User-Guide.pdf

 

 

Screenshot from 2025-12-17 01-50-03.png

 

The page timeout is set to default value  (5120.00 ms) 

  • This is our thought:

    Sometimes, the host running  hci_ll (drivers/bluetooth/hci_ll.c) linux state machine get sometimes out of sync from the actual sleep state of the HCI hardware device (TI C2564MODN) leading to the Bluetooth not connecting/pairing with the phone.

    I encountered on some boots this line signalling illegal state machine states:
    in fcn: static void ll_device_want_to_wakeup(struct hci_uart *hu) :

    - Dec 18 10:37:12.233444 kernel: Bluetooth: received HCILL_WAKE_UP_IND in state 2

  • Hi Fahed,

    Would you be able to take UART logs using a Logic Analyzer, that way we can see what the last command was sent to the controller before going out of sync. If it is indeed a  HCILL issue we will be able to confirm that way.

    Best,

    Rogelio

  • We have two bluetooth controllers on our board. The one that is causing problems is the HCI0.

    HCI0 is the one handling the phones (uart2).
    HCI1 is handling the headsets and bluetooth spearkers (uart3).

    ---
    The device tree:
    &uart2 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart2>, <&pinctrl_bt0_enable>;
    fsl,uart-has-rtscts;
    status = "okay";

    bluetooth {
    compatible = "ti,cc2560";
    clocks = <&clks IMX6QDL_CLK_CKIL>; /* 32.768KHZ */
    clock-names = "ext_clock";
    enable-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
    max-speed = <3000000>;
    };
    };


    &uart3 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_bt1_enable>;
    fsl,uart-has-rtscts;
    status = "okay";

    bluetooth {
    compatible = "ti,wl1837-st";
    clocks = <&clks IMX6QDL_CLK_CKIL>; /* 32.768KHZ */
    clock-names = "ext_clock";
    enable-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
    max-speed = <3000000>;
    };
    };
    ---
    root@indianhw-7in:~# hciconfig -a
    hci1: Type: Primary Bus: UART
    BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 1021:6 SCO MTU: 180:4
    UP RUNNING
    RX bytes:3024 acl:0 sco:0 events:372 errors:0
    TX bytes:69909 acl:0 sco:0 commands:372 errors:0
    Features: 0xff 0xfe 0x2f 0xfe 0xdb 0xff 0x7b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
    Link policy: RSWITCH HOLD SNIFF
    Link mode: PERIPHERAL ACCEPT
    Name: 'Standalone IVI A'
    Class: 0x7c0420
    Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
    Device Class: Audio/Video, Car Audio
    HCI Version: 5.1 (0xa) Revision: 0x0
    LMP Version: 5.1 (0xa) Subversion: 0xac14
    Manufacturer: Texas Instruments Inc. (13)

    hci0: Type: Primary Bus: UART
    BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 1021:4 SCO MTU: 180:4
    UP RUNNING PSCAN
    RX bytes:1423 acl:0 sco:0 events:137 errors:0
    TX bytes:15941 acl:0 sco:0 commands:133 errors:0
    Features: 0xff 0xfe 0x2d 0xfe 0xdb 0xff 0x7b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
    Link policy: RSWITCH HOLD SNIFF
    Link mode: PERIPHERAL ACCEPT
    Name: 'Standalone IVI A'
    Class: 0x7c0420
    Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
    Device Class: Audio/Video, Car Audio
    HCI Version: 4.1 (0x7) Revision: 0x0
    LMP Version: 4.1 (0x7) Subversion: 0x1baa
    Manufacturer: Texas Instruments Inc. (13)
    root@indianhw-7in:~#


    ----

    On boot, after the TI bluetooth IC firmware download (.bts) :

    Jan 05 14:47:26.194658 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_ACK packet
    Jan 05 14:47:26.194859 indianhw-7in kernel: [HCILL:ll_device_woke_up] hu 2c461ef4
    Jan 05 14:47:26.197176 indianhw-7in kernel: [HCILL:ll_enqueue] hu 57ae6404 skb cb49d193
    Jan 05 14:47:26.197493 indianhw-7in kernel: [HCILL:ll_enqueue] device asleep, waking up and queueing packet
    Jan 05 14:47:26.197756 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 57ae6404 cmd 0x32
    Jan 05 14:47:26.205949 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_ACK packet
    Jan 05 14:47:26.206274 indianhw-7in kernel: [HCILL:ll_device_woke_up] hu 57ae6404
    Jan 05 14:47:26.215606 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:26.216065 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:47:26.216277 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31
    Jan 05 14:47:26.305624 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:26.305986 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 57ae6404
    Jan 05 14:47:26.306192 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 57ae6404 cmd 0x31
    Jan 05 14:47:27.252605 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_IND packet
    Jan 05 14:47:27.253005 indianhw-7in kernel: [HCILL:ll_device_want_to_wakeup] hu 2c461ef4
    Jan 05 14:47:27.253239 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x33
    Jan 05 14:47:27.273588 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:27.273848 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:47:27.274018 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31
    Jan 05 14:47:29.120824 indianhw-7in kernel: [HCILL:ll_enqueue] hu 2c461ef4 skb 9067224b
    Jan 05 14:47:29.121057 indianhw-7in kernel: [HCILL:ll_enqueue] device asleep, waking up and queueing packet
    Jan 05 14:47:29.121236 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x32
    Jan 05 14:47:29.129624 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_ACK packet
    Jan 05 14:47:29.130162 indianhw-7in kernel: [HCILL:ll_device_woke_up] hu 2c461ef4
    Jan 05 14:47:29.150606 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:29.151011 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:47:29.151248 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31
    Jan 05 14:47:34.252599 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_IND packet
    Jan 05 14:47:34.253043 indianhw-7in kernel: [HCILL:ll_device_want_to_wakeup] hu 2c461ef4
    Jan 05 14:47:34.253224 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x33
    Jan 05 14:47:34.273585 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:34.273822 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:47:34.274014 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31
    Jan 05 14:47:36.127135 indianhw-7in kernel: [HCILL:ll_enqueue] hu 2c461ef4 skb 52b2b576
    Jan 05 14:47:36.127707 indianhw-7in kernel: [HCILL:ll_enqueue] device asleep, waking up and queueing packet
    Jan 05 14:47:36.128184 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x32
    Jan 05 14:47:36.129582 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_ACK packet
    Jan 05 14:47:36.130404 indianhw-7in kernel: [HCILL:ll_device_woke_up] hu 2c461ef4
    Jan 05 14:47:36.144599 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:36.144910 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:47:36.145099 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31
    Jan 05 14:47:41.246671 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_IND packet
    Jan 05 14:47:41.247630 indianhw-7in kernel: [HCILL:ll_device_want_to_wakeup] hu 2c461ef4
    Jan 05 14:47:41.247856 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x33
    Jan 05 14:47:41.268413 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:47:41.268942 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:47:41.269151 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31

    At this point the phone failed to connect to our system. We try to manually press the connect button on our GUI to initiate a bluetooth connection and we obtain this:

    Jan 05 14:53:31.384448 indianhw-7in kernel: [HCILL:ll_enqueue] hu 2c461ef4 skb a5665113
    Jan 05 14:53:31.384922 indianhw-7in kernel: [HCILL:ll_enqueue] device asleep, waking up and queueing packet
    Jan 05 14:53:31.385257 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x32
    Jan 05 14:53:31.391643 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_ACK packet
    Jan 05 14:53:31.392131 indianhw-7in kernel: [HCILL:ll_device_woke_up] hu 2c461ef4
    Jan 05 14:53:31.413602 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:53:31.414705 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:53:31.415840 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31
    Jan 05 14:53:36.514604 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_WAKE_UP_IND packet
    Jan 05 14:53:36.515430 indianhw-7in kernel: [HCILL:ll_device_want_to_wakeup] hu 2c461ef4
    Jan 05 14:53:36.516115 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x33
    Jan 05 14:53:36.535597 indianhw-7in kernel: [HCILL:ll_recv_frame] HCILL_GO_TO_SLEEP_IND packet
    Jan 05 14:53:36.535961 indianhw-7in kernel: [HCILL:ll_device_want_to_sleep] hu 2c461ef4
    Jan 05 14:53:36.536186 indianhw-7in kernel: [HCILL:send_hcill_cmd] hu 2c461ef4 cmd 0x31