14 #define MSR_BBL_CR_CTL3 0x11e
26 const int c5 = conf && conf->
c5 &&
30 const int c6 = conf && conf->
c6 &&
33 const int cst_range = (
c6 ? 6 : (
c5 ? 5 : 4)) - 2;
39 msr.
lo = (msr.
lo & ~(7 << 0)) | (4 << 0);
61 msr.
lo = ((
PMB0_BASE + 4) & 0xffff) | ((cst_range & 0xffff) << 16);
85 if (conf && conf->
slfm && (msr.
lo & (1 << 27)))
91 if ((
stepping == 0xa) && (cores < 4)) {
97 msr.
hi &= ~(1 << (32 - 32));
102 msr.
lo &= ~(1 << 11);
107 #define MSR_EMTTM_CR_TABLE(x) (0xa8 + (x))
108 #define MSR_EMTTM_TABLE_NUM 6
112 int num_states, pstate_idx;
126 const int num_lowest_pstate =
136 if (i >= num_lowest_pstate)
140 "%2d, 0x%02x, %d; encoded: 0x%04x\n",
156 #define IA32_PECI_CTL 0x5a0
177 if (((sub_cstates >> (2 * 4)) & 0xf) >= 2)
181 if (((sub_cstates >> (4 * 4)) & 0xf) >= 2) {
182 msr.
hi |= (1 << (32 - 32));
183 msr.
hi |= (1 << (33 - 32));
188 msr.
hi |= (1 << (36 - 32));
192 msr.
hi &= ~(1 << (38 - 32));
209 #define PIC_SENS_CFG 0x1aa
219 msr.
lo &= ~(1 << 31);
239 const char cores = (cpuid1.
ebx >> 16) & 0xf;
241 const char quad = cores > 2;
243 const char mp = cores > 1;
249 const char eist = (cpuid1.
ecx & (1 << 7)) &&
252 const char tm2 = eist && (cpuid1.
ecx & (1 << 8));
static unsigned int cpuid_edx(unsigned int op)
#define printk(level,...)
#define SPEEDSTEP_APIC_MAGIC
#define MSR_PKG_CST_CONFIG_CONTROL
static char processor_name[49]
struct device * dev_find_lapic(unsigned int apic_id)
Given a Local APIC ID, find the device structure.
static __always_inline msr_t rdmsr(unsigned int index)
static __always_inline void wrmsr(unsigned int index, msr_t msr)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
static void configure_emttm_tables(void)
static const struct cpu_driver driver __cpu_driver
static void configure_p_states(const char stepping, const char cores)
static void configure_misc(const int eist, const int tm2, const int emttm)
static void model_1067x_init(struct device *cpu)
static void configure_pic_thermal_sensors(const int tm2, const int quad)
struct chip_operations cpu_intel_model_1067x_ops
static void configure_c_states(const int quad)
static const struct cpu_device_id cpu_table[]
static struct device_operations cpu_dev_ops
#define MSR_EMTTM_CR_TABLE(x)
#define MSR_EMTTM_TABLE_NUM
void fill_processor_name(char *processor_name)
void speedstep_gen_pstates(sst_table_t *const table)
Generate full p-states table from processor parameters.
#define MSR_FSB_CLOCK_VCC
#define MSR_EXTENDED_CONFIG
#define MSR_PMG_IO_BASE_ADDR
#define SPEEDSTEP_RATIO_NONINT
#define MSR_PMG_IO_CAPTURE_ADDR
#define SPEEDSTEP_ENCODE_STATE(state)
struct device_operations * ops
void(* init)(struct device *dev)
DEVTREE_CONST void * chip_info
sst_state_t states[SPEEDSTEP_MAX_STATES]