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>