From: Mark Hounschell <markh@compro.net>
To: "Richard B. Johnson" <RJohnson@Route495Software.com>
Cc: linux-pci@vger.kernel.org, Mark Hounschell <dmarkh@cfl.rr.com>,
linux-kernel@vger.kernel.org
Subject: Re: problems doing direct dma from a pci device to pci-e device
Date: Fri, 11 Sep 2009 10:50:12 -0400 [thread overview]
Message-ID: <4AAA63A4.6080900@compro.net> (raw)
In-Reply-To: <433DD7EA0883478C9A18E5443FD1B328@Route495PC>
Richard B. Johnson wrote:
> ----- Original Message ----- From: "Mark Hounschell" <markh@compro.net>
> To: <linux-pci@vger.kernel.org>
> Cc: "Mark Hounschell" <dmarkh@cfl.rr.com>; <linux-kernel@vger.kernel.org>
> Sent: Friday, September 11, 2009 10:13 AM
> Subject: problems doing direct dma from a pci device to pci-e device
>
>
>> I know this is really just a pci issue but have CC'd LKML just in
>> case. Sorry LKML for the noise.
>>
>> I have a situation where a card on a regular PCI bus (Compro gpiohsd)
>> does dma's
>> directly into another PCI cards memory (VMIC-5565 reflective memory)
>> living on
>> another PCI bus. These 2 cards are sometimes seperated by many bridges.
>> Expansion racks etc. We've been doing this forever. No problem (mostly).
>>
>> I now have an AM3 based DFI DK 790FXB-M3H5 motherboard. This board has
>> 3 regular
>> PCI slots and 3 PCI-E (16x) slots. I also have a PCI-E (x4) version of
>> the VMIC-5565
>> reflective memory card in one of the PCI-E slots and our gpiohsd card
>> in one of the regular
>> PCI slots. All on the motherboard. No expansion slots being used.
>> However I cannot get
>> data from our gpiohsd into the PCI-E VMIC-5565 cards memory. I can
>> certainly get the data there
>> from a userland buffer, no problem. Just not from one card to the
>> other directly. Oh and when
>> I put the regular PCI version of the VMIC into one of the regular PCI
>> slots everything works
>> as expected. They are then both on the same PCI bus and no bridges are
>> involved though.
>>
>
> [SNIPPED...]
>
> Please check your software to make sure that after the DMA has presumed
> to complete, you READ something from the destination PCI bus address!
> With so many PCI writes queued, they may all be stuck in the many
> hardware FIFOs and the sure way to complete the writes is to perform a
> read.
> Cheers,
> Richard B. Johnson
> http://Route495Software.com/
>
>
>
>
>
Thanks, that's actually how I know the data never gets to it's destination. I read it.
The data gets lost somewhere.
Regards
Mark
next prev parent reply other threads:[~2009-09-11 14:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-11 14:13 problems doing direct dma from a pci device to pci-e device Mark Hounschell
2009-09-11 14:41 ` Richard B. Johnson
2009-09-11 14:50 ` Mark Hounschell [this message]
2009-09-11 14:47 ` Alan Cox
2009-09-11 15:25 ` Mark Hounschell
2009-09-11 15:46 ` Richard B. Johnson
2009-09-11 19:42 ` Mark Hounschell
2009-09-11 20:04 ` Mark Hounschell
2009-09-14 5:36 ` Grant Grundler
2009-09-14 8:03 ` Mark Hounschell
2009-09-15 11:23 ` Mark Hounschell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AAA63A4.6080900@compro.net \
--to=markh@compro.net \
--cc=RJohnson@Route495Software.com \
--cc=dmarkh@cfl.rr.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.