The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
I have to implement a DMA support for an old PCI to VME bridge device and I wonder what design should I use. I have already done using KMDF framework all initialization and other stuff like single transfers that are already working using IOCTL. The requirements for DMA support are very poor, but what I know is that the device hardware does not support scatter/gather mecanism and do only DMA transfer in packet mode. To perform DMA, I have some registers commonly used for DMA : PCI start address, VME start address, Transfer size, block size and a register that holds miscelaneous flags used for VME xfer like the direction (read/write). In user application, I would like to use IOCTL to perform all DMA Read and Write operation. For data transfer, I would use a shared buffer between user appl and kernel driver.
My questions are:
1) Could I use WdfDma framework features for this design since the HW does not support scatter/gather mecanism nor descriptors as shown in PLX9x5x WDF example ?
2) For shared buffer, do i need to use a CommonBuffer allocation mecanism in the driver or does exist an other mecanism ?
Thanks in advance for your answer.
|Upcoming OSR Seminars|
|OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!|
|Developing Minifilters||24 May 2021||Live, Online|
|Writing WDF Drivers||14 June 2021||Live, Online|
|Internals & Software Drivers||27 September 2021||Live, Online|
|Kernel Debugging||15 November 2021||Live, Online|