flash read performance
arnaud.mouiche at thomson.net
Thu Oct 30 06:06:14 EDT 2008
I was using redboot, configured to use the optimized memcpy (yes, it
gives the choice at configuration time)
on kernel side, I just hack memcpy_fromio to add a "weak" attribute, and
rewrite it to directly use the linux optimized memcpy (shame on me for
this "not suggested" methode, but speed was my goal)
after that, performances are equal between bootloader and linux, and
really near the one reached by a DMA access, which is also the
performances we can calculate from FLASH time access configuration.
Andre Puschmann a écrit :
>> I was faced with the same wondering in the past : bootloader NOR access
>> was really much faster that Linux one.
> About how much faster? It really depends on the access method. I am
> using u-boot and if I use the basic cp.b routine its about the same
> _slow_ speed. I tried to use the asm-optimised memcpy routine that the
> kernel has. This is much faster, around 5MB/s.
>> Yes, no DMA was used (but the same on bootloader, and anyway that
>> doesn't impact the data rate, only the CPU load), but even worse, Linux
>> code was using memcpy_fromio which a basic byte by byte loop copy in the
>> default ARM implementation.
> Yes, memcpy_fromio is quite slow. But using normal memcpy is not
> suggested, only use writel()/readl() and memcpy_[from|to]io().
> I am not sure about the right _fast_ way to to such copies.
> Linux MTD discussion mailing list
More information about the linux-mtd