static void configure_misc(void) { struct device *dev = SA_DEV_ROOT; config_t *conf = dev->chip_info; msr_t msr; msr = rdmsr(IA32_MISC_ENABLE); msr.lo |= (1 << 0); /* Fast String enable */ msr.lo |= (1 << 3); /* TM1/TM2/EMTTM enable */ if (conf->eist_enable) cpu_enable_eist(); else cpu_disable_eist(); wrmsr(IA32_MISC_ENABLE, msr); /* Disable Thermal interrupts */ msr.lo = 0; msr.hi = 0; wrmsr(IA32_THERM_INTERRUPT, msr); /* Enable package critical interrupt only */ msr.lo = 1 << 4; msr.hi = 0; wrmsr(IA32_PACKAGE_THERM_INTERRUPT, msr); /* Enable PROCHOT */ msr = rdmsr(MSR_POWER_CTL); msr.lo |= (1 << 0); /* Enable Bi-directional PROCHOT as an input*/ msr.lo |= (1 << 23); /* Lock it */ wrmsr(MSR_POWER_CTL, msr); }
void set_max_freq(void) { if (cpu_get_burst_mode_state() == BURST_MODE_UNAVAILABLE) { /* Burst Mode has been factory configured as disabled * and is not available in this physical processor * package. */ printk(BIOS_DEBUG, "Burst Mode is factory disabled\n"); return; } /* Enable burst mode */ cpu_enable_burst_mode(); /* Enable speed step. */ cpu_enable_eist(); /* Set P-State ratio */ cpu_set_p_state_to_turbo_ratio(); }