intel/sandybridge: Don't hardcode platform type
* Add a function to return CPU platform ID bits * Add a function to return platform type ** Platform id is 4 on Lenovo T430 (mobile) ** Platform id is 1 on HP8200 (desktop) * Use introduced method to handle platform specific code * Use enum for platform type * Report platform ID Change-Id: Ifbfc64c8cec98782d6efc987a4d4d5aeab1402ba Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/22530 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
committed by
Felix Held
parent
2a7be5bf30
commit
74203de851
@ -5,6 +5,10 @@ subdirs-y += ../common
|
||||
|
||||
ramstage-y += acpi.c
|
||||
|
||||
ramstage-y += common.c
|
||||
romstage-y += common.c
|
||||
smm-$(CONFIG_HAVE_SMI_HANDLER) += common.c
|
||||
|
||||
ramstage-y += tsc_freq.c
|
||||
romstage-y += tsc_freq.c
|
||||
smm-$(CONFIG_HAVE_SMI_HANDLER) += tsc_freq.c
|
||||
|
31
src/cpu/intel/model_206ax/common.c
Normal file
31
src/cpu/intel/model_206ax/common.c
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright (C) 2009 coresystems GmbH
|
||||
* Copyright (C) 2011 The Chromium OS Authors. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; version 2 of
|
||||
* the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <types.h>
|
||||
#include <cpu/x86/msr.h>
|
||||
#include "model_206ax.h"
|
||||
|
||||
#define IA32_PLATFORM_ID 0x17
|
||||
|
||||
int get_platform_id(void)
|
||||
{
|
||||
msr_t msr;
|
||||
|
||||
msr = rdmsr(IA32_PLATFORM_ID);
|
||||
/* Read Platform Id Bits 52:50 */
|
||||
return (msr.hi >> 18) & 0x7;
|
||||
}
|
@ -123,5 +123,6 @@ void set_power_limits(u8 power_limit_1_time);
|
||||
int cpu_config_tdp_levels(void);
|
||||
void smm_relocate(void);
|
||||
#endif
|
||||
int get_platform_id(void);
|
||||
|
||||
#endif
|
||||
|
@ -514,6 +514,9 @@ static void model_206ax_init(struct device *cpu)
|
||||
fill_processor_name(processor_name);
|
||||
printk(BIOS_INFO, "CPU: %s.\n", processor_name);
|
||||
|
||||
/* Print platform ID */
|
||||
printk(BIOS_INFO, "CPU: platform id %x\n", get_platform_id());
|
||||
|
||||
/* Setup MTRRs based on physical address size */
|
||||
x86_setup_mtrrs_with_detect();
|
||||
x86_mtrr_check();
|
||||
|
Reference in New Issue
Block a user