diff options
author | jkim <jkim@FreeBSD.org> | 2009-01-13 16:48:01 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2009-01-13 16:48:01 +0000 |
commit | f7ffbec8e841ce75888a95827c96dc8f040fb955 (patch) | |
tree | 587a22d4600555d8ae61aa4fba2e240d4160c220 /sys/i386 | |
parent | 43a484c52896898a267b880691353c1798202103 (diff) | |
download | FreeBSD-src-f7ffbec8e841ce75888a95827c96dc8f040fb955.zip FreeBSD-src-f7ffbec8e841ce75888a95827c96dc8f040fb955.tar.gz |
Enable MSI support for VIA Nano processors on i386 (missing in r187118).
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/i386/msi.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sys/i386/i386/msi.c b/sys/i386/i386/msi.c index f8d92d6..437d859 100644 --- a/sys/i386/i386/msi.c +++ b/sys/i386/i386/msi.c @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include <machine/frame.h> #include <machine/intr_machdep.h> #include <machine/apicvar.h> +#include <machine/specialreg.h> #include <dev/pci/pcivar.h> /* Fields in address for Intel MSI messages. */ @@ -212,9 +213,18 @@ msi_init(void) { /* Check if we have a supported CPU. */ - if (!(cpu_vendor_id == CPU_VENDOR_INTEL || - cpu_vendor_id == CPU_VENDOR_AMD)) + switch (cpu_vendor_id) { + case CPU_VENDOR_INTEL: + case CPU_VENDOR_AMD: + break; + case CPU_VENDOR_CENTAUR: + if (I386_CPU_FAMILY(cpu_id) == 0x6 && + I386_CPU_MODEL(cpu_id) >= 0xf) + break; + /* FALLTHROUGH */ + default: return; + } msi_enabled = 1; intr_register_pic(&msi_pic); |