DMA problem with a PCI board (ADlink PCI7200) using AMCC s5

Hi,

i’m porting a DOS Driver of an Adlink PCI7200 under QNX 6.2

Basic I/O works, but when i try to enable DMA Transfer it crash QNX, the
chip

used for DMA is a AMCC S5933.

I have used pci* function to find the card, pci_attach, mmap_device_io,

mmap for dma buffer.

But i surely miss something, so if someone has already find the way to use

this board/chip, it would help me very much if you could share some piece

of code :wink:

Thansk for your help

In article <b2iard$i86$1@inn.qnx.com>, A_ENLEVER_y.leroux@actris.com says…

Hi,

i’m porting a DOS Driver of an Adlink PCI7200 under QNX 6.2

Basic I/O works, but when i try to enable DMA Transfer it crash QNX, the
chip

used for DMA is a AMCC S5933.

Just shoot in the dark… I hope you use appropriate flags to get physicly contiguous chunk of
memory for DMA buffers… There is example in documentation. And check twice you’re writting correct
physical address into DMA controller.

Eduard.

Also make sure you aren’t passing the virtual address of your mmap’ed region
to the DMA controller. You need to use mem_offset() to get the physical
address from the virtual.

Rob Rutherford

“Eduard” <ed1k@humber.bay> wrote in message
news:MPG.18b6ff64c9b28af2989699@inn.qnx.com

In article <b2iard$i86$> 1@inn.qnx.com> >, > A_ENLEVER_y.leroux@actris.com
says…
Hi,

i’m porting a DOS Driver of an Adlink PCI7200 under QNX 6.2

Basic I/O works, but when i try to enable DMA Transfer it crash QNX, the
chip

used for DMA is a AMCC S5933.

Just shoot in the dark… I hope you use appropriate flags to get physicly
contiguous chunk of
memory for DMA buffers… There is example in documentation. And check
twice you’re writting correct
physical address into DMA controller.

Eduard.