[U-Boot] [PATCH 1/3] ARM: revive CONFIG_USE_ARCH_MEMCPY/MEMSET for UniPhier and Tegra

Masahiro Yamada yamada.masahiro at socionext.com
Tue Dec 20 05:39:40 CET 2016


2016-12-20 6:59 GMT+09:00 Tom Rini <trini at konsulko.com>:
> On Mon, Dec 19, 2016 at 07:31:02PM +0900, Masahiro Yamada wrote:
>> Commit be72591bcd64 ("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to
>> Kconfig") is misconversion.
>>
>> The original logic in include/configs/uniphier.h was as follows:
>>
>>   #if !defined(CONFIG_SPL_BUILD) && !defined(CONFIG_ARM64)
>>   #define CONFIG_USE_ARCH_MEMSET
>>   #define CONFIG_USE_ARCH_MEMCPY
>>   #endif
>>
>> This means those configs were enabled when building U-Boot proper,
>> but disabled when building SPL.  Likewise for Tegra.
>>
>> Now "depends on !SPL" prevents any boards with SPL support
>> from reaching these options.  This changed the behavior for
>> UniPhier and Tegra SoC family.
>>
>> Please notice these two options only control the U-Boot proper
>> build.  As you see arch/arm/Makefile, ARM-specific memset/memcpy
>> are never compiled for SPL.  So, __HAVE_ARCH_MEMCPY/MEMSET should
>> not set for SPL.
>>
>> Fixes: be72591bcd64 ("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to Kconfig")
>> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
>
> Ah, oops, thanks for spotting that one.
>
>> ---
>>
>> I am restoring the original behavior for now.
>> But, I have been wondering if we could remove these options entirely.
>
> We cannot.  That was my first attempt and we have a handful of active (I
> checked) boards with tiny enough SPL constraints that switching to the
> optimized memcpy/memset push them over size limit and they do not have a
> "something" to disable to gain the space back.  So I went with asking
> for asking for a conversion to enable by default these options as widely
> as possible as it's a good thing by and (no pun intended) large.


Perhaps, I may be missing something, but I could not understand
why you were talking about SPL size constraints.


As far as I understood arch/arm/lib/Makefile,
arch/arm/lib/memset.o is never compiled for SPL
in the first place.

I believe CONFIG_USE_ARCH_MEMSET has no impact to SPL.



ifndef CONFIG_SPL_BUILD
ifdef CONFIG_ARM64
obj-y   += relocate_64.o
else
obj-y   += relocate.o
endif

obj-$(CONFIG_CPU_V7M) += cmd_boot.o
obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
obj-$(CONFIG_CMD_BOOTI) += bootm.o
obj-$(CONFIG_CMD_BOOTM) += bootm.o
obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
obj-$(CONFIG_SYS_L2_PL310) += cache-pl310.o
obj-$(CONFIG_USE_ARCH_MEMSET) += memset.o
obj-$(CONFIG_USE_ARCH_MEMCPY) += memcpy.o
else
obj-$(CONFIG_SPL_FRAMEWORK) += spl.o
obj-$(CONFIG_SPL_FRAMEWORK) += zimage.o
endif






-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list