diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 24d5999fe8d..73256b887ed 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -676,18 +676,20 @@ config ARCH_CHIP_MPS config ARCH_CHIP_QEMU_ARM bool "QEMU virt platform (ARMv7a)" - select ARCH_HAVE_PSCI select ARCH_HAVE_POWEROFF select ARCH_HAVE_RESET select ARCH_IDLE_CUSTOM + select ARM_HAVE_PSCI + select ARM_HAVE_NEON ---help--- QEMU virt platform (ARMv7a) config ARCH_CHIP_GOLDFISH_ARM bool "GOLDFISH virt platform (ARMv7a)" - select ARCH_HAVE_PSCI select ARCH_HAVE_POWEROFF select ARCH_HAVE_RESET + select ARM_HAVE_PSCI + select ARM_HAVE_NEON ---help--- GOLDFISH virt platform (ARMv7a) @@ -1139,8 +1141,8 @@ config ARM_THUMB bool "Thumb Mode" default n -config ARCH_HAVE_PSCI - bool "ARM PCSI (Power State Coordination Interface) Support" +config ARM_HAVE_PSCI + bool "ARM PSCI (Power State Coordination Interface) Support" default n ---help--- This Power State Coordination Interface (PSCI) defines @@ -1188,6 +1190,13 @@ config ARM_HAVE_PACBTI ---help--- Decide whether support PACBTI(Pointer Authentication and Branch Target Identification) Extension +config ARM_PSCI + bool "Enabled PSCI" + depends on ARM_HAVE_PSCI + default n + ---help--- + See ARM_HAVE_PSCI for details + config ARM_FPU_ABI_SOFT bool "Soft Float ABI" default n diff --git a/arch/arm/src/armv7-a/CMakeLists.txt b/arch/arm/src/armv7-a/CMakeLists.txt index 042be6cffbc..79d62c70e6c 100644 --- a/arch/arm/src/armv7-a/CMakeLists.txt +++ b/arch/arm/src/armv7-a/CMakeLists.txt @@ -112,7 +112,7 @@ if(CONFIG_SMP) list(APPEND SRCS arm_cpustart.c arm_cpupause.c arm_cpuidlestack.c arm_scu.c) endif() -if(CONFIG_ARCH_HAVE_PSCI) +if(CONFIG_ARM_PSCI) list(APPEND SRCS arm_cpu_psci.c arm_smccc.S) endif() diff --git a/arch/arm/src/armv7-a/Make.defs b/arch/arm/src/armv7-a/Make.defs index f757e3d11c4..2be76df65e4 100644 --- a/arch/arm/src/armv7-a/Make.defs +++ b/arch/arm/src/armv7-a/Make.defs @@ -98,7 +98,7 @@ ifeq ($(CONFIG_SMP),y) CMN_CSRCS += arm_scu.c endif -ifeq ($(CONFIG_ARCH_HAVE_PSCI),y) +ifeq ($(CONFIG_ARM_PSCI),y) CMN_ASRCS += arm_smccc.S CMN_CSRCS += arm_cpu_psci.c endif diff --git a/arch/arm/src/goldfish/goldfish_boot.c b/arch/arm/src/goldfish/goldfish_boot.c index 11395c6fa36..fdc34234dc7 100644 --- a/arch/arm/src/goldfish/goldfish_boot.c +++ b/arch/arm/src/goldfish/goldfish_boot.c @@ -60,7 +60,7 @@ void arm_boot(void) arm_fpuconfig(); -#ifdef CONFIG_ARCH_HAVE_PSCI +#ifdef CONFIG_ARM_PSCI arm_psci_init("smc"); #endif @@ -77,7 +77,7 @@ void arm_boot(void) #endif } -#if defined(CONFIG_ARCH_HAVE_PSCI) && defined(CONFIG_SMP) +#if defined(CONFIG_ARM_PSCI) && defined(CONFIG_SMP) int up_cpu_start(int cpu) { #ifdef CONFIG_SCHED_INSTRUMENTATION diff --git a/arch/arm/src/qemu/qemu_boot.c b/arch/arm/src/qemu/qemu_boot.c index 133b6e6595b..d5775b78763 100644 --- a/arch/arm/src/qemu/qemu_boot.c +++ b/arch/arm/src/qemu/qemu_boot.c @@ -60,7 +60,7 @@ void arm_boot(void) arm_fpuconfig(); -#ifdef CONFIG_ARCH_HAVE_PSCI +#ifdef CONFIG_ARM_PSCI arm_psci_init("hvc"); #endif @@ -77,7 +77,7 @@ void arm_boot(void) #endif } -#if defined(CONFIG_ARCH_HAVE_PSCI) && defined(CONFIG_SMP) +#if defined(CONFIG_ARM_PSCI) && defined(CONFIG_SMP) int up_cpu_start(int cpu) { #ifdef CONFIG_SCHED_INSTRUMENTATION diff --git a/boards/arm/qemu/qemu-armv7a/configs/smp/defconfig b/boards/arm/qemu/qemu-armv7a/configs/smp/defconfig index bf7e0fcd36a..28c219881d6 100644 --- a/boards/arm/qemu/qemu-armv7a/configs/smp/defconfig +++ b/boards/arm/qemu/qemu-armv7a/configs/smp/defconfig @@ -14,6 +14,7 @@ CONFIG_ARCH_CHIP_QEMU_ARM=y CONFIG_ARCH_CHIP_QEMU_CORTEXA7=y CONFIG_ARCH_INTERRUPTSTACK=2048 CONFIG_ARCH_LOWVECTORS=y +CONFIG_ARM_PSCI=y CONFIG_BUILTIN=y CONFIG_DEBUG_ASSERTIONS=y CONFIG_DEBUG_FEATURES=y