We recently built the latest uclinux (2.6 kernel) and tried userland
XIP (built with PIC flag) on a ARM7 nommu board. However, userland
XIP is not working. Text is always copied to kmalloc'ed RAM before
the execution.

We traced the code and found the following call trace for the loader:

flat loader:
   load_flat_file()
        do_mmap()
            mm/nommu.c:do_mmap_pgoff()
                <call ROMFS fops->mmap()> 
                    mm/filemap.c:generic_file_readonly_mmap()

generic_file_readonly_mmap() return -ENOSYS for NOMMU case. Hence
kernel will always do the kmalloc() and copy the program text.

That seems to indicate XIP does not work at all for 2.6. Can
someone confirm?

Further, we found MAGIC_ROM_PTR related code and patch for 2.4 kernel.
That seems to be the relavent code missing in 2.6 to support userland
XIP.

Does someone know if this is case? Has anybody tried this with 2.6 kernel?
Any gotcha's before we start the porting?

Cheers.

Jun

_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to