Hi, I've been using Linux on ARM9 for quite a while, but now a customer wants uClinux. I scouted the net for information, however there are still some missing bits and pieces and I hope that someone can point me in the right direction.
I read the test results from Hyok S. Choi, who compared uClinux vs. Linux on ARM9 and I have a question regarding cache flushing on arm926. In the paper [hyok1] (see references at the end of the mail) it is mentioned that the cache needs to be flushed on context switches. But the ARM manual[arm1] specifies the following: "The caches are virtual index, virtual tag, addressed using the Modified Virtual Address (MVA). This enables the avoidance of cache cleaning and/or invalidating on context switch." Whereas information about the MVA can be found in [arm2][arm3]: "The VA is translated using the FCSE PID value to the MVA. The Instruction Cache (ICache) and Memory Management Unit (MMU) detect the MVA (see Process ID Register c13)." So is it possible that the recent ARM cores now include a notion of process id, which seriously improves cache performance on context switches. And as a consequence the results in [hyok1] might not be reproducible? Another question - about shared flat libraries. Is it correct that there is no shared flat support for ARM yet? From what I saw the -mid-shared-library gcc option is not available for ARM, is there any workaround? I found a one year old post about this on the mailing list, it seems that someone was planning to do some work on this, but I did not find any conclusive results. And a question regarding the toolchain: can I build for uclinux using a "normal" arm-uclibc-gnueabi toolchain and postprocess the output with elf2flt, or is a "special" toolchain required? I looked at the arm-2007q3-51-arm-uclinuxeabi csl toolchain, they added uclinux-eabi while the vanilla gcc only provides uclinux-elf. Does that mean that I can not build for uclinux eabi using vanilla gcc? Actually, this leads back to the previous question, if a "special" toolchain is needed or if I can work with vanilla gcc toolchain compiled for arm eabi and what is this uclinux-elf configuration? Thanks! Kind regards, Jin Here are the references mentioned above: [hyok1] Hyok-Sunch Choi, Hee-Chul Yun. Context Switching and IPC Performance Comparison between uClinux and Linux on the ARM9 based processore http://opensrc.sec.samsung.com/document/uc-linux-04_sait.pdf [arm1] ARM926EJ-S Technical Reference Manual, section 4.1 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0198d/I998929.html [arm2] ARM926EJ-S Technical Reference Manual, section 2.2.1 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0198d/ch02s02s01.html [arm3] http://infocenter.arm.com/help/topic/com.arm.doc.ddi0198d/I1002240.html _______________________________________________ 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
