[coreboot-gerrit] Patch set updated for coreboot: [WIP]soc/apollolake: Set package lelve MSR

Ravishankar Sarawadi (ravishankar.sarawadi@intel.com) gerrit at coreboot.org
Mon Sep 26 23:54:07 CEST 2016


Ravishankar Sarawadi (ravishankar.sarawadi at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16587

-gerrit

commit bd8e15c4e31f0174f3ae6a502e876e2c076d6d1e
Author: Ravi Sarawadi <ravishankar.sarawadi at intel.com>
Date:   Mon Sep 26 14:48:18 2016 -0700

    [WIP]soc/apollolake: Set package lelve MSR
    
    Set package level MSRs after boot/suspend-cycle.
    
    BUG=chrome-os-partner:56922
    BRANCH=None
    
    TEST=Use iotools rdmsr and 'powertop' to check MSRs
    Signed-off-by: Ravi Sarawadi <ravishankar.sarawadi at intel.com>
    
    Change-Id: I97c3d82f654be30a0d2d88cb68c8212af3d6f767
---
 src/soc/intel/apollolake/cpu.c             | 11 +++++++++++
 src/soc/intel/apollolake/include/soc/cpu.h |  1 +
 2 files changed, 12 insertions(+)

diff --git a/src/soc/intel/apollolake/cpu.c b/src/soc/intel/apollolake/cpu.c
index 86fe3e1..8d02080 100644
--- a/src/soc/intel/apollolake/cpu.c
+++ b/src/soc/intel/apollolake/cpu.c
@@ -25,6 +25,7 @@
 #include <cpu/x86/mtrr.h>
 #include <device/device.h>
 #include <device/pci.h>
+#include <reg_script.h>
 #include <soc/cpu.h>
 #include <soc/smm.h>
 
@@ -62,6 +63,13 @@ static void read_cpu_topology(unsigned int *num_phys, unsigned int *num_virt)
 	*num_phys = (msr.lo >> 16) & 0xffff;
 }
 
+/* Package level MSRs */
+static const struct reg_script package_msr_script[] = {
+	/* Set Package TDP to ~12W */
+	REG_MSR_WRITE(MSR_PKG_POWER_LIMIT, 0x8f0000dd8c00),
+	REG_SCRIPT_END
+};
+
 /*
  * Do essential initialization tasks before APs can be fired up
  *
@@ -73,6 +81,9 @@ static void pre_mp_init(void)
 {
 	x86_setup_mtrrs_with_detect();
 	x86_mtrr_check();
+
+	/* Set package MSRs */
+	reg_script_run(package_msr_script);
 }
 
 /* Find CPU topology */
diff --git a/src/soc/intel/apollolake/include/soc/cpu.h b/src/soc/intel/apollolake/include/soc/cpu.h
index 22412af..78de6f8 100644
--- a/src/soc/intel/apollolake/include/soc/cpu.h
+++ b/src/soc/intel/apollolake/include/soc/cpu.h
@@ -39,6 +39,7 @@ void apollolake_init_cpus(struct device *dev);
 #define   PREFETCH_L2_DISABLE	(1 << 2)
 
 #define MSR_PKG_POWER_SKU_UNIT	0x606
+#define MSR_PKG_POWER_LIMIT	0x610
 
 #define MSR_L2_QOS_MASK(reg)		(0xd10 + reg)
 #define MSR_IA32_PQR_ASSOC		0xc8f



More information about the coreboot-gerrit mailing list