Hi,
I am using the the RZ A1 M cpu on a custom board. The debug port (console terminal) is connected to the SCIF3. Everything is working fine, except when I try to send a file through the debug port, I got overrun error. When I add delay between line sent, there is no error message. I heard that when using the SCIF with DMA, it can reduce the overrun error and therefore, removing delay or lowering it.
I tried to add the DMA but with no luck. I am receiving the kernel debug log on startup, but it stop before the login prompt and I cannot write anything.
Here is the change I have made in the linux kernel in board-rskrza1.c
Added slave config in rza1_dma_slaves[] list
{
.slave_id = RZA1DMA_SLAVE_SCIF3_TX,
.addr = 0xe800880c,
.chcfg = CHCFG(0x1, 0x0, 0x1, 0x1, 0x2, 0x1, 0x1, 0x0),
.dmars = DMARS(0x1, 0x1b),
},
{
.slave_id = RZA1DMA_SLAVE_SCIF3_RX,
.addr = 0xe8008814,
.chcfg = CHCFG(0x0, 0x0, 0x1, 0x1, 0x2, 0x1, 0x1, 0x0),
.dmars = DMARS(0x2, 0x1b),
},
added the slave id in plat_sci_port
static const struct plat_sci_port scif3_platform_data = {
.type = PORT_SCIF,
.regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
.scscr = SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE | SCSCR_REIE,
.dma_slave_tx = RZA1DMA_SLAVE_SCIF3_TX,
.dma_slave_rx = RZA1DMA_SLAVE_SCIF3_RX,
};
Am I forgetting something or doing something wrong?
Do any one of you have tried with success for using SCIF with DMA?
Thank for your help,
ABSysacom