public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/8] arm: a few steps to reduce the boot time
@ 2015-02-16 15:13 Przemyslaw Marczak
  2015-02-16 15:13 ` [U-Boot] [PATCH v2 1/8] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
                   ` (9 more replies)
  0 siblings, 10 replies; 85+ messages in thread
From: Przemyslaw Marczak @ 2015-02-16 15:13 UTC (permalink / raw)
  To: u-boot

This patchset reduces the boot time for ARM architecture,
Exynos boards, and boards with DFU enabled.

For tested Trats2 and Odroid X2 devices, this was done in four steps.

1. Enable the arch memcpy and memset

2. Enable arch memset for .bss clear

3. Reduce the .bss section small as possible by removing the static dfu buffer
   (32MiB in .bss - Trats2), and use the malloc.

4. Skip zeroing the memory reserved for malloc at malloc init.
   For Trats2 it was 80MiB of memory.

The .bss section will grow if we have a lot of static variables.
This section is cleared before jump to the relocated U-Boot,
and it was done word by word. To reduce the time for this step,
we can enable arch memset, which uses multiple ARM registers.

For configs with DFU enabled, we can find the dfu buffer in this section,
which has at least 8MB (32MB for Trats2). This is a lot of useless data,
which is not required for standard boot. So this buffer should be dynamic
allocated.

The next issue was about the malloc reserved memory, which was zeroed
at malloc init in one of early init call. Some boards has more than one MiB
of reserved malloc memory. Zeroing this, adds another boot delay.
Now the memory is zeroed only on calloc call.

So, actually the all was about unnecessary operations on 'big' data.

Przemyslaw Marczak (8):
  exynos: config: enable arch memcpy and arch memset
  arm: relocation: clear .bss section with arch memset if defined
  dfu: mmc: file buffer: remove static allocation
  dlmalloc: add option for skip memset in malloc init
  README: add info about skip memset at malloc init
  kconfig: malloc: add option for skip memset at malloc init
  trats2: defconfig: enable expert and skip memset at malloc init
  odroid: defconfig: enable expert and skip malloc memset

 Kconfig                         | 26 +++++++++++++++++++-------
 README                          |  7 +++++++
 arch/arm/lib/crt0.S             | 10 +++++++++-
 common/dlmalloc.c               | 10 +++++++---
 configs/odroid_defconfig        |  2 ++
 configs/trats2_defconfig        |  2 ++
 drivers/dfu/dfu_mmc.c           | 25 ++++++++++++++++++++++---
 include/configs/exynos-common.h |  3 +++
 8 files changed, 71 insertions(+), 14 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 85+ messages in thread

end of thread, other threads:[~2015-03-09 16:47 UTC | newest]

Thread overview: 85+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-16 15:13 [U-Boot] [PATCH v2 0/8] arm: a few steps to reduce the boot time Przemyslaw Marczak
2015-02-16 15:13 ` [U-Boot] [PATCH v2 1/8] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-18  4:23   ` Simon Glass
2015-02-18 12:21     ` Przemyslaw Marczak
2015-02-16 15:13 ` [U-Boot] [PATCH v2 2/8] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-16 15:21   ` Przemyslaw Marczak
2015-02-18  4:32     ` Simon Glass
2015-02-18 12:31       ` Przemyslaw Marczak
2015-02-19 18:59         ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 3/8] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-18  4:32   ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 4/8] dlmalloc: add option for skip memset in malloc init Przemyslaw Marczak
2015-02-18  4:32   ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 5/8] README: add info about skip memset at " Przemyslaw Marczak
2015-02-18  4:32   ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 6/8] kconfig: malloc: add option for " Przemyslaw Marczak
2015-02-18  4:32   ` Simon Glass
2015-02-18 12:40     ` Przemyslaw Marczak
2015-02-19 18:59       ` Simon Glass
2015-02-20  7:32         ` Masahiro Yamada
2015-02-20  9:46           ` Przemyslaw Marczak
2015-02-16 15:13 ` [U-Boot] [PATCH v2 7/8] trats2: defconfig: enable expert and " Przemyslaw Marczak
2015-02-18  4:32   ` Simon Glass
2015-02-16 15:13 ` [U-Boot] [PATCH v2 8/8] odroid: defconfig: enable expert and skip malloc memset Przemyslaw Marczak
2015-02-18  4:32   ` Simon Glass
2015-02-18 12:42     ` Przemyslaw Marczak
2015-02-17 21:43 ` [U-Boot] [PATCH v2 0/8] arm: a few steps to reduce the boot time Stephen Warren
2015-02-17 22:39   ` Stephen Warren
2015-02-18 12:58     ` Przemyslaw Marczak
2015-02-20 11:06 ` [U-Boot] [PATCH v3 0/6] arm: a few steps to improve " Przemyslaw Marczak
2015-02-20 11:06   ` [U-Boot] [PATCH v3 1/6] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-20 11:06   ` [U-Boot] [PATCH v3 2/6] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-20 11:06   ` [U-Boot] [PATCH v3 3/6] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-20 11:06   ` [U-Boot] [PATCH v3 4/6] dlmalloc: add option for skip memset in malloc init Przemyslaw Marczak
2015-02-20 12:52     ` Masahiro Yamada
2015-02-20 17:08       ` Przemyslaw Marczak
2015-02-20 11:06   ` [U-Boot] [PATCH v3 5/6] trats2: defconfig: enable expert and skip memset at " Przemyslaw Marczak
2015-02-20 11:06   ` [U-Boot] [PATCH v3 6/6] odroid: " Przemyslaw Marczak
2015-02-23 17:16   ` [U-Boot] [PATCH v4 0/6] arm: a few steps to improve boot time Przemyslaw Marczak
2015-02-23 17:16     ` [U-Boot] [PATCH v4 1/6] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-23 17:16     ` [U-Boot] [PATCH v4 2/6] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-23 17:16     ` [U-Boot] [PATCH v4 3/6] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-23 17:16     ` [U-Boot] [PATCH v4 4/6] dlmalloc: do memset in malloc init as new default config Przemyslaw Marczak
2015-02-23 17:38       ` Simon Glass
2015-02-24 10:59         ` Przemyslaw Marczak
2015-02-23 17:16     ` [U-Boot] [PATCH v4 5/6] trats2: defconfig: disable memset at malloc init Przemyslaw Marczak
2015-02-23 17:16     ` [U-Boot] [PATCH v4 6/6] odroid: " Przemyslaw Marczak
2015-02-24 10:38     ` [U-Boot] [PATCH v5 0/7] arm: a few steps to improve boot time Przemyslaw Marczak
2015-02-24 10:38       ` [U-Boot] [PATCH v5 1/7] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-02-24 14:30         ` Lukasz Majewski
2015-02-24 10:38       ` [U-Boot] [PATCH v5 2/7] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-02-24 14:32         ` Lukasz Majewski
2015-02-24 10:38       ` [U-Boot] [PATCH v5 3/7] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-02-24 14:35         ` Lukasz Majewski
2015-02-24 10:38       ` [U-Boot] [PATCH v5 4/7] dlmalloc: do memset in malloc init as new default config Przemyslaw Marczak
2015-02-24 14:38         ` Lukasz Majewski
2015-02-24 10:38       ` [U-Boot] [PATCH v5 5/7] trats2: defconfig: disable memset at malloc init Przemyslaw Marczak
2015-02-24 14:39         ` Lukasz Majewski
2015-02-24 10:38       ` [U-Boot] [PATCH v5 6/7] odroid: " Przemyslaw Marczak
2015-02-24 14:39         ` Lukasz Majewski
2015-02-24 10:38       ` [U-Boot] [PATCH v5 7/7] odroid-xu3: " Przemyslaw Marczak
2015-02-24 14:40         ` Lukasz Majewski
2015-02-24 14:47       ` [U-Boot] [PATCH v5 0/7] arm: a few steps to improve boot time Przemyslaw Marczak
2015-03-04 13:01       ` [U-Boot] [PATCH v6 00/10] " Przemyslaw Marczak
2015-03-04 13:01         ` [U-Boot] [PATCH v6 01/10] exynos: config: enable arch memcpy and arch memset Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 02/10] arm: relocation: clear .bss section with arch memset if defined Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 03/10] dfu: mmc: file buffer: remove static allocation Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 04/10] dlmalloc: do memset in malloc init as new default config Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 05/10] trats2: defconfig: disable memset at malloc init Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 06/10] odroid: " Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 07/10] odroid-xu3: " Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 08/10] zynq-common: increase malloc pool len by dfu mmc file buffer size Przemyslaw Marczak
2015-03-04 13:57           ` Michal Simek
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 09/10] ti-armv7-common: " Przemyslaw Marczak
2015-03-09 16:46           ` [U-Boot] [U-Boot, v6, " Tom Rini
2015-03-04 13:01         ` [U-Boot] [PATCH v6 10/10] tegra-common: " Przemyslaw Marczak
2015-03-09 16:47           ` [U-Boot] [U-Boot, v6, " Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox