Dear Weidong,
The customer implemented SDMA script of LinuxBSP and the issue still occurs.
Could you give your answer to the following asap?
In my customer’s lab, they saw the following phenomenon on SDMA of i.MX6SoloLite regarding to UART communication.
The issue is that SDMA could not respond to the interrupt from UART in case of certain combinations of SDMA’s buffer-size, UART RX packet size and Trigger size.
The following cases are seen on the customer’s lab.
(1)
- Trigger:16Bytes, BufferSize:64Bytes, PacketSize:32Bytes
When transmit 1 packet to UART,
- Interrupt does not be generated for the timeout from SDMA
- The Busy flag keeps being set in SDMA register
- In SDMA buffer, 32byte data is stored.
- Trigger:16Bytes, BufferSize:64Bytes, PacketSize:32Bytes
When transmit 2 packet to UART,
- one interrupt from SDMA is generated
(2)
- Trigger:16Bytes, BufferSize:128Bytes, PacketSize:64Bytes
When transmit 1 packet to UART,
- Interrupt does not be generated for the timeout from SDMA
- The Busy flag keeps being set in SDMA register
- In SDMA buffer, 64byte data is stored.
- Trigger:16Bytes, BufferSize:128Bytes, PacketSize:64Bytes
When transmit 2 packet to UART,
- one interrupt from SDMA is generated
The questions are;
(A)
Why the interrupt for timeout could not be generated, in the case of transmit the packet which size is half of buffer-size?
(B)
Are there any workaround for the above phenomenon?
Thanks,
Miyamoto