summaryrefslogtreecommitdiff
path: root/src/soc/intel/apollolake/include/soc/cpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/apollolake/include/soc/cpu.h')
-rw-r--r--src/soc/intel/apollolake/include/soc/cpu.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/soc/intel/apollolake/include/soc/cpu.h b/src/soc/intel/apollolake/include/soc/cpu.h
index ed4a7de477..4a1a7a438c 100644
--- a/src/soc/intel/apollolake/include/soc/cpu.h
+++ b/src/soc/intel/apollolake/include/soc/cpu.h
@@ -18,6 +18,9 @@
#ifndef _SOC_APOLLOLAKE_CPU_H_
#define _SOC_APOLLOLAKE_CPU_H_
+#include <cpu/x86/msr.h>
+#include <intelblocks/msr.h>
+
/* Common Timer Copy (CTC) frequency - 19.2MHz. */
#define CTC_FREQ 19200000
@@ -25,4 +28,11 @@ struct device;
void apollolake_init_cpus(struct device *dev);
void mainboard_devtree_update(struct device *dev);
+/* Flush L1D to L2 */
+static inline void flush_l1d_to_l2(void)
+{
+ msr_t msr = rdmsr(MSR_POWER_MISC);
+ msr.lo |= FLUSH_DL1_L2;
+ wrmsr(MSR_POWER_MISC, msr);
+}
#endif /* _SOC_APOLLOLAKE_CPU_H_ */