diff options
Diffstat (limited to 'src/soc/amd/common')
-rw-r--r-- | src/soc/amd/common/block/cpu/noncar/cpu.c | 12 | ||||
-rw-r--r-- | src/soc/amd/common/block/include/amdblocks/cpu.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/soc/amd/common/block/cpu/noncar/cpu.c b/src/soc/amd/common/block/cpu/noncar/cpu.c index 7c1daf96f1..98926bff7e 100644 --- a/src/soc/amd/common/block/cpu/noncar/cpu.c +++ b/src/soc/amd/common/block/cpu/noncar/cpu.c @@ -2,8 +2,20 @@ #include <amdblocks/cpu.h> #include <cpu/cpu.h> +#include <cpu/x86/msr.h> +#include <cpu/amd/msr.h> +#include <soc/iomap.h> int get_cpu_count(void) { return 1 + (cpuid_ecx(0x80000008) & 0xff); } + +void set_cstate_io_addr(void) +{ + msr_t cst_addr; + + cst_addr.hi = 0; + cst_addr.lo = ACPI_CPU_CONTROL; + wrmsr(MSR_CSTATE_ADDRESS, cst_addr); +} diff --git a/src/soc/amd/common/block/include/amdblocks/cpu.h b/src/soc/amd/common/block/include/amdblocks/cpu.h index 50300d5a0f..0627bc1377 100644 --- a/src/soc/amd/common/block/include/amdblocks/cpu.h +++ b/src/soc/amd/common/block/include/amdblocks/cpu.h @@ -4,6 +4,7 @@ #define AMD_BLOCK_CPU_H int get_cpu_count(void); +void set_cstate_io_addr(void); void write_resume_eip(void); #endif /* AMD_BLOCK_CPU_H */ |