User avatar
jansendup
Posts: 10
Joined: Mon Aug 19, 2013 9:02 am
Location: Stellenbosch, South Africa

UART DMA

Thu Oct 10, 2013 11:47 am

The UART DMA doesn't work which becomes a problem at baudrates higher than 3Mbits/s. The reason it fails is because the platform is suppose to provide DMA info to the uart-pl011 driver but it just passes it NULL. In arch/arm/mach-bcm2708/bcm2708.c line 242: "AMBA_DEVICE(uart0, "dev:f1", UART0, NULL);"
The last parameter of AMBA_DEVICE should be a pointer to a "struct amba_pl011_data" that is defined in include/linux/amba/serial.h line 201.

Relevant documentation:
https://www.kernel.org/doc/Documentation/dmaengine.txt
Does anyone know to write the dma_filter_fn function and whether or not dma polling should be enabled or not?

https://github.com/raspberrypi/linux/issues/396

User avatar
jansendup
Posts: 10
Joined: Mon Aug 19, 2013 9:02 am
Location: Stellenbosch, South Africa

Re: UART DMA

Thu Oct 10, 2013 8:21 pm

Looks like the there is no dmaengine driver for the dma. The pl011 driver depends on the missing dmaengine driver.

karlkiste
Posts: 189
Joined: Tue Jan 22, 2013 8:50 am
Location: berlin, germany

Re: UART DMA

Wed Oct 16, 2013 7:53 am

The "BCM2835 ARM Peripherals" document says on page 175 about the PL011 UART:
The following functionality is not supported :
● Infrared Data Association (IrDA)
● Serial InfraRed (SIR) protocol Encoder/Decoder (ENDEC)
● Direct Memory Access (DMA).
Therefore, I think you can stop searching a software solution.

Return to “Interfacing (DSI, CSI, I2C, etc.)”