From mboxrd@z Thu Jan 1 00:00:00 1970 From: Przemyslaw Marczak Date: Tue, 24 Feb 2015 15:47:37 +0100 Subject: [U-Boot] [PATCH v5 0/7] arm: a few steps to improve boot time In-Reply-To: <1424774311-23726-1-git-send-email-p.marczak@samsung.com> References: <1424711811-3442-1-git-send-email-p.marczak@samsung.com> <1424774311-23726-1-git-send-email-p.marczak@samsung.com> Message-ID: <54EC8F09.9000008@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Tom, On 02/24/2015 11:38 AM, Przemyslaw Marczak wrote: > 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. > > So, actually the all was about unnecessary operations on 'big' data. > > Przemyslaw Marczak (7): > 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 > > Kconfig | 32 +++++++++++++++++++++++++------- > arch/arm/lib/crt0.S | 10 +++++++++- > common/dlmalloc.c | 10 +++++++--- > configs/odroid-xu3_defconfig | 2 ++ > configs/odroid_defconfig | 1 + > configs/trats2_defconfig | 1 + > drivers/dfu/dfu_mmc.c | 25 ++++++++++++++++++++++--- > include/configs/exynos-common.h | 3 +++ > 8 files changed, 70 insertions(+), 14 deletions(-) > If you will merge this patchset, please take also this one patch: http://patchwork.ozlabs.org/patch/440623/ Best regards, -- Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com