Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Mar 2011 11:55:59 -0700
From:      Matthew Fleming <mdf356@gmail.com>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: DMA controller on Northbridge?
Message-ID:  <AANLkTikEg77e3t0K4K%2Bbs75O8N9jusPidRk=Erbcoxpu@mail.gmail.com>
In-Reply-To: <20110322181219.GU78089@deviant.kiev.zoral.com.ua>
References:  <AANLkTinjmMtF=qrNCXJ84Wir0AYErtCdZ5LeLFOPJeFg@mail.gmail.com> <20110322181219.GU78089@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 22, 2011 at 11:12 AM, Kostik Belousov <kostikbel@gmail.com> wro=
te:
> 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? =A0And 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. =A0I'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. =A0So 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. =A0Help? :-)
>>
>> 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@pci0:0:22:2: =A0 class=3D0x088000 card=3D0xf38015d9 chip=3D0x343280=
86 rev=3D0x12 hdr=3D0x00
> =A0 =A0vendor =A0 =A0 =3D 'Intel Corporation'
> =A0 =A0device =A0 =A0 =3D 'DMA Engine'
> =A0 =A0class =A0 =A0 =A0=3D base peripheral
> =A0 =A0cap 11[80] =3D MSI-X supports 1 message in map 0x10
> =A0 =A0cap 10[90] =3D PCI-Express 2 root endpoint max data 128(128) link =
x0(x0)
> =A0 =A0cap 01[e0] =3D powerspec 3 =A0supports D0 D3 =A0current 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikEg77e3t0K4K%2Bbs75O8N9jusPidRk=Erbcoxpu>