AnsweredAssumed Answered

I.MX6S Serial DMA Enable/Disable

Question asked by grim on Apr 7, 2017
Latest reply on Apr 10, 2017 by grim

I'm currently fighting an issue in our i.MX6 system.

Our application seems to be losing or missing some expected serial data.


When I read the documentation provided by NXP (i.MX_Linux_Reference_Manual.pdf), it says that the UART can be configured for DMA or Interrupt access. It says "Each UART can be configured to use DMA for the data transfer by enabling the DMA channel in the DTS file."

When I examine the text file "/linux-2.6-imx/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt", it gives NO information about how to accomplish this.

As far as I can tell, the serial port is using DMA and there's no way to disable it (according to documentation).


I'm currently working with BSP version 3.14.28.


Has anybody been able to enable/disable DMA transfers for any serial ports on the i.MX6?

If so, care to share how?

Any other documentation I should be looking at?


Thank you.

* Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART)

Required properties:
- compatible : Should be "fsl,<soc>-uart"
- reg : Address and length of the register set for the device
- interrupts : Should contain uart interrupt

Optional properties:
- fsl,uart-has-rtscts : Indicate the uart has rts and cts
- fsl,irda-mode : Indicate the uart supports irda mode
- fsl,dte-mode : Indicate the uart works in DTE mode. The uart works
                  is DCE mode by default.

Note: Each uart controller should have an alias correctly numbered
in "aliases" node.


aliases {
    serial0 = &uart1;

uart1: serial@73fbc000 {
    compatible = "fsl,imx51-uart", "fsl,imx21-uart";
    reg = <0x73fbc000 0x4000>;
    interrupts = <31>;