Robert Hancock wrote:
> Jon Ringle wrote:
>> Hi,
>>
>> I need to reserve a page of memory at a specific area of RAM that will
>> be used as a "shared memory" with another processor over PCI. How can I
>> ensure that the this area of RAM gets reseved so that the Linux's memory
>> management (kmalloc() and friends) don't use it?
>>
>> Some things that I've considered are iotable_init() and ioremap().
>> However, I've seen these used for memory mapped IO devices which are
>> outside of the RAM memory. Can I use them for reseving RAM too?
>>
>> I appreciate any advice in this regard.
>
> Sounds to me like dma_alloc_coherent is what you want..
>
It looks promising, however, I need to reserve a physical address area
that is well known (so that the code running on the other processor
knows where in PCI memory to write to). It appears that
dma_alloc_coherent returns the address that it allocated. Instead I need
something where I can tell it what physical address and range I want to use.