diff options
-rw-r--r-- | src/arch/arm/include/armv4/arch/smp/spinlock.h | 15 | ||||
-rw-r--r-- | src/arch/x86/include/arch/smp/spinlock.h | 14 | ||||
-rw-r--r-- | src/include/rules.h | 11 | ||||
-rw-r--r-- | src/include/smp/spinlock.h | 2 | ||||
-rw-r--r-- | src/soc/amd/common/psp_verstage/include/arch/smp/spinlock.h | 15 |
5 files changed, 12 insertions, 45 deletions
diff --git a/src/arch/arm/include/armv4/arch/smp/spinlock.h b/src/arch/arm/include/armv4/arch/smp/spinlock.h deleted file mode 100644 index 0a3a4d46762b..000000000000 --- a/src/arch/arm/include/armv4/arch/smp/spinlock.h +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#ifndef _ARCH_SMP_SPINLOCK_H -#define _ARCH_SMP_SPINLOCK_H - -#define DECLARE_SPIN_LOCK(x) -#define spin_is_locked(lock) 0 -#define spin_unlock_wait(lock) do {} while (0) -#define spin_lock(lock) do {} while (0) -#define spin_unlock(lock) do {} while (0) - -#include <smp/node.h> -#define boot_cpu() 1 - -#endif diff --git a/src/arch/x86/include/arch/smp/spinlock.h b/src/arch/x86/include/arch/smp/spinlock.h index 0c06c22bbaf3..c7008c1b8c29 100644 --- a/src/arch/x86/include/arch/smp/spinlock.h +++ b/src/arch/x86/include/arch/smp/spinlock.h @@ -15,10 +15,6 @@ typedef struct { #define SPIN_LOCK_UNLOCKED { 1 } -#define STAGE_HAS_SPINLOCKS !ENV_ROMSTAGE_OR_BEFORE - -#if STAGE_HAS_SPINLOCKS - #define DECLARE_SPIN_LOCK(x) \ static spinlock_t x = SPIN_LOCK_UNLOCKED; @@ -71,14 +67,4 @@ static __always_inline void spin_unlock(spinlock_t *lock) : "=m" (lock->lock) : : "memory"); } -#else - -#define DECLARE_SPIN_LOCK(x) -#define spin_is_locked(lock) 0 -#define spin_unlock_wait(lock) do {} while (0) -#define spin_lock(lock) do {} while (0) -#define spin_unlock(lock) do {} while (0) - -#endif - #endif /* ARCH_SMP_SPINLOCK_H */ diff --git a/src/include/rules.h b/src/include/rules.h index ec3d22d7d1d6..d08929cae232 100644 --- a/src/include/rules.h +++ b/src/include/rules.h @@ -292,6 +292,17 @@ #define ENV_INITIAL_STAGE ENV_BOOTBLOCK #endif +#if ENV_X86 +#define STAGE_HAS_SPINLOCKS !ENV_ROMSTAGE_OR_BEFORE +#elif ENV_RISCV +#define STAGE_HAS_SPINLOCKS 1 +#else +#define STAGE_HAS_SPINLOCKS 0 +#endif + +/* When set <arch/smp/spinlock.h> is included for the spinlock implementation. */ +#define ENV_STAGE_SUPPORTS_SMP (CONFIG(SMP) && STAGE_HAS_SPINLOCKS) + /** * For pre-DRAM stages and post-CAR always build with simple device model, ie. * PCI, PNP and CPU functions operate without use of devicetree. The reason diff --git a/src/include/smp/spinlock.h b/src/include/smp/spinlock.h index 8554aa058933..116830cd74af 100644 --- a/src/include/smp/spinlock.h +++ b/src/include/smp/spinlock.h @@ -1,7 +1,7 @@ #ifndef SMP_SPINLOCK_H #define SMP_SPINLOCK_H -#if CONFIG(SMP) +#if ENV_STAGE_SUPPORTS_SMP #include <arch/smp/spinlock.h> #else /* !CONFIG_SMP */ diff --git a/src/soc/amd/common/psp_verstage/include/arch/smp/spinlock.h b/src/soc/amd/common/psp_verstage/include/arch/smp/spinlock.h deleted file mode 100644 index 0a3a4d46762b..000000000000 --- a/src/soc/amd/common/psp_verstage/include/arch/smp/spinlock.h +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#ifndef _ARCH_SMP_SPINLOCK_H -#define _ARCH_SMP_SPINLOCK_H - -#define DECLARE_SPIN_LOCK(x) -#define spin_is_locked(lock) 0 -#define spin_unlock_wait(lock) do {} while (0) -#define spin_lock(lock) do {} while (0) -#define spin_unlock(lock) do {} while (0) - -#include <smp/node.h> -#define boot_cpu() 1 - -#endif |