diff options
Diffstat (limited to 'src/soc/intel/apollolake')
-rw-r--r-- | src/soc/intel/apollolake/bootblock/bootblock.c | 10 | ||||
-rw-r--r-- | src/soc/intel/apollolake/include/soc/cpu.h | 1 |
2 files changed, 11 insertions, 0 deletions
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 <arch/cpu.h> #include <bootblock_common.h> #include <device/pci.h> +#include <program_loading.h> #include <soc/bootblock.h> +#include <soc/cpu.h> #include <soc/northbridge.h> #include <soc/pci_devs.h> @@ -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 |