mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-15 06:33:45 +09:00
![Masahiro Yamada](/assets/img/avatar_default.png)
Commitbe72591bcd
("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:be72591bcd
("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to Kconfig") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
#ifndef __ASM_ARM_STRING_H
|
|
#define __ASM_ARM_STRING_H
|
|
|
|
#include <config.h>
|
|
|
|
/*
|
|
* We don't do inline string functions, since the
|
|
* optimised inline asm versions are not small.
|
|
*/
|
|
|
|
#undef __HAVE_ARCH_STRRCHR
|
|
extern char * strrchr(const char * s, int c);
|
|
|
|
#undef __HAVE_ARCH_STRCHR
|
|
extern char * strchr(const char * s, int c);
|
|
|
|
#if CONFIG_IS_ENABLED(USE_ARCH_MEMCPY)
|
|
#define __HAVE_ARCH_MEMCPY
|
|
#endif
|
|
extern void * memcpy(void *, const void *, __kernel_size_t);
|
|
|
|
#undef __HAVE_ARCH_MEMMOVE
|
|
extern void * memmove(void *, const void *, __kernel_size_t);
|
|
|
|
#undef __HAVE_ARCH_MEMCHR
|
|
extern void * memchr(const void *, int, __kernel_size_t);
|
|
|
|
#undef __HAVE_ARCH_MEMZERO
|
|
#if CONFIG_IS_ENABLED(USE_ARCH_MEMSET)
|
|
#define __HAVE_ARCH_MEMSET
|
|
#endif
|
|
extern void * memset(void *, int, __kernel_size_t);
|
|
|
|
#if 0
|
|
extern void __memzero(void *ptr, __kernel_size_t n);
|
|
|
|
#define memset(p,v,n) \
|
|
({ \
|
|
if ((n) != 0) { \
|
|
if (__builtin_constant_p((v)) && (v) == 0) \
|
|
__memzero((p),(n)); \
|
|
else \
|
|
memset((p),(v),(n)); \
|
|
} \
|
|
(p); \
|
|
})
|
|
|
|
#define memzero(p,n) ({ if ((n) != 0) __memzero((p),(n)); (p); })
|
|
#else
|
|
extern void memzero(void *ptr, __kernel_size_t n);
|
|
#endif
|
|
|
|
#endif
|