DMA controller on Northbridge?
Matthew Fleming
mdf356 at gmail.com
Tue Mar 22 18:56:02 UTC 2011
On Tue, Mar 22, 2011 at 11:12 AM, Kostik Belousov <kostikbel at gmail.com> wrote:
> On Tue, Mar 22, 2011 at 10:11:04AM -0700, Matthew Fleming wrote:
>> How can I tell if the Northbridge on a machine has a built-in DMA
>> controller? And if it does, what device would I use to control it?
>>
>> I ask because I'm working with a PCI card that has a 36-bit physical
>> address limit, and that means bounce buffers when using more than 64GB
>> of memory. I'd prefer not to use bounce buffers, and since the card's
>> memory that I'm using is mapped into the physical space of the FreeBSD
>> host, the entire address space of the card that I care about is
>> available to FreeBSD. So while pio to the card's memory is too slow
>> to be useful, if there was a way to use a DMA controller on the
>> motherboard to get data into and out of the card, that may be
>> preferable to using the card's DMAC with the limited address space.
>>
>> But all that's just theory -- I have no idea how to tell whether the
>> mobo has a DMAC, and if it does, how to control it. Help? :-)
>>
>> Attached is the boot dmesg; I can also run pciconf commands, etc., to
>> help out with figuring out what I have.
>
> I believe what are you looking for is
> ftp://download.intel.com/technology/.../Intel(r)_VT_for_Direct_IO.pdf
This link doesn't work for me.
> On my X58 machine it is shown like this:
> none6 at pci0:0:22:2: class=0x088000 card=0xf38015d9 chip=0x34328086 rev=0x12 hdr=0x00
> vendor = 'Intel Corporation'
> device = 'DMA Engine'
> class = base peripheral
> cap 11[80] = MSI-X supports 1 message in map 0x10
> cap 10[90] = PCI-Express 2 root endpoint max data 128(128) link x0(x0)
> cap 01[e0] = powerspec 3 supports D0 D3 current D0
I do seem to have several DMA Engine entries in pciconf on this
hardware. Hopefully the above doc will explain what to do. :-)
Thanks,
matthew
More information about the freebsd-hackers
mailing list