bool getProcessorInformationExternalClock(returnType *value)␊ |
{␊ |
␉if (Platform.CPU.Vendor == CPUID_VENDOR_INTEL) // Intel␊ |
␉{␉␉␊ |
␉{␊ |
␉␉switch (Platform.CPU.Family)␊ |
␉␉{␊ |
␉␉␉case 0x06:␊ |
|
␉␉␉␉switch (Platform.CPU.Model)␊ |
␉␉␉␉{␊ |
␉␉␉␉␉␉// set external clock to 0 for SANDY␊ |
␉␉␉␉␉␉// removes FSB info from system profiler as on real mac's. ␊ |
␉␉␉␉␉case CPU_MODEL_SANDYBRIDGE: ␊ |
␉␉␉␉␉␉// removes FSB info from system profiler as on real mac's.␊ |
␉␉␉␉␉case CPU_MODEL_SANDYBRIDGE:␊ |
␉␉␉␉␉case CPU_MODEL_IVYBRIDGE:␊ |
␉␉␉␉␉␉value->word = 0;␊ |
␉␉␉␉␉␉break;␊ |
|
␉␉␉␉}␊ |
␉␉␉}␊ |
␉␉␉␉break;␊ |
␉␉␉␉␊ |
␊ |
␉␉␉default:␊ |
␉␉␉␉value->word = Platform.CPU.FSBFrequency/1000000;␊ |
␉␉}␊ |
|
␉␉␉␉␉␉DBG("qpimult %d\n", qpimult);␊ |
␉␉␉␉␉␉qpibusspeed = (qpimult * 2 * (Platform.CPU.FSBFrequency/1000000));␊ |
␉␉␉␉␉␉// Rek: rounding decimals to match original mac profile info␊ |
␉␉␉␉␉␉if (qpibusspeed%100 != 0)qpibusspeed = ((qpibusspeed+50)/100)*100;␊ |
␉␉␉␉␉␉if (qpibusspeed%100 != 0)␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉qpibusspeed = ((qpibusspeed+50)/100)*100;␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉DBG("qpibusspeed %d\n", qpibusspeed);␊ |
␉␉␉␉␉␉value->word = qpibusspeed;␊ |
␉␉␉␉␉␉return true;␊ |
|
␉␉␉verbose("CPU is %s, family 0x%x, model 0x%x\n", Platform.CPU.BrandString, Platform.CPU.Family, Platform.CPU.Model);␊ |
␉␉␉done = true;␊ |
␉␉}␊ |
␉␉␊ |
␊ |
␉␉switch (Platform.CPU.Family) ␊ |
␉␉{␊ |
␉␉␉case 0x06:␊ |
|
␉␉␉␉␉case CPU_MODEL_WESTMERE_EX:␉␉␉// Intel Xeon E7␊ |
␉␉␉␉␉case CPU_MODEL_JAKETOWN:␉␉␉// Intel Core i7, Xeon E5 LGA2011 (32nm)␊ |
␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Xeon(R)"))␊ |
␉␉␉␉␉␉␉value->word = 0x0501;␉␉␉// Xeon ␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉value->word = 0x0501;␉␉␉// Xeon␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉value->word = 0x0701;␉␉␉// Core i7␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉return true;␊ |
␊ |
␉␉␉␉␉case CPU_MODEL_FIELDS:␉␉␉␉// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)␊ |
␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Xeon(R)"))␊ |
␉␉␉␉␉␉␉value->word = 0x0501;// Xeon␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉value->word = 0x0501;␉␉␉// Xeon␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Core(TM) i5"))␊ |
␉␉␉␉␉␉␉␉value->word = 0x0601;␉␉␉// Core i5␊ |
␉␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉␉value->word = 0x0601;␉␉// Core i5␊ |
␉␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉␉␉value->word = 0x0701;␉␉␉// Core i7␊ |
␉␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉␉value->word = 0x0701;␉␉// Core i7␊ |
␉␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉return true;␊ |
␊ |
␉␉␉␉␉case CPU_MODEL_DALES:␊ |
␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Core(TM) i5"))␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉value->word = 0x0601;␉␉␉// Core i5␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉{␊ |
␉␉␉␉␉␉␉value->word = 0x0701;␉␉␉// Core i7␊ |
␉␉␉␉␉␉}␊ |
␉␉␉␉␉␉return true;␊ |
␊ |
␉␉␉␉␉case CPU_MODEL_SANDYBRIDGE:␉␉␉// Intel Core i3, i5, i7 LGA1155 (32nm)␊ |
|
//␉return true;␊ |
}␊ |
␊ |
bool getSMBMemoryDeviceMemoryErrorHandle(returnType *value)␊ |
{␊ |
value->word = 0xFFFF;␊ |
return true;␊ |
}␊ |
␊ |
bool getSMBMemoryDeviceMemorySpeed(returnType *value)␊ |
{␊ |
␉static int idx = -1;␊ |
|
␉}␊ |
␊ |
␉if (!bootInfo->memDetect)␊ |
␉{␊ |
␉␉return false;␊ |
␉}␊ |
␉value->string = NOT_AVAILABLE;␊ |
␉return true;␊ |
}␊ |
|
␉}␊ |
␊ |
␉if (!bootInfo->memDetect)␊ |
␉{␊ |
␉␉return false;␊ |
␉}␊ |
␉value->string = NOT_AVAILABLE;␊ |
␉return true;␊ |
}␊ |
|
␉}␊ |
␊ |
␉if (!bootInfo->memDetect)␊ |
␉{␊ |
␉␉return false;␊ |
␉}␊ |
␉value->string = NOT_AVAILABLE;␊ |
␉return true;␊ |
}␊ |