Fixed
Created: Feb 12, 2015
Updated: Dec 3, 2018
Resolved Date: Apr 19, 2015
Found In Version: 6.0.0.10
Fix Version: 6.0.0.20
Severity: Standard
Applicable for: Wind River Linux 6
Component/s: BSP, Kernel
Architecture: IA64
the Atom and an Infineon XC2267 coprocessor system has an SPI link from the Atom the the XC, and a UART link from the XC to the Atom. For this particular case, a request is sent over SPI from the Atom to the XC and expect the XC to respond on the UART channel (running a custom baud rate of 2.1 MBaud). Customer is using known good code on the XC and have verified that Atom (?) receives the request and sends the response. At a high level this is what have been observed:
1. With DMA enabled, no data is ever received over HSUART
2. With the DMA disabled, the port works as expected, although we see a "too much work irq20" warning after heavy use.
To disable DMA mode, we clear the CONFIG_SERIAL_8250_DMA kernel configuration variable and recompile our kernel.
In our full system we open the TTY in non-blocking mode, then sit in a thread polling the port for data. We use an ioctl() to see how many bytes are available, and then call read() to read that many bytes.