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