summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/i386/include/i82489var.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/arch/i386/include/i82489var.h b/sys/arch/i386/include/i82489var.h
index 3c4632872ce..8bdf4eda158 100644
--- a/sys/arch/i386/include/i82489var.h
+++ b/sys/arch/i386/include/i82489var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: i82489var.h,v 1.2 2004/06/13 21:49:16 niklas Exp $ */
+/* $OpenBSD: i82489var.h,v 1.3 2006/03/29 15:02:27 mickey Exp $ */
/* $NetBSD: i82489var.h,v 1.1.2.2 2000/02/21 18:46:14 sommerfeld Exp $ */
/*-
@@ -62,6 +62,14 @@ i82489_writereg(reg, val)
{
*((volatile u_int32_t *)(((volatile u_int8_t *)local_apic) + reg)) =
val;
+ /*
+ * intel xeon errata p53:
+ * write to a lapic register sometimes may appear to have not occured
+ * workaround:
+ * follow write with a read [from id register]
+ */
+ val = *((volatile u_int32_t *)(((volatile u_int8_t *)local_apic) +
+ LAPIC_ID));
}
/*