AnsweredAssumed Answered

mx6 SDMA stops fetching UART rx data

Question asked by pp@emlix.com on Jul 3, 2019
Latest reply on Jul 4, 2019 by igorpadykov

Hi,

 

i have custom boards with i.MX6ul and i.MX6dl and a wlan/bluetooth chip wl1837 that communicates via uart with the i.MX6.

If dma is enabled at one point during normal work load the sdma stops fetching data from the rx fifo. This leads to rx fifo

overflow and raising the CTS line that yields in errors in the bluetooth stack

Bluetooth: hci0: command 0x0406 tx timeout

 

reloading hci_uart module yields in a working state of uart and sdma but is obviously no solution.

 

I'm using a linux mailine kernel v4.15 but i have also tried v5.2-rc3. I'm using sdma-imx6q.bin from mainline linux-firmware v3.3

but i also have tried out the ROM code and the newest available v3.5. Without success.

 

I have checked the uart registers. RRDY is 1. Checking the uart data with a logic analyzer doesn't show any errors.

 

I have dumped the uart registers after the error occurs:

021EC000: 0000803D

021EC080: 00000125

021EC084: 00002027

021EC088: 0000008C

021EC08C: 00004000

021EC090: 000022C9

021EC094: 00006250

021EC098: 000042A9

021EC09C: 0000002B

021EC0A0: 00000000

021EC0A4: 00000000

021EC0A8: 00000000

021EC0AC: 00000008

021EC0B0: 00013880

021EC0B4: 00000040

021EC0B8: 00000000

 

 

Any ideas?

 

edit: removed mention of FRAMERR, this is not always 1.

Outcomes