Pass through kernel memory manager
Hi I'm working on an ARM926EJS based SOM (OMAPL138). The ARM has internal memory spaces (8k one and 128k one) where i would like to put some code. I thought to use something like : void foobar (void) __attribute__ ((section ("bar"))); Then link with -Wl,--section-start,bar=FFFF1000 But the Linux loader fails to load this segment. So, is it worth to try to achieve to run code at desired position ? Is there any way to tell Linux to 1:1 map some physical regions to processes address space ? Perhaps the memmap= kernel parameter ? Thanks for your help. Paul.
the parameter you passed in section start looks weird, given that your physical memory so limited. (8K and 128K, 2 different bank? if so then only one is available at any one time?), Perhaps some knowledge about linker-script should help: http://blogs.bu.edu/md/2011/11/15/the-dark-art-of-linker-scripts/ the "1:1" mapping is called identity mapping, and linker script provide a way for you to load the binary into specific part of the physical memory, On Sat, Feb 8, 2014 at 4:29 AM, Paul Chavent <paul.chavent@fnac.net> wrote:
Hi
I'm working on an ARM926EJS based SOM (OMAPL138). The ARM has internal memory spaces (8k one and 128k one) where i would like to put some code.
I thought to use something like :
void foobar (void) __attribute__ ((section ("bar")));
Then link with
-Wl,--section-start,bar=FFFF1000
But the Linux loader fails to load this segment.
So, is it worth to try to achieve to run code at desired position ?
Is there any way to tell Linux to 1:1 map some physical regions to processes address space ? Perhaps the memmap= kernel parameter ?
Thanks for your help.
Paul.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
participants (2)
-
Paul Chavent -
Peter Teoh