[<prev] [next>] [day] [month] [year] [list]
Message-ID: <22170ADB26112F478A4E293FF9D449F44D0F7D@secure.comdial.com>
Date: Tue, 28 Nov 2006 14:26:03 -0500
From: "Jon Ringle" <JRingle@...tical.com>
To: "Robert Hancock" <hancockr@...w.ca>
Cc: <linux-kernel@...r.kernel.org>
Subject: RE: Reserving a fixed physical address page of RAM.
Robert Hancock wrote:
> Jon Ringle wrote:
> > 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.
>
> I don't think this is possible in the general case, as
> there's no mechanism for moving things out of the way if they
> might be in use. Your best solution is likely to use
> dma_alloc_coherent and pass the bus address returned into the
> other processor to tell it where to write..
I can't do that because my mechanism to talk to the other processor is
exactly what I'm trying to setup. Catch-22 :)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists