Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Nov 2015 15:34:38 -0800
From:      John-Mark Gurney <jmg@funkthat.com>
To:        AlexHully <deco33000@yandex.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: dma
Message-ID:  <20151109233438.GM65715@funkthat.com>
In-Reply-To: <298361446978177@web22g.yandex.ru>
References:  <298361446978177@web22g.yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
AlexHully wrote this message on Sun, Nov 08, 2015 at 11:22 +0100:
> I would like a clarification for dma.
> 
> The context: most dma capable devices have 32 bits address range.

Depends upon the bus, and now w/ PCIe, 64bit is commonly supported...

> Is it correct that, if there was no 3G/1G mapping in the kernel, or that kernel low memory could map 4Gb memory, one could choose any free addresses in that low memory to set up a dma buffer?

I assume you're talking about i386... If you are, the kernel/userland
mapping split has nothing to do w/ DMA...  the 3G/1G split is a virtual
address space construct and DMA purely deals w/ the physical memory
layout.  Or are you talking about the 3G/1G physical memory, PCI device
hole?

On non-PAE i386 systems (with only 32bit physical addressing), there
is no performance impact when dealing w/ a 32bit only capabile DMA
device as all of physical memory is addressable.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151109233438.GM65715>