SDMA driver stall using as Bluetooth UART imx8m

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

SDMA driver stall using as Bluetooth UART imx8m

1,764 次查看
injaneer1
Contributor II

Our system is based off the imx8mm and I am currently using the Android 10 2.5.0 build tree.

I have an issue with our Bluetooth UART.  It uses UART1 with the CTS/RTS lines on UART3.  The UART will stall at some point, and no more HCI/Bluetooth traffic will be sent from the controller to the host.  I have tracked it down to the fact that the UART FIFO will hit the float level and assert CTS.  the float level is set to 16, in the imx.c UART driver.  This UART is configured to use SDMA (imx-sdma.c) to move the data to/from the UART RX and TX FIFO's.  What appears to be happening is that we have some SDMA overrun/error that causes the SDMA driver to leave 16 bytes in the RX FIFO which forces the UART to assert CTS and halts all data flow.  This stall does not self-correct.

Has this been seen by anyone else, and or an update in one of the newer Android or Linux builds ?  I can I detect and self-correct this stall ?

Thanks,
Chris

0 项奖励
回复
5 回复数

1,734 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Chris

 

from team:

----------

Two quick suggestions on this issue:

1. Try other BSPs to verify this issue? For example, Linux Linux 5.10.52_2.1.0;

2. Checked the related pinmux.

By the way, does UART1 have the issue at the begining? Or it work at the begining then have the stall issue?

----------

Best regards
igor

0 项奖励
回复

1,725 次查看
injaneer1
Contributor II

Is there a place I can view the drivers online of the other BSP's without having to sync to the repo ?

 

I have made improvements by increasing the buffer descriptors in the imx.c file from 4 to 16.  Also found this link which seems to be an attempt to fix this issue.

 

https://lore.kernel.org/linux-arm-kernel/20190911144943.21554-3-philipp.puschmann@emlix.com/

 

 

0 项奖励
回复

1,720 次查看
igorpadykov
NXP Employee
NXP Employee

from team:

--------------------

you can check it online:

https://source.codeaurora.org/external/imx/linux-imx/

--------------------

 

attached is Linux Manual with description of all drivers.

 

Best regards
igor

0 项奖励
回复

1,699 次查看
injaneer1
Contributor II

Can you provide the same link for the most recent Android OS (since we are using that and not the Linux.)

 

Thanks.

0 项奖励
回复

1,692 次查看
igorpadykov
NXP Employee
NXP Employee

for Android it is the same as it is based on Linux, for example for Android 10 2.5.0 it is L5.4.47_2.2.0 :

 

1.jpg

 

Best regards
igor

0 项奖励
回复