X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fmtrr.c;h=a9cd5f781cb7b16a1137b260d4dd702dcdbe6198;hb=e97ca7bd12d1ad394620d606747e423ee7cfd9ce;hp=12837e00c6d3dc50bcc6ef31be52d8c3d50733a7;hpb=09880dada98c075b98e68b08cb3ce8ffbf605faf;p=seabios.git diff --git a/src/mtrr.c b/src/mtrr.c index 12837e0..a9cd5f7 100644 --- a/src/mtrr.c +++ b/src/mtrr.c @@ -24,28 +24,18 @@ #define MTRRphysBase_MSR(reg) (0x200 + 2 * (reg)) #define MTRRphysMask_MSR(reg) (0x200 + 2 * (reg) + 1) -static u64 rdmsr(u32 index) -{ - u64 ret; - asm ("rdmsr" : "=A"(ret) : "c"(index)); - return ret; -} - -static void wrmsr(u32 index, u64 val) -{ - asm volatile ("wrmsr" : : "c"(index), "A"(val)); -} - -static void wrmsr_smp(u32 index, u64 val) -{ - // XXX - should run this on other CPUs also. - wrmsr(index, val); -} - void mtrr_setup(void) { - if (! CONFIG_KVM) + if (CONFIG_COREBOOT) + return; + + u32 eax, ebx, ecx, cpuid_features; + cpuid(1, &eax, &ebx, &ecx, &cpuid_features); + if (!(cpuid_features & CPUID_MTRR)) + return; + if (!(cpuid_features & CPUID_MSR)) return; + dprintf(3, "init mtrr\n"); int i, vcnt, fix, wc;