Я пытаюсь написать драйвер linux для устройства PCIe - высокоскоростной цифровой карты ввода-вывода Adlink PCIe 7300A.
Драйвер отлично работает для нормальной передачи данных в память, но попытка использовать возможности управления шиной карты для инициирования передачи DMA буфера из памяти ЦП в выходной буфер FIFO устройства просто не работает.
Я пытался решить эту проблему порядка недель, а не дней.
Любое понимание вообще будет действительно оценено.
Код драйвера - https://github.com/sbrookes/timing_driver_sdarn/blob/master/kernel_land/timing.c
Технические данные устройства - http://www.acceed.com/manuals/adlink/P7300A%20Manual.PDF
Техническое описание микросхемы интерфейса PLX 9080 PCI - http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf
Я не могу объяснить, насколько я был бы признателен за любое понимание.
Спасибо,
Скотт
dma_bus_addr
? - person CL.   schedule 07.07.2013dma_virt_addr = pci_alloc_consistent(dev, 20*1024, &dma_bus_addr); printk(KERN_DEBUG "dma_bus_addr is 0x%x\n", dma_bus_addr);
сообщает, что dma_bus_addr is 0x2c538000, но я не знаю, что это то же самое каждый раз, когда я загружаю модуль ... Я хочу поиграть приятно на этом сайте, подскажите, что я могу сделать, чтобы в этом убедиться? Не могу объяснить, насколько я ценю вашу помощь. Интересуюсь всеми ошибками, а также лучшими практиками, кстати. Спасибо. - person s.brookes   schedule 07.07.2013dma_addr_t
не 64-битное значение? - person CL.   schedule 08.07.2013%llx
? - person CL.   schedule 08.07.2013uname -m
выводит x86_64, так что похоже, что я работаю над 64-битным ядром. - person s.brookes   schedule 08.07.2013