Я использую https://elixir.bootlin.com/linux/v4.9.127/source/drivers/dma/dmatest.c.
Выше программы передачи данных для двоих происходит только от буфера к буферу с использованием kmalloc.Но я хочу использовать для физического адреса, используя ioremap.Я сделал назначение с ioremap, но передача dma не происходит.
И без dma использование буфера ioremap для передачи буфера работает нормально.
В функции dmatest_func
thread->dsts = kcalloc(dst_cnt+1, sizeof(u8 *), GFP_KERNEL);
if (!thread->dsts)
goto err_dsts;
u8 *virt;
virt=ioremap(0x80002000,params->buf_size);
thread->dsts[0]=virt;
Этодостаточно для физического адреса или любых других функций, необходимых для сопоставления физического адреса для передачи dma.
помогите мне решить эту проблему.