summaryrefslogtreecommitdiff
path: root/arch/x86/cpu
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2015-01-22 11:29:40 +0800
committerSimon Glass <sjg@chromium.org>2015-01-23 17:24:55 -0700
commit49491669065c1c718d8dc0b0ebc151b3d010c17b (patch)
treea9bfa987044f9d6deb606f787855a9f77ad5e871 /arch/x86/cpu
parent566d1754d3a84819d9e2829421898d115ef2c116 (diff)
downloadu-boot-imx-49491669065c1c718d8dc0b0ebc151b3d010c17b.zip
u-boot-imx-49491669065c1c718d8dc0b0ebc151b3d010c17b.tar.gz
u-boot-imx-49491669065c1c718d8dc0b0ebc151b3d010c17b.tar.bz2
x86: Save mtrr support flag in global data
CPUID (EAX 01H) returns MTRR support flag in EDX bit 12. Probe this flag in x86_cpu_init_f() and save it in global data. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/x86/cpu')
-rw-r--r--arch/x86/cpu/cpu.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c
index 30e5069..ed7905c 100644
--- a/arch/x86/cpu/cpu.c
+++ b/arch/x86/cpu/cpu.c
@@ -223,6 +223,11 @@ static bool has_cpuid(void)
return flag_is_changeable_p(X86_EFLAGS_ID);
}
+static bool has_mtrr(void)
+{
+ return cpuid_edx(0x00000001) & (1 << 12) ? true : false;
+}
+
static int build_vendor_name(char *vendor_name)
{
struct cpuid_result result;
@@ -318,6 +323,8 @@ int x86_cpu_init_f(void)
gd->arch.x86_model = c.x86_model;
gd->arch.x86_mask = c.x86_mask;
gd->arch.x86_device = cpu.device;
+
+ gd->arch.has_mtrr = has_mtrr();
}
return 0;