summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/bs
diff options
context:
space:
mode:
authorkato <kato@FreeBSD.org>1997-03-22 18:54:54 +0000
committerkato <kato@FreeBSD.org>1997-03-22 18:54:54 +0000
commit51253b5e709366e0d1ada8027f65389abde0210e (patch)
tree9fe3ec455a22a2a04a2938a4198bbda8ab91a71f /sys/i386/isa/bs
parentee6bebb346b99ff43e0558c742e43ebe1e902662 (diff)
downloadFreeBSD-src-51253b5e709366e0d1ada8027f65389abde0210e.zip
FreeBSD-src-51253b5e709366e0d1ada8027f65389abde0210e.tar.gz
Improved CPU identification and initialization routines. This
supports All Cyrix CPUs, IBM Blue Lightning CPU and NexGen (now AMD) Nx586 CPU, and initialize special registers of Cyrix CPU and msr of IBM Blue Lightning CPU. If revision of Cyrix 6x86 CPU < 2.7, CPU cache is enabled in write-through mode. This can be disabled by kernel configuration options. Reviewed by: Bruce Evans <bde@freebsd.org> and Jordan K. Hubbard <jkh@freebsd.org>
Diffstat (limited to 'sys/i386/isa/bs')
-rw-r--r--sys/i386/isa/bs/bshw_dma.c10
-rw-r--r--sys/i386/isa/bs/bsif.h1
2 files changed, 5 insertions, 6 deletions
diff --git a/sys/i386/isa/bs/bshw_dma.c b/sys/i386/isa/bs/bshw_dma.c
index 22051a9..b5b9238 100644
--- a/sys/i386/isa/bs/bshw_dma.c
+++ b/sys/i386/isa/bs/bshw_dma.c
@@ -200,9 +200,8 @@ bshw_dmastart(bsc)
*/
/* set dma channel mode, and reset address ff */
#ifdef __FreeBSD__
-#ifdef CYRIX_5X86
- asm("wbinvd");
-#endif
+ if (need_pre_dma_flush)
+ wbinvd();
#else /* NetBSD/pc98 */
if (cpuspec->cpuspec_cache_flush_before)
(*cpuspec->cpuspec_cache_flush_before)();
@@ -247,9 +246,8 @@ bshw_dmadone(bsc)
(*bsc->sc_hw->dma_stop)(bsc);
#ifdef __FreeBSD__
-#if defined(CYRIX_486DLC) || defined(IBM_486SLC)
- asm(".byte 0x0f, 0x08");
-#endif
+ if (need_post_dma_flush)
+ invd();
#else
if (cpuspec->cpuspec_cache_flush_after)
(*cpuspec->cpuspec_cache_flush_after)();
diff --git a/sys/i386/isa/bs/bsif.h b/sys/i386/isa/bs/bsif.h
index d5b8e71..4904bd8 100644
--- a/sys/i386/isa/bs/bsif.h
+++ b/sys/i386/isa/bs/bsif.h
@@ -101,6 +101,7 @@
#include <vm/vm_kern.h>
#include <machine/clock.h>
#include <machine/cpu.h>
+#include <machine/md_var.h>
#include <machine/vmparam.h>
#include <vm/pmap.h>
#include <sys/proc.h>
OpenPOWER on IntegriCloud