Acceleration for map_copy_from on powerpc 512x

Kenneth Johansson kenneth at southpole.se
Tue Oct 27 22:41:01 EST 2009


On Tue, 2009-10-27 at 11:02 +0100, Fortini Matteo wrote:
> The simple_map_init() works at a higher level, what I'm redefining is a 
> function called by mtd->read()

not sure I follow. What you want to do is change the access to the
flash. You do this by turning on MTD_COMPLEX_MAPPINGS and then setting
up the function pointers like is done in simple_map_init() but point to
your own functions. Now every access to the NOR flash will be done using
your functions and you can do whatever optimization you like.


> The block size for e.g. a dd if=/dev/mtd0 of=/dev/null
> with the default block size (I believe it's 512Bytes), fetches from 
> /dev/mtd0 4096 Bytes at a time.
> I'd prefer the kernel to be scheduling other tasks meanwhile, instead of 
> busy-waiting on completion.
> 
> Regards
> 
> Kenneth Johansson ha scritto:
> > On Mon, 2009-10-19 at 09:52 +0200, Fortini Matteo wrote:
> >
> >   
> >> 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.
> >>     
> >
> > Remove the call to simple_map_init() and do it manually in your driver
> > with your own functions.
> >
> >   
> >> 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, 
> >>     
> >
> > probably depends on the block size if it's a gain or not. What is the
> > size you normally see. 
> >
> >
> >   
> 
> 




More information about the Linuxppc-dev mailing list