diff options
author | Dan Lykowski <lykowdk@gmail.com> | 2009-01-12 16:16:08 +0000 |
---|---|---|
committer | Marc Jones <marc.jones@amd.com> | 2009-01-12 16:16:08 +0000 |
commit | 6ef8e0f3e3a9044aa326a62e47b71670d9a218b7 (patch) | |
tree | c839a5d4b359e33a5f28673a3aec5b0b4d183823 /src/mainboard/amd/serengeti_cheetah | |
parent | 6fa7e6dae97853c948d1b5e5cffb35fa0f042dc5 (diff) | |
download | coreboot-6ef8e0f3e3a9044aa326a62e47b71670d9a218b7.tar.xz |
Check to see if K8 processor is capable of changing FIDVID otherwise it will throw a GP# when reading FIDVID_STATUS
Signed-off-by: Dan Lykowski <lykowdk@gmail.com>
Acked-by: Zheng Bao <zheng.bao@amd.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3856 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/amd/serengeti_cheetah')
-rw-r--r-- | src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c b/src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c index 5b217a6711..7e60c2c7a1 100644 --- a/src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c +++ b/src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c @@ -259,6 +259,7 @@ void real_main(unsigned long bist, unsigned long cpu_init_detectedx) int needs_reset; int i; unsigned bsp_apicid = 0; + struct cpuid_result cpuid1; if (bist == 0) { bsp_apicid = init_cpus(cpu_init_detectedx, sysinfo); @@ -311,8 +312,13 @@ void real_main(unsigned long bist, unsigned long cpu_init_detectedx) #endif #if K8_SET_FIDVID == 1 + /* Check to see if processor is capable of changing FIDVID */ + /* otherwise it will throw a GP# when reading FIDVID_STATUS */ + cpuid1 = cpuid(0x80000007); + if( (cpuid1.edx & 0x6) == 0x6 ) { { + /* Read FIDVID_STATUS */ msr_t msr; msr=rdmsr(0xc0010042); print_debug("begin msr fid, vid "); print_debug_hex32( msr.hi ); print_debug_hex32(msr.lo); print_debug("\r\n"); @@ -332,6 +338,11 @@ void real_main(unsigned long bist, unsigned long cpu_init_detectedx) print_debug("end msr fid, vid "); print_debug_hex32( msr.hi ); print_debug_hex32(msr.lo); print_debug("\r\n"); } + + } else { + print_debug("Changing FIDVID not supported\n"); + } + #endif #if 1 |