Mapping of Device Physical Address to Kernel Virtual address
Philipp Ittershagen
p.ittershagen at googlemail.com
Tue Jul 10 01:47:17 EDT 2012
Hi Prabhu,
On Tue, Jul 10, 2012 at 6:56 AM, Prabhu nath <gprabhunath at gmail.com> wrote:
> For E.g. I have a device whose physical address range is 0x80008000 to
> 0x80008FFF.
> Is it possible to map this device physical address to a known
> virtual address range 0xF0008000 to 0xF0008FFF.
I don't think this is possible, because these virtual address ranges
are handled by the kernel VMA system and are allocated dynamically, so
that is not just a bitmask or something to change.
> My hardware configuration has 128 MB of system RAM which will have been
> MAPPED to the Kernel virtual address from 0xC0000000 to 0xC7FFFFFF
>
> Also is it possible to configure the vmalloc kernel virtual address region
> to a fixed range of 128 MB from 0xC8000000 to 0xCFFFFFFF
You could change PAGE_OFFSET. From [1]:
PHYS_OFFSET
Physical start address of the first bank of RAM.
PAGE_OFFSET
Virtual start address of the first bank of RAM. During the kernel
boot phase, virtual address PAGE_OFFSET will be mapped to physical
address PHYS_OFFSET, along with any other mappings you supply.
This should be the same value as TASK_SIZE.
But I'm curious: Why do you want to change it?
Greetings,
Philipp
[1]: http://www.kernelport.org/defines.html
More information about the Kernelnewbies
mailing list