工具/软件:Linux
你(们)好
目标系统:BeagleBone Green
操作系统:Linux 内核4.9
问题:
首先、我们在禁用 UART DMA 支持的情况下编译内核(CONFIG_SERIAL_8250_DMA)。 UART 工作正常。
然后、我们启用 UART DMA 支持、并在 DTS 中设置以下行:
uart4:串行@481a8000{
兼容="ti、am3352-uart"、"ti、omap3-uart";
ti、hwmods ="uart5";
时钟频率=<48000000>;
reg =<0x481a8000 0x2000>;
中断=<45>;
STATUS ="禁用";
DMA =<&EDMA 30 0>、<&EDMA 31 0>;
dma-names ="TX"、"Rx";
};
而 UART 不起作用。
永远不会调用通过内核进行的跟踪 OMAP-8250_DMA_TX_COMPLETE ()。
此外、在 am33xx.dtsi 中、只有 UART 0-2具有指定的 DMA 通道。 其他则不是。 这是由硬件限制造成的吗?
谢谢