Acceleration for map_copy_from on powerpc 512x
Fortini Matteo
matteo.fortini at mta.it
Mon Oct 19 18:52:13 EST 2009
Hi,
I'm working on a powerpc (PPC512x) embedded Linux product, and while I
was trying to improve boot time, I found I could exploit the hw in order
to speed up reading from NOR flashes.
The Linux/mtd version we're using is 2.6.24.6+Freescale patches.
Basically, I needed to hack the map_copy_from, which for my arch and
uncached areas translates to a memcpy, in order to use the SCLPC FIFO,
with a performance benefit of >2x on aligned multiple of 32Bytes transfers.
I didn't find a cleaner way than just #ifdef'ing the map_copy_from call
and substitute with my call on relevant cases. I wonder if there is a
cleaner way.
And yes, as soon as I've cleaned up the code a little bit, I will
definitely post a patch about it.
Moreover: a huge benefit would come from exploiting DMA on these
transfers, but I found I'm in_atomic while doing map_copy_from... is
there an alternative way of locking than just disabling preemption?
I know maybe a newer kernel has already fixed it, but we're kind of
stuck with the old one since we don't have time to port all of our
device drivers to 2.6.3x
Thanks,
Matteo
More information about the Linuxppc-dev
mailing list