Skip to content


EP93xx fight continued…

During my recent OpenEmbedded related work I merged gcc patchset from Martin Guy to add support for Maverick Crunch FP unit present in Cirrus Logic EP93xx ARM cpus. This makes floating point operations faster then it was before.

But does using it has a sense for whole system? Is it possible at all? The answers are No and Yes. I have root filesystem for EDB9301 created with Maverick optimisations but I also have plain armv4t one for same board. They both work but I do not recommend using Crunch optimized one — there are strange errors. For example “HZ=5.33381e-315″ is given instead of “HZ=100″ in openssl speed test (problem is somewhere in glibc).

Let me quote Martin’s mail:

My current recommendation is to enable crunch only in the floating point intensive libraries and applications that your application system uses, because having more than one crunch-enabled process running in the system makes the context switches slower because the kernel has to save and restore 19 64-bit registers at every context switch. It doesn’t bother doing this if only one process is using the FPU thanks to some clever Buytenhek laziness). I don’t have figures for how much of a difference this makes, but I guess one could calculate it from the context switching rate shown in the output of “vmstat 5″ and the instruction times.

I switched “ep93xx” machine in OE back to armv4t optimisations. Also I am working on adding some more EP93xx related patches from Hasjim Williams (he made first set of patches for OpenEmbedded and Martin Guy improved them and moved to newer GCC).

One note for end of story — I am not interested in doing more ep93xx toolchain work. If your device/company need such help then contact Martin Guy for consulting offer.

Related posts:

  1. Sim.One #0006 arrived
  2. FOSDEM X
  3. Self hosted Ångström build
  4. 3 years of OpenEmbedded and me
  5. Some OpenEmbedded/Poky tricks

Tagged with , , .


5 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Jon Smirl says

    Freescale iMX353 is only $1-2 more. It is twice and fast and has 8x the FPU power. Why torture yourself with a broken FPU? I threw my ep93xx boards in the trash after a week of fighting with this.

    • Marcin Juszkiewicz says

      Jon: I already told you that I know that EP93xx have sick FPU. I also told what do I think about Freescale i.mx31 cpu.

      I am doing that ep93xx stuff to improve it’s support in OpenEmbedded and also to learn something new. Not everyday has to be spend with great working stuff.

  2. Yury says

    Hi Marcin,

    Is there a chance to emulate this board in Qemu? I’d like to have some linux distribution with custom kernel configuration to be run on EP9302, but don’t have a board to test it. I’ve downloaded Angstrom but both vanilla qemu-arm and one of Poky distribution failed to boot it. First one just showed black screen when started and Poky’s told that it is unsupported platform. So is there any info on how to start any linux distribution (with kernel 2.6) for EP93xx on qemu or how to make it by myself?

    • Marcin Juszkiewicz says

      I do not think so. EP93xx emulation would require some developer time to write it.

      You have to build for arm920t or arm926 (so any pxa/s3c/etc) to be able to use QEMU for testing.

      Or you can spend 99€ on Sim.One board which uses EP9307.

      • Yury says

        Oh, thanks, I’ll try it



Some HTML is OK

or, reply to this post via trackback.