aboutsummaryrefslogtreecommitdiff
path: root/sys/i386
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2008-03-12 21:44:46 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2008-03-12 21:44:46 +0000
commit4cbd0e89840f0c2b851b2dc2bc3c19a3cfdfbe1a (patch)
tree109f158ae0fc6124dfaca10965be3bdf58d08a13 /sys/i386
parentf15a9cd2881a6448d7f84c36c689adecea8cb5c2 (diff)
downloadsrc-4cbd0e89840f0c2b851b2dc2bc3c19a3cfdfbe1a.tar.gz
src-4cbd0e89840f0c2b851b2dc2bc3c19a3cfdfbe1a.zip
MFamd64: Break up the probe logic in the mem_drvinit routines so it's
a bit easier to parse.
Notes
Notes: svn path=/head/; revision=177124
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/i686_mem.c17
-rw-r--r--sys/i386/i386/k6_mem.c14
2 files changed, 18 insertions, 13 deletions
diff --git a/sys/i386/i386/i686_mem.c b/sys/i386/i386/i686_mem.c
index 42a73ac5e3b8..f1240b6dc589 100644
--- a/sys/i386/i386/i686_mem.c
+++ b/sys/i386/i386/i686_mem.c
@@ -653,12 +653,15 @@ static void
i686_mem_drvinit(void *unused)
{
- /* Try for i686 MTRRs */
- if (!mtrrs_disabled && (cpu_feature & CPUID_MTRR) &&
- ((cpu_id & 0xf00) == 0x600 || (cpu_id & 0xf00) == 0xf00) &&
- ((strcmp(cpu_vendor, "GenuineIntel") == 0) ||
- (strcmp(cpu_vendor, "AuthenticAMD") == 0))) {
- mem_range_softc.mr_op = &i686_mrops;
- }
+ if (mtrrs_disabled)
+ return;
+ if (!(cpu_feature & CPUID_MTRR))
+ return;
+ if ((cpu_id & 0xf00) != 0x600 && (cpu_id & 0xf00) != 0xf00)
+ return;
+ if ((strcmp(cpu_vendor, "GenuineIntel") != 0) &&
+ (strcmp(cpu_vendor, "AuthenticAMD") != 0))
+ return;
+ mem_range_softc.mr_op = &i686_mrops;
}
SYSINIT(i686memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, i686_mem_drvinit, NULL);
diff --git a/sys/i386/i386/k6_mem.c b/sys/i386/i386/k6_mem.c
index fcbd044eff18..80ae52a4575f 100644
--- a/sys/i386/i386/k6_mem.c
+++ b/sys/i386/i386/k6_mem.c
@@ -175,11 +175,13 @@ static void
k6_mem_drvinit(void *unused)
{
- if (!strcmp(cpu_vendor, "AuthenticAMD") &&
- (cpu_id & 0xf00) == 0x500 &&
- ((cpu_id & 0xf0) > 0x80 ||
- ((cpu_id & 0xf0) == 0x80 &&
- (cpu_id & 0xf) > 0x7)))
- mem_range_softc.mr_op = &k6_mrops;
+ if (strcmp(cpu_vendor, "AuthenticAMD") != 0)
+ return;
+ if ((cpu_id & 0xf00) != 0x500)
+ return;
+ if ((cpu_id & 0xf0) < 0x80 ||
+ (cpu_id & 0xf0) == 0x80 && (cpu_id & 0xf) <= 0x7)
+ return;
+ mem_range_softc.mr_op = &k6_mrops;
}
SYSINIT(k6memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, k6_mem_drvinit, NULL);