*/␊ |
␊ |
#include "smbios_getters.h"␊ |
#include "bootstruct.h"␊ |
␊ |
#ifndef DEBUG_SMBIOS␊ |
#define DEBUG_SMBIOS 0␊ |
|
␉␉␉␉switch (Platform.CPU.Model)␊ |
␉␉␉␉{␊ |
␉␉␉␉␉case 0x0D:␉␉␉␉␉// ???␊ |
␉␉␉␉␉case CPU_MODEL_YONAH:␉␉// Yonah␉␉0x0E␊ |
␉␉␉␉␉case CPU_MODEL_MEROM:␉␉// Merom␉␉0x0F␊ |
␉␉␉␉␉case CPU_MODEL_PENRYN:␉␉// Penryn␉␉0x17␊ |
␉␉␉␉␉case CPU_MODEL_ATOM:␉␉// Atom 45nm␉0x1C␊ |
␉␉␉␉␉case CPU_MODEL_YONAH:␉␉// Intel Mobile Core Solo, Duo␊ |
␉␉␉␉␉case CPU_MODEL_MEROM:␉␉// Intel Mobile Core 2 Solo, Duo, Xeon 30xx, Xeon 51xx, Xeon X53xx, Xeon E53xx, Xeon X32xx␊ |
␉␉␉␉␉case CPU_MODEL_PENRYN:␉␉// Intel Core 2 Solo, Duo, Quad, Extreme, Xeon X54xx, Xeon X33xx␊ |
␉␉␉␉␉case CPU_MODEL_ATOM:␉␉// Intel Atom (45nm)␊ |
␉␉␉␉␉␉return false;␊ |
␊ |
␉␉␉␉␉case 0x19:␉␉␉␉␉// ??? Intel Core i5 650 @3.20 GHz ␊ |
␉␉␉␉␉case CPU_MODEL_NEHALEM:␉␉// Intel Core i7 LGA1366 (45nm)␊ |
␉␉␉␉␉case CPU_MODEL_FIELDS:␉␉// Intel Core i5, i7 LGA1156 (45nm)␊ |
␉␉␉␉␉case CPU_MODEL_DALES:␉␉// Intel Core i5, i7 LGA1156 (45nm) ???␊ |
␉␉␉␉␉case CPU_MODEL_DALES_32NM:␉// Intel Core i3, i5, i7 LGA1156 (32nm)␊ |
␉␉␉␉␉case CPU_MODEL_WESTMERE:␉// Intel Core i7 LGA1366 (32nm) 6 Core␊ |
␉␉␉␉␉case CPU_MODEL_NEHALEM_EX:␉// Intel Core i7 LGA1366 (45nm) 6 Core ???␊ |
␉␉␉␉␉case CPU_MODEL_WESTMERE_EX:␉// Intel Core i7 LGA1366 (45nm) 6 Core ???␊ |
␉␉␉␉␉case CPU_MODEL_NEHALEM:␉␉// Intel Core i7, Xeon W35xx, Xeon X55xx, Xeon E55xx LGA1366 (45nm)␊ |
␉␉␉␉␉case CPU_MODEL_FIELDS:␉␉// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)␊ |
␉␉␉␉␉case CPU_MODEL_DALES:␊ |
␉␉␉␉␉case CPU_MODEL_DALES_32NM:␉// Intel Core i3, i5 LGA1156 (32nm)␊ |
␉␉␉␉␉case CPU_MODEL_WESTMERE:␉// Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core␊ |
␉␉␉␉␉case CPU_MODEL_NEHALEM_EX:␉// Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65x␊ |
␉␉␉␉␉case CPU_MODEL_WESTMERE_EX:␉// Intel Xeon E7␊ |
␉␉␉␉␉{␊ |
␉␉␉␉␉␉// thanks to dgobe for i3/i5/i7 bus speed detection␊ |
␉␉␉␉␉␉int nhm_bus = 0x3F;␊ |
|
␊ |
␉␉␉␉␉case CPU_MODEL_FIELDS:␉␉␉␉// Intel Core i5, i7, Xeon X34xx LGA1156 (45nm)␊ |
␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Core(TM) i5"))␊ |
␉␉␉␉␉␉␉value->word = 0x601;␉␉// Core i5␊ |
␉␉␉␉␉␉␉value->word = 0x0601;␉␉// Core i5␊ |
␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉␉value->word = 0x0701;␉␉// Core i7␊ |
␉␉␉␉␉␉return true;␊ |
␊ |
␉␉␉␉␉case CPU_MODEL_DALES:␉␉␉␉// Havendale, Auburndale␊ |
␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Core(TM) i5"))␊ |
␉␉␉␉␉␉␉value->word = 0x601;␉␉// Core i5␊ |
␉␉␉␉␉␉␉value->word = 0x0601;␉␉// Core i5␊ |
␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉␉value->word = 0x0701;␉␉// Core i7␊ |
␉␉␉␉␉␉return true;␊ |
|
case CPU_MODEL_SANDY_XEON:␉␉␉// Intel Xeon E3␊ |
␉␉␉␉␉case CPU_MODEL_DALES_32NM:␉␉␉// Intel Core i3, i5 LGA1156 (32nm)␊ |
␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Core(TM) i3"))␊ |
␉␉␉␉␉␉␉value->word = 0x901;␉␉// Core i3␊ |
␉␉␉␉␉␉␉value->word = 0x0901;␉␉// Core i3␊ |
␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉␉if (strstr(Platform.CPU.BrandString, "Core(TM) i5"))␊ |
␉␉␉␉␉␉␉␉value->word = 0x601;␉// Core i5␊ |
␉␉␉␉␉␉␉␉value->word = 0x0601;␉// Core i5␊ |
␉␉␉␉␉␉␉else␊ |
␉␉␉␉␉␉␉␉value->word = 0x0701;␉// Core i7␊ |
␉␉␉␉␉␉return true;␊ |
|
␉␉␉␉␉␉return true;␊ |
␊ |
␉␉␉␉␉case 0x19:␉␉␉␉␉␉␉// ??? Intel Core i5 650 @3.20 GHz␊ |
␉␉␉␉␉␉value->word = 0x601;␉␉␉// Core i5␊ |
␉␉␉␉␉␉value->word = 0x0601;␉␉␉// Core i5␊ |
␉␉␉␉␉␉return true;␊ |
␉␉␉␉}␊ |
␉␉␉}␊ |
|
␉␉}␊ |
␉}␊ |
␊ |
␉return false;␊ |
//␉value->string = NOT_AVAILABLE;␊ |
//␉return true;␊ |
␉if (!bootInfo->memDetect)␊ |
␉␉return false;␊ |
␉␊ |
␉value->string = NOT_AVAILABLE;␊ |
␉return true;␊ |
}␊ |
␉␊ |
bool getSMBMemoryDeviceSerialNumber(returnType *value)␊ |
|
␉int␉map;␊ |
␊ |
␉idx++;␊ |
␉␊ |
␉DBG("getSMBMemoryDeviceSerialNumber index: %d, MAX_RAM_SLOTS: %d\n",idx,MAX_RAM_SLOTS);␊ |
␉␊ |
␉if (idx < MAX_RAM_SLOTS)␊ |
␉{␊ |
␉␉map = Platform.DMI.DIMM[idx];␊ |
|
␉␉}␊ |
␉}␊ |
␊ |
␉return false;␊ |
//␉value->string = NOT_AVAILABLE;␊ |
//␉return true;␊ |
␉if (!bootInfo->memDetect)␊ |
␉␉return false;␊ |
␉␊ |
␉value->string = NOT_AVAILABLE;␊ |
␉return true;␊ |
}␊ |
␊ |
bool getSMBMemoryDevicePartNumber(returnType *value)␊ |
|
␉␉}␊ |
␉}␊ |
␊ |
␉return false;␊ |
//␉value->string = NOT_AVAILABLE;␊ |
//␉return true;␊ |
␉if (!bootInfo->memDetect)␊ |
␉␉return false;␊ |
␉␊ |
␉value->string = NOT_AVAILABLE;␊ |
␉return true;␊ |
}␊ |
␊ |
␊ |