u-boot/arch/arm/lib
Przemyslaw Marczak 114c86d826 arm: relocation: clear .bss section with arch memset if defined
For ARM architecture, enable the CONFIG_USE_ARCH_MEMSET/MEMCPY,
will highly increase the memset/memcpy performance. This is able
thanks to the ARM multiple register instructions.

Unfortunatelly the relocation is done without the cache enabled,
so it takes some time, but zeroing the BSS memory takes much more
longer, especially for the configs with big static buffers.

A quick test confirms, that the boot time improvement after using
the arch memcpy for relocation has no significant meaning.
The same test confirms that enable the memset for zeroing BSS,
reduces the boot time.

So this patch enables the arch memset for zeroing the BSS after
the relocation process. For ARM boards, this can be enabled
in board configs by defining: 'CONFIG_USE_ARCH_MEMSET'.

This was tested on Trats2.
A quick test with trace. Boot time from start to main_loop() entry:
- ~1384ms - before this change
-  ~888ms - after this change

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@konsulko.com>
2015-03-09 11:13:28 -04:00
..
_ashldi3.S Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
_ashrdi3.S Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
_divsi3.S cosmetic: remove empty lines at the top of file 2013-11-08 09:41:37 -05:00
_lshrdi3.S Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
_modsi3.S cosmetic: remove empty lines at the top of file 2013-11-08 09:41:37 -05:00
_udivsi3.S Move lib_$ARCH directories to arch/$ARCH/lib 2010-04-13 09:13:03 +02:00
_umodsi3.S Move lib_$ARCH directories to arch/$ARCH/lib 2010-04-13 09:13:03 +02:00
asm-offsets.c ARM: remove jadecpu board support 2015-02-24 17:06:51 -05:00
board.c leds: missing include 2014-10-25 15:27:35 -04:00
bootm-fdt.c ARM: HYP/non-sec/PSCI: emit DT nodes 2014-07-28 17:19:52 +02:00
bootm.c armv8/fsl-lsch3: Convert flushing L3 to assembly to avoid using stack 2015-02-24 13:08:46 -08:00
cache-cp15.c ARM: cache-cp15: Use more accurate types 2014-11-12 07:25:42 +01:00
cache-pl310.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cache.c arm, arm926ejs: make thumb mode compileable 2015-01-19 12:49:26 +01:00
crt0.S arm: relocation: clear .bss section with arch memset if defined 2015-03-09 11:13:28 -04:00
crt0_64.S arm64: core support 2014-01-09 16:08:44 +01:00
debug.S arm: debug: adjust for U-Boot 2014-10-26 22:23:40 +01:00
div0.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
eabi_compat.c eabi_compat: add __aeabi_memcpy __aeabi_memset 2014-09-09 13:51:11 +02:00
gic_64.S armv8/fsl-lsch3: Release secondary cores from boot hold off with Boot Page 2014-09-25 08:36:19 -07:00
interrupts.c arm: interrupt_init: set sp in IRQ/FIQ modes 2014-10-29 09:03:28 -04:00
interrupts_64.c arm64: core support 2014-01-09 16:08:44 +01:00
Makefile common/board_f: factor out reserve_stacks 2015-02-17 22:52:42 +01:00
memcpy.S arm: build arch memset/memcpy in Thumb2 mode 2015-01-09 10:20:22 -05:00
memset.S arm: build arch memset/memcpy in Thumb2 mode 2015-01-09 10:20:22 -05:00
relocate.S imx: fix exception vectors relocation in imx27 2014-11-20 10:13:54 +01:00
relocate_64.S armv8/cache: Flush D-cache, invalidate I-cache for relocation 2014-04-07 17:43:36 +02:00
reset.c arm:reset: call the reset_misc() before the cpu reset 2014-09-05 13:58:49 +09:00
sections.c ARM: HYP/non-sec: add separate section for secure code 2014-07-28 17:07:23 +02:00
semihosting.c arm: semihosting: get rid of forward declarations 2014-12-29 07:44:06 -05:00
spl.c arm: spl: Avoid setting up a duplicate global data structure 2015-03-04 14:55:04 -05:00
stack.c common/board_f: factor out reserve_stacks 2015-02-17 22:52:42 +01:00
vectors.S arm: make .vectors section allocatable 2014-10-29 09:02:17 -04:00