Static mappings at boottime
Russell King - ARM Linux
linux at arm.linux.org.uk
Sat Jan 30 09:55:49 EST 2010
On Sat, Jan 30, 2010 at 11:47:36PM +0900, Khushhua Mogambo wrote:
> Dears
>
> my soc have very simple and limited device controllers. I have thought
> maybe I can map all devices's register spaces using iotable_init in map_io.
Yes, you can do this.
> And pass already mapped Virtual addr(and not phys addr) to device drivers
> via IORESOURCE_MEM.
But you can't do this. Resources take physical addresses, not virtual
addresses.
> i thinks that way i can do most use of virtual address space for ioremap
> and I can set VMALLOC size to maximum possible. also drivers doesnt have
> to worry about mapping(and no addr space is mapped twice in two code pieces)
>
> is it considered good kernel porting practice? can we face any problem
> after some times?
Definitely not.
The "simple" approach to your proposal is to map the device space
statically and then intercept ioremap(). When you detect a request
for a range which is already statically mapped, then return the
already mapped virtual address.
This doesn't change the way you write the drivers; you write drivers
using the standard interfaces and continue to assume that those
interfaces will fail.
More information about the linux-arm-kernel
mailing list