Add ENV_STAGE_SUPPORTS_SMP to clean up spinlock stubs
CONFIG(SMP) was an invalid condition to use in cases where one
stage requires spinlocks and another one does not. The
stage not requiring spinlock still required <smp/spinlock.h>
to be implemented with no-op stubs.
This reverts commit 037ee4b556
soc/amd/picasso: Add dummy spinlock for psp_verstage
Change-Id: Iba52febdeee78294f916775ee9ce8a82d6203570
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59094
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
f6e421ffc9
commit
04c3228a5d
|
@ -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
|
|
|
@ -15,10 +15,6 @@ typedef struct {
|
||||||
|
|
||||||
#define SPIN_LOCK_UNLOCKED { 1 }
|
#define SPIN_LOCK_UNLOCKED { 1 }
|
||||||
|
|
||||||
#define STAGE_HAS_SPINLOCKS !ENV_ROMSTAGE_OR_BEFORE
|
|
||||||
|
|
||||||
#if STAGE_HAS_SPINLOCKS
|
|
||||||
|
|
||||||
#define DECLARE_SPIN_LOCK(x) \
|
#define DECLARE_SPIN_LOCK(x) \
|
||||||
static spinlock_t x = SPIN_LOCK_UNLOCKED;
|
static spinlock_t x = SPIN_LOCK_UNLOCKED;
|
||||||
|
|
||||||
|
@ -71,14 +67,4 @@ static __always_inline void spin_unlock(spinlock_t *lock)
|
||||||
: "=m" (lock->lock) : : "memory");
|
: "=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 */
|
#endif /* ARCH_SMP_SPINLOCK_H */
|
||||||
|
|
|
@ -292,6 +292,17 @@
|
||||||
#define ENV_INITIAL_STAGE ENV_BOOTBLOCK
|
#define ENV_INITIAL_STAGE ENV_BOOTBLOCK
|
||||||
#endif
|
#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.
|
* 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
|
* PCI, PNP and CPU functions operate without use of devicetree. The reason
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef SMP_SPINLOCK_H
|
#ifndef SMP_SPINLOCK_H
|
||||||
#define SMP_SPINLOCK_H
|
#define SMP_SPINLOCK_H
|
||||||
|
|
||||||
#if CONFIG(SMP)
|
#if ENV_STAGE_SUPPORTS_SMP
|
||||||
#include <arch/smp/spinlock.h>
|
#include <arch/smp/spinlock.h>
|
||||||
#else /* !CONFIG_SMP */
|
#else /* !CONFIG_SMP */
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
Loading…
Reference in New Issue