“Gary G. Little” wrote in message news:xxxxx@ntdev…
>
> Can the physical address of a common buffer of X megabytes allocated to
> Driver A be passed up to the application and then back down to driver B?
Can
> driver B then use this physical address allocated by driver A for DMA?
>
There are two answers to this question:
Answer 1: Yes, this works with current HALs on x86 platforms.
Answer 2: Strictly speaking, it’s not a “physical address” though… it’s a
device bus logical address. And, again, strictly speaking, it’s at least
theoretically possible that the map registers used to translate between the
device bus and physical memory address are not accessible to Device B. This
would be true, for example, when Device B is on a different bus than Device
A. To the best of my knowledge, the HAL architecture doesn’t allow you to
make any assumptions about the availability of map registers among devices.
So, from a strict architecture point of view, the answer would be “no,
because allocating a common buffer allocates the necessary map registers
necessary for that buffer, and because the map registers are not necessarily
available to both devices, you can’t share device bus logical addresses.”
Which answer you use depends…
Peter
OSR
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com