mirror of
https://xff.cz/git/u-boot/
synced 2025-09-30 23:11:32 +02:00
arm: Move sev() and wfe() definitions to common Arm header file
The sev() and wfe() asm macros are currently defined only for mach-exynos. As these are common Arm instructions, move them to the common asm/system.h header file, for both Armv7 and Armv8, so they can be used by other machines. wfe may theoretically trigger a context switch if an interrupt occurs so add a memory barrier to this call. Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> Reviewed-by: Andre Przywara<andre.przywara@arm.com>
This commit is contained in:
@@ -154,6 +154,13 @@ enum dcache_option {
|
||||
"wfi" : : : "memory"); \
|
||||
})
|
||||
|
||||
#define wfe() \
|
||||
({asm volatile( \
|
||||
"wfe" : : : "memory"); \
|
||||
})
|
||||
|
||||
#define sev() asm volatile("sev")
|
||||
|
||||
static inline unsigned int current_el(void)
|
||||
{
|
||||
unsigned long el;
|
||||
@@ -369,6 +376,8 @@ void switch_to_hypervisor_ret(void);
|
||||
|
||||
#ifdef __ARM_ARCH_7A__
|
||||
#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
|
||||
#define wfe() __asm__ __volatile__ ("wfe" : : : "memory")
|
||||
#define sev() __asm__ __volatile__ ("sev")
|
||||
#else
|
||||
#define wfi()
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user