diff --git a/src/soc/intel/apollolake/bootblock/bootblock.c b/src/soc/intel/apollolake/bootblock/bootblock.c index d3a78e106f..500761315b 100644 --- a/src/soc/intel/apollolake/bootblock/bootblock.c +++ b/src/soc/intel/apollolake/bootblock/bootblock.c @@ -12,7 +12,9 @@ #include #include #include +#include #include +#include #include #include @@ -32,3 +34,11 @@ void asmlinkage bootblock_c_entry(void) /* Call lib/bootblock.c main */ main(); } + +void platform_prog_run(struct prog *prog) +{ + /* Flush L1D cache to L2 */ + msr_t msr = rdmsr(MSR_POWER_MISC); + msr.lo |= (1 << 8); + wrmsr(MSR_POWER_MISC, msr); +} diff --git a/src/soc/intel/apollolake/include/soc/cpu.h b/src/soc/intel/apollolake/include/soc/cpu.h index bee58b206e..870f474c87 100644 --- a/src/soc/intel/apollolake/include/soc/cpu.h +++ b/src/soc/intel/apollolake/include/soc/cpu.h @@ -18,6 +18,7 @@ #define CPUID_APOLLOLAKE_A0 0x506c8 #define MSR_PLATFORM_INFO 0xce +#define MSR_POWER_MISC 0x120 #define BASE_CLOCK_MHZ 100