Hello.
I'm using RZ/A1H (R7S721000) chip under Linux.
In my project I need several SCIF ports to operate in fast bitrates, but encountered massive overruns.
In 1Mbps speed overruns happens every 16-32 bytes (one or two FIFO fills), and even in 38400bps - several times in a minute.
I'm using linux kernel 3.14 (from https://github.com/renesas-rz), executing in XiP mode from a single 4-bit SPI flash.
I think running from SPI flash is too slow to support fast SCIF speeds without DMA (especially because cache is not helpful in such a scenario).
There is some DMA support in drivers/tty/serial/sh-sci.c, and I've tried to enable it by setting .dma_slave_[tr]x fields in platform data for the port (and, of course, defining appropriate channels and such), but it does not work (many DMA-related error messages in dmesg and seriously garbled data was read).
Latest kernels (4.4+ from renesas-drivers) contains many changes to dmaengine and sh-sci.c, but I cannot use it because no rza1dma.c driver for it exists, as I know. And I have no sufficient experience to backport these changes to 3.14 nor to forward port my board support.
Anybody have a suggestions? Is it worth the efforts to port all the stuff to 4.x, or there are easier way?