[U-Boot] [PATCH v6 00/10] arm: a few steps to improve boot time
Przemyslaw Marczak
p.marczak at samsung.com
Wed Mar 4 14:01:20 CET 2015
This patchset reduces the boot time for ARM architecture,
Exynos boards, and (ARM) boards with DFU enabled.
For tested Trats2 and Odroid X2/XU3 devices, this was done in four steps.
1. Enable the arch memcpy and memset - ARCH specific
2. Enable arch memset for .bss clear - ARCH specific
3. Reduce the .bss section small as possible by: (board specific)
- remove static dfu buffer (32MiB in .bss - Trats2), and use 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.
Changes v6:
This version fixes merge conflict on latest master, which is:
"Prepare v2015.04-rc3"
It also extends malloc pool, for some board configs.
Przemyslaw Marczak (10):
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: do memset in malloc init as new default config
trats2: defconfig: disable memset at malloc init
odroid: defconfig: disable memset at malloc init
odroid-xu3: defconfig: disable memset at malloc init
zynq-common: increase malloc pool len by dfu mmc file buffer size
ti-armv7-common: increase malloc pool len by dfu mmc file buffer size
tegra-common: increase malloc pool len by dfu mmc file buffer size
Kconfig | 32 +++++++++++++++++++++++++-------
arch/arm/lib/crt0.S | 10 +++++++++-
common/dlmalloc.c | 10 +++++++---
configs/odroid-xu3_defconfig | 2 ++
configs/odroid_defconfig | 2 +-
configs/trats2_defconfig | 1 +
drivers/dfu/dfu_mmc.c | 25 ++++++++++++++++++++++---
include/configs/exynos-common.h | 3 +++
include/configs/tegra-common.h | 5 +++++
include/configs/ti_armv7_common.h | 6 +++++-
include/configs/zynq-common.h | 2 +-
11 files changed, 81 insertions(+), 17 deletions(-)
--
1.9.1
More information about the U-Boot
mailing list