16 #define MSR_PLATFORM_INFO 0xce
21 static const short core_fsb[8] = { -1, 133, -1, 166, -1, 100, -1, -1 };
22 static const short core2_fsb[8] = { 266, 133, 200, 166, 333, 100, 400, -1 };
23 static const short f2x_fsb[8] = { 100, 133, 200, 166, 333, -1, -1, -1 };
24 static const short rangeley_fsb[4] = { 83, 100, 133, 116 };
30 switch (
c.x86_model) {
65 *ratio = msr.
lo >> 24;
66 switch (
c.x86_model) {
68 *fsb = f2x_fsb[(msr.
lo >> 16) & 7];
73 *fsb = core2_fsb[(msr.
lo >> 16) & 7];
static unsigned int cpuid_eax(unsigned int op)
static void get_fms(struct cpuinfo_x86 *c, uint32_t tfms)
#define printk(level,...)
unsigned long tsc_freq_mhz(void)
#define MSR_PLATFORM_INFO
static void resolve_timebase(void)
static int get_fsb_tsc(int *fsb, int *ratio)
int get_ia32_fsb_x3(void)
Returns three times the FSB clock in MHz.
#define DIV_ROUND_CLOSEST(x, divisor)
static __always_inline msr_t rdmsr(unsigned int index)
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
#define MSR_EBC_FREQUENCY_ID
#define c(value, pmcreg, dst_bits)