[PATCH 1/4] ARM: add ARM32/ARM64 symbols for use in generic code
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Aug 9 07:17:52 PDT 2024
The CPU_32 and CPU_64 symbols are only defined for ARM, but they are
still confusing to encounter in common code, because they have no
explicit reference to ARM. Add ARM32/ARM64 symbols that can be used
instead.
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
MAKEALL | 2 +-
arch/arm/Kconfig | 6 ++++++
commands/Kconfig | 4 ++--
commands/smc.c | 2 +-
efi/Kconfig | 4 ++--
include/image.h | 2 +-
lib/decompress_unxz.c | 2 +-
pbl/Kconfig | 2 +-
scripts/Makefile.kasan | 9 ++++-----
scripts/Makefile.pic | 6 ++----
test/self/digest.c | 2 +-
11 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/MAKEALL b/MAKEALL
index 70e0f6f1740e..861d397814d9 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -97,7 +97,7 @@ do_build_target() {
${MAKE} ${target} &>/dev/null
if [ ${arch} = "arm" ]; then
- grep -q "CONFIG_CPU_64=y" ${BUILDDIR}/.config
+ grep -q "CONFIG_ARM64=y" ${BUILDDIR}/.config
if [ $? = 0 ]; then
arch=arm64
fi
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 89125ca576ea..a998b18442b5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -15,6 +15,12 @@ config ARM
select PBL_RELOCATABLE
default y
+config ARM32
+ def_bool CPU_32
+
+config ARM64
+ def_bool CPU_64
+
config ARCH_TEXT_BASE
hex
default 0x00000000
diff --git a/commands/Kconfig b/commands/Kconfig
index 0c1de7606ea1..4a0486861186 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -463,7 +463,7 @@ config CMD_BOOTM
config CMD_BOOTU
tristate
default y
- depends on ARM && !CPU_64v8
+ depends on ARM32
prompt "bootu"
help
Boot into already loaded Linux kernel, which must be raw (uncompressed).
@@ -472,7 +472,7 @@ config CMD_BOOTU
config CMD_BOOTZ
tristate
- depends on ARM && !CPU_64v8
+ depends on ARM32
prompt "bootz"
help
Boot Linux zImage
diff --git a/commands/smc.c b/commands/smc.c
index 31430655829a..4d9426323520 100644
--- a/commands/smc.c
+++ b/commands/smc.c
@@ -111,7 +111,7 @@ static int do_smc(int argc, char *argv[])
printf("found psci version %ld.%ld\n", res.a0 >> 16, res.a0 & 0xffff);
break;
case 'c':
- if (IS_ENABLED(CONFIG_CPU_64)) {
+ if (IS_ENABLED(CONFIG_ARM64)) {
printf("CPU bootstrap test not supported for ARMv8\n");
return COMMAND_ERROR;
}
diff --git a/efi/Kconfig b/efi/Kconfig
index dfe4d7327084..dc43addd60ec 100644
--- a/efi/Kconfig
+++ b/efi/Kconfig
@@ -39,8 +39,8 @@ config EFI_DEVICEPATH
config EFI_PAYLOAD_DEFAULT_PATH
string
- default "EFI/BOOT/BOOTARM.EFI" if CPU_32
- default "EFI/BOOT/BOOTAA64.EFI" if CPU_64
+ default "EFI/BOOT/BOOTARM.EFI" if ARM32
+ default "EFI/BOOT/BOOTAA64.EFI" if ARM64
default "EFI/BOOT/BOOTIA32.EFI" if X86_32
default "EFI/BOOT/BOOTx64.EFI" if X86_64
default "EFI/BOOT/BOOTRISCV32.EFI" if ARCH_RV32I
diff --git a/include/image.h b/include/image.h
index 277a546c8500..d9a1b8f3ee02 100644
--- a/include/image.h
+++ b/include/image.h
@@ -104,7 +104,7 @@ enum {
#if defined(__PPC__)
#define IH_ARCH IH_ARCH_PPC
#elif defined(__ARM__)
-#ifdef CONFIG_CPU_64v8
+#ifdef CONFIG_ARM64
#define IH_ARCH IH_ARCH_ARM64
#else
#define IH_ARCH IH_ARCH_ARM
diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c
index 7b8a9cd33158..e97fca022a15 100644
--- a/lib/decompress_unxz.c
+++ b/lib/decompress_unxz.c
@@ -131,7 +131,7 @@
# define XZ_DEC_POWERPC
#endif
#ifdef CONFIG_ARM
-# ifdef CONFIG_CPU_64
+# ifdef CONFIG_ARM64
# define XZ_DEC_ARM64
# elif defined CONFIG_THUMB2_BAREBOX
# define XZ_DEC_ARMTHUMB
diff --git a/pbl/Kconfig b/pbl/Kconfig
index 5ff2a6ad3c3c..98d71791454b 100644
--- a/pbl/Kconfig
+++ b/pbl/Kconfig
@@ -48,7 +48,7 @@ config PBL_RELOCATABLE
config PBL_FULLY_PIC
bool "fully position-independent pbl image"
- depends on PBL_RELOCATABLE && ARM && CPU_64
+ depends on PBL_RELOCATABLE && ARM64
help
Compared to CONFIG_PBL_RELOCATABLE, this image has no relocations in
the code sections.
diff --git a/scripts/Makefile.kasan b/scripts/Makefile.kasan
index 83f6aa543d01..f8759cb8bf73 100644
--- a/scripts/Makefile.kasan
+++ b/scripts/Makefile.kasan
@@ -8,10 +8,9 @@ CFLAGS_KASAN_MINIMAL := -fsanitize=kernel-address
cc-param = $(call cc-option, -mllvm -$(1), $(call cc-option, --param $(1)))
+CFLAGS_KASAN-$(CONFIG_ARM32) += $(call cc-param,asan-stack=1)
+
CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL) \
$(call cc-param,asan-globals=1) \
- $(call cc-param,asan-instrument-allocas=1)
-
-ifndef CONFIG_CPU_64
-CFLAGS_KASAN += $(call cc-param,asan-stack=1)
-endif
+ $(call cc-param,asan-instrument-allocas=1) \
+ $(CFLAGS_KASAN-y)
diff --git a/scripts/Makefile.pic b/scripts/Makefile.pic
index c30894ba98d9..a08ee67f4a3e 100644
--- a/scripts/Makefile.pic
+++ b/scripts/Makefile.pic
@@ -8,10 +8,8 @@
picflags-$(CONFIG_X86_64) := -mcmodel=small
picflags-$(CONFIG_X86) += -fPIC -fno-asynchronous-unwind-tables
-ifeq ($(CONFIG_ARM),y)
-picflags-$(CONFIG_CPU_32) := -fpic -mno-single-pic-base
-picflags-$(CONFIG_CPU_64) := -fpie
-endif
+picflags-$(CONFIG_ARM32) := -fpic -mno-single-pic-base
+picflags-$(CONFIG_ARM64) := -fpie
picflags-y += -include $(srctree)/include/linux/hidden.h \
-D__fully_pic__ \
diff --git a/test/self/digest.c b/test/self/digest.c
index 32815c85ba70..8d38f2be9377 100644
--- a/test/self/digest.c
+++ b/test/self/digest.c
@@ -206,7 +206,7 @@ static void test_digests(void)
test_digest_md5("generic");
test_digests_sha12("generic");
- if (IS_ENABLED(CONFIG_CPU_32))
+ if (IS_ENABLED(CONFIG_ARM32))
test_digests_sha12("asm");
test_digests_sha35("generic");
--
2.39.2
More information about the barebox
mailing list