diff mbox

[U-Boot,v2,1/8] exynos: config: enable arch memcpy and arch memset

Message ID 1424099601-14979-2-git-send-email-p.marczak@samsung.com
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Commit Message

Przemyslaw Marczak Feb. 16, 2015, 3:13 p.m. UTC
This commit enables the following configs:
- CONFIG_USE_ARCH_MEMCPY
- CONFIG_USE_ARCH_MEMSET
This increases the performance of memcpy/memset
and also reduces the boot time.

This was tested on Trats2.
A quick test with trace. Boot time from start to main_loop() entry:
- ~1527ms - before this change (arch memset enabled for .bss clear)
- ~1384ms - after this change

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Akshay Saraswat <akshay.s@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
---
 include/configs/exynos-common.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

Simon Glass Feb. 18, 2015, 4:23 a.m. UTC | #1
On 16 February 2015 at 08:13, Przemyslaw Marczak <p.marczak@samsung.com> wrote:
> This commit enables the following configs:
> - CONFIG_USE_ARCH_MEMCPY
> - CONFIG_USE_ARCH_MEMSET
> This increases the performance of memcpy/memset
> and also reduces the boot time.
>
> This was tested on Trats2.
> A quick test with trace. Boot time from start to main_loop() entry:
> - ~1527ms - before this change (arch memset enabled for .bss clear)
> - ~1384ms - after this change
>
> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Akshay Saraswat <akshay.s@samsung.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> ---
>  include/configs/exynos-common.h | 3 +++
>  1 file changed, 3 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

BTW in case you are interested, in the Chromium U-Boot tree
(chromeos-v2013.06 branch) we have exynos support for turning on the
cache in SPL and leaving it on through to the end of U-Boot. It runs
two SPLs and two U-Boots (with verified boot and kernel verification)
in a total of about 750ms. This shipped last year with Pit and Pi
(Samsung Chromebook 2).

Might be some interesting patches there...

Regards,
Simon
Przemyslaw Marczak Feb. 18, 2015, 12:21 p.m. UTC | #2
Hello,

On 02/18/2015 05:23 AM, Simon Glass wrote:
> On 16 February 2015 at 08:13, Przemyslaw Marczak <p.marczak@samsung.com> wrote:
>> This commit enables the following configs:
>> - CONFIG_USE_ARCH_MEMCPY
>> - CONFIG_USE_ARCH_MEMSET
>> This increases the performance of memcpy/memset
>> and also reduces the boot time.
>>
>> This was tested on Trats2.
>> A quick test with trace. Boot time from start to main_loop() entry:
>> - ~1527ms - before this change (arch memset enabled for .bss clear)
>> - ~1384ms - after this change
>>
>> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
>> Cc: Minkyu Kang <mk7.kang@samsung.com>
>> Cc: Akshay Saraswat <akshay.s@samsung.com>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>> ---
>>   include/configs/exynos-common.h | 3 +++
>>   1 file changed, 3 insertions(+)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
> BTW in case you are interested, in the Chromium U-Boot tree
> (chromeos-v2013.06 branch) we have exynos support for turning on the
> cache in SPL and leaving it on through to the end of U-Boot. It runs
> two SPLs and two U-Boots (with verified boot and kernel verification)
> in a total of about 750ms. This shipped last year with Pit and Pi
> (Samsung Chromebook 2).
>
> Might be some interesting patches there...
>
> Regards,
> Simon
>

This is very interesting. Some time ago I made some tests witch the 
cache on/off cases for s-boot(bl1/Bl2 for trats2). Enabling the cache 
incredible improve the performance.
Since it is easy to break the Trats2, such changes in the s-boot has no 
sense. But it could be easy in the future to modify the bl2 for Odroid.

Best regards,
diff mbox

Patch

diff --git a/include/configs/exynos-common.h b/include/configs/exynos-common.h
index 1f3ee55..5c14c40 100644
--- a/include/configs/exynos-common.h
+++ b/include/configs/exynos-common.h
@@ -30,6 +30,9 @@ 
 #define CONFIG_SKIP_LOWLEVEL_INIT
 #define CONFIG_BOARD_EARLY_INIT_F
 
+#define CONFIG_USE_ARCH_MEMCPY
+#define CONFIG_USE_ARCH_MEMSET
+
 /* Keep L2 Cache Disabled */
 #define CONFIG_CMD_CACHE