cpu/x86/mp.h: Implement a pre-SSE2 mfence

Taken from the Linux Kernel.

Tested: Qemu using '-cpu pentium3' now boots.

Change-Id: I376f86f4d7992344dd68374ba67ad3580070f4d8
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59766
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
Arthur Heymans 2021-11-30 21:03:14 +01:00
parent 7235cc19d6
commit e771b9a65f
1 changed files with 5 additions and 1 deletions

View File

@ -13,7 +13,11 @@ struct bus;
static inline void mfence(void)
{
__asm__ __volatile__("mfence\t\n": : :"memory");
/* mfence came with the introduction of SSE2. */
if (CONFIG(SSE2))
__asm__ __volatile__("mfence\t\n": : :"memory");
else
__asm__ __volatile__("lock; addl $0,0(%%esp)": : : "memory");
}
/* The sequence of the callbacks are in calling order. */