[coreboot] Could I replace memmove function?

2013-08-15 Thread Andrew Wu
Hi, I am developing coreboot on DMP/Vortex86EX board. I found recent updated coreboot source code made it boots slower on my board. That is because: >From commit c6b44162f5cccd72e9b4d9dbf071911249971846, src/lib/cbfs_core.c uses memmove instead of memcpy to load uncompressed ramstage. memmove func

Re: [coreboot] Could I replace memmove function?

2013-08-15 Thread ron minnich
It seems to me you could improve our memmove? Also, if we want to define another Kconfig variable this is pretty easy to fix. ron -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Could I replace memmove function?

2013-08-15 Thread David Hendricks
On Thu, Aug 15, 2013 at 8:43 AM, ron minnich wrote: > It seems to me you could improve our memmove? > > Also, if we want to define another Kconfig variable this is pretty easy to > fix. There is CONFIG_CPU_DMP_VORTEX86EX which might be useful. Maybe Andrew can try something like this: diff --

Re: [coreboot] Could I replace memmove function?

2013-08-15 Thread Gabe Black
It wouldn't be terrible to have a generally better memmove implementation either. Gabe On Thu, Aug 15, 2013 at 6:23 PM, David Hendricks wrote: > > > > On Thu, Aug 15, 2013 at 8:43 AM, ron minnich wrote: > >> It seems to me you could improve our memmove? >> >> Also, if we want to define another

Re: [coreboot] Could I replace memmove function?

2013-08-15 Thread Peter Stuge
David Hendricks wrote: > There is CONFIG_CPU_DMP_VORTEX86EX which might be useful. I disagree. > Maybe Andrew can try something like this: .. > +ifeq ($(CONFIG_CPU_DMP_VORTEX86EX),y) > +# Old memmove implementation from Linux always use REP MOVSL > +# which is much faster on some CPUs. > +ramsta

Re: [coreboot] Could I replace memmove function?

2013-08-15 Thread Patrick Georgi
Am 2013-08-15 14:01, schrieb Andrew Wu: is 256-byte aligned, otherwise it will failback to use slower MOV loop. MOV loop is much slower then REP MOVSL on Vortex86EX, because reading instructions from ROM is slow. Can't you cache the ROM area? Other than that: Optimizing the common code is bette

Re: [coreboot] Could I replace memmove function?

2013-08-17 Thread Andrew Wu
DMP/Vortex86EX can't cache ROM area on the top of 4G memory, so romstage area can't be cached. :( I am thinking...should I just replace memmove function with REP MOVS version, or use __PRE_RAM__ macro to choose which memmove version to use? (Because in romstage REP MOVS runs much faster). 2013/8/