Re: Reserving a fixed physical address page of RAM.

From: Jesper Juhl
Date: Tue Nov 28 2006 - 05:15:22 EST


On 28/11/06, Fawad Lateef <fawadlateef@xxxxxxxxx> wrote:
On 11/28/06, Dave Airlie <airlied@xxxxxxxxx> wrote:
> On 11/28/06, Jon Ringle <jringle@xxxxxxxxxxxx> wrote:
<snip>
> > 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've seen other projects just boot a 128M board with mem=120M and just
> use the 8MB at 120 to talk to the other processor..
>

Yes, this can be used if required physical-memory exists in the last
part of RAM as if you use mem=<xxxM> then kernel will only use memory
less than or equal-to <xxxM> and above can be used by drivers (or any
kernel module) might be through ioremap which takes physical-address.

But if lets say we need only 1MB portion of specific physical-memory
region then AFAIK it must be done by hacking in kernel code during
memory-initialization (mem_init function) where it is marking/checking
pages as/are reserved; you can simply mark you required pages as
reserved too and set their count to some-value if you want to know
later which pages are reserved by you. (can do this reservation work
here: http://lxr.free-electrons.com/source/arch/i386/mm/init.c#605).
CMIIW


Can you not use the 'memmap=' kernel option to reserve the specific
area you need?
(See Documentation/kernel-parameters.txt for details)

--
Jesper Juhl <jesper.juhl@xxxxxxxxx>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/