05-22-2011 10:14 PM
I am new to the device drivers stuff.I am using the xapp1052 with ML605 board for the Bus master DMA.I need to write the driver code(modify xbmd.c) for a DMA read(reading it from the system memory and writing it to the device) to take place.I want to know how to send the physical address( obtained after using the pci_map_single) to the device.Is it okay if I just write the TLP address,size and count to the DMA read TLP address,size and count registers and then set the Bus master enable bit in the control register to kick start the DMA transfer? Or should I do something else to do the DMA transfer?Please help me out...
06-07-2011 03:04 PM - edited 06-07-2011 03:07 PM
The flow as I understand it is that the size and count of the TLPS must be programmed and then the transfer may begin via that control bit.
That being said I could see it being a lot easier to initiate from the PC side to get the data if it is the case that you know it has been generated/is ready.
I was thinking of doing something similar but have not tried it yet, so I would be curious what happens when you try it ;)
06-09-2011 06:45 AM
The PC side can not generate requests of multiple DW. It will only initiate requests of 1 DW. The endpoint will have to initiate requests of multiple DWs.