Hello
I attempted to use the Bluetooth functionality of W8997.
In the Yocto compiled image system, I was able to successfully load and use it using the command 'hciattach ttymxc0 any 115200 flow'. However, in the Debian system, I couldn't load it successfully
[ 91.249245] Bluetooth: hci0: Frame reassembly failed (-84)
[ 91.256269] Bluetooth: hci0: Frame reassembly failed (-84)
[ 93.249583] Bluetooth: hci0: command 0x1003 tx timeout
[ 95.265586] Bluetooth: hci0: command 0x1001 tx timeout
[ 97.281586] Bluetooth: hci0: command 0x1009 tx timeout
Hi, @Letu
In the Yocto compiled image system, I was able to successfully load and use it using the command 'hciattach ttymxc0 any 115200 flow'.
==>Do you mean on our NXP I.MX board? Because it is using UART1 interface (/dev/ttymxc0 ) for Bluetooth.
However, in the Debian system, I couldn't load it successfully
==>So you need to check your Debian system, which UART interface is used for Bluetooth. It might be /dev/ttymxc1 or /dev/ttymxc2 or other things. So please check it.
And, may I know :
1.Your Debian system Linux kernel version?
2.What's your host side board?
Best regards,
Christine.
Yes, the hardware platform is i.MX 8M Plus.
The Debian system is using kernel version 5.4.70, which is actually copied from Yocto with some additional modifications.
I have tried running the Yocto Image file with the Debian file system, as well as running the Yocto file system with the Image file used by the Debian system, but I couldn't successfully load the Bluetooth functionality in both cases.
Hi, @Letu
Can you please explain in details how to load successfully before?
Can you please check the UART interface you are using?
Please also let me know details that you build and load. Actually, I don't totally understand your repro steps.
Besides, you can power off and plug the power supply put, then plug in again then power on to have a try.
Best regards,
Christine.
Hello, @Christine_Li
I loaded it following the steps in the following documentation:
hciattach ttymxc0 any 115200 flow
hciconfig hci0 up
hciconfig
After running the commands above, i should see this:
hci0: Type: Primary Bus: UART
BD Address: 00:E9:3A:0D:D2:10 ACL MTU: 1016:5 SCO MTU: 60:12
UP RUNNING PSCAN
RX bytes:1415 acl:0 sco:0 events:81 errors:0
TX bytes:1215 acl:0 sco:0 commands:81 errors:0
Hi, @Letu
Yes, you are right, with above command, you should see the correct Bluetooth MAC address.
But, I want to know how do you boot up your I.MX8MP with Debian system in details including how did you compile the Debian system.
And as mentioned before, please check the correct Bluetooth UART interface. It might be another ttymxc... interface, different with Yocto.
Best regards,
Christine.
Thank you for your response. I have successfully resolved the issue.
The specific reason was that my Bluetooth serial port was using DMA mode, but my Debian system did not have the corresponding SDMA firmware file, which prevented DMA communication from functioning properly. When I attempted to switch the UART to interrupt mode, it started working correctly. Therefore, I identified the lack of SDMA firmware as the root cause.
Hi, @Letu
Please forgive my lack of knowledge, would you mind to share how to check whether is working in DMA mode or interrupt mode and how to switch the UART to interrupt mode?
Appreciated if you can share for our reference.
Thanks and Regards,
Christine.
Hi, @Letu
Thanks for sharing your experience and solution to us.
It has great reference value for our future support to other customers who also use Debian system.
Appreciate it so much.
Have a nice day and weekend.
Best regards,
Christine.