programming DMA with matrox registers

For questions concerning driver development in general, problems with the board or users, feature requests or other Off-Topic discussions.

programming DMA with matrox registers

Postby LeCelte » Fri Mar 28, 2008 4:10 pm

i want to apply DMA transfers with matrox cards and tests them.

So, I wrote a mini driver to try to transfer data to G550 PCIe X1 memory card, but it 's difficult to get the correct information from the different sources (fb_base.c ...).

I attached a source file in witch i did some basics PCI APIs to read/write matrox registers.
I got help with "MGA-G200 Specifications" (i hope these are the same for mga550...)

I have two problems:
I don't know which exact sequence of read/write is necessary to perform a simple transfer from RAM: enable DMA/command transfer/interrupt ?
I think i have to get "MGA control aperture" base address and program registers PRIMADDRESS and PRIMEND... But without the correct exact method i would have to make lots of tests to perform matrox DMA.
If someone have some simple C source code, it would be great for me.

The second problem (and the most important one) is that i'm unable to access "MGA control aperture" base address.
there are three iomem regions with Matrox cards, and i can only access to the "Direct frame buffer access aperture" (with readb and writeb tests OK in this zone).
The two others can't be accessible: they are IORESOURCE_MEM, and request_mem_region is OK, but ioremap return a pointer with address 0, and direct readb or writeb blocks the driver.
how are these registers used in real drivers?
maybe i got o buggy platform (COMEXPRESS CE915GM with ubuntu 7.10 ) for that card?

Thanks if someone could give me ideas
(10.08 KiB) Downloaded 371 times
Posts: 5
Joined: Thu Mar 27, 2008 1:21 pm

Return to General questions

Who is online

Users browsing this forum: No registered users and 1 guest