From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Wed, 28 Jan 2015 14:12:04 +0100 Subject: [U-Boot] [PATCH 0/3] arm: reduce .bss section clear time In-Reply-To: <1422449743-10119-1-git-send-email-p.marczak@samsung.com> References: <1422449743-10119-1-git-send-email-p.marczak@samsung.com> Message-ID: <54C8E024.8070504@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Przemyslaw, On 28.01.2015 13:55, Przemyslaw Marczak wrote: > This patchset reduces the boot time for ARM architecture, > Exynos boards, and boards with DFU enabled(ARM). > > For tested Trats2 device, this was done in three steps. > > First was enable the arch memcpy and memset. > The second step was enable memset for .bss clear. > The third step for reduce this operation is to keep .bss section > small as possible. > > 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's 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. > > Przemyslaw Marczak (3): > 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 > > arch/arm/lib/crt0.S | 10 +++++++++- > drivers/dfu/dfu_mmc.c | 25 ++++++++++++++++++++++--- > include/configs/exynos-common.h | 3 +++ > 3 files changed, 34 insertions(+), 4 deletions(-) Looking at the commit messages of this patchset I can conclude that your overall boot time reduction is: from ~1527ms to ~464ms This is amazing! Congrats. :) We really should in general make more use of the optimized functions and take care that the buffers (e.g. the DFU buffer in this case) are used in a sane way. Thanks, Stefan