blob: 9a3ed0649d4e98c4459f13d90fbf1988df2195ce [file] [log] [blame]
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +02001/*
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +02002 * Copyright (C) 1994 Linus Torvalds
3 * Copyright (C) 2000 SuSE
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +02004 */
5
6#include <linux/kernel.h>
Jeremy Fitzhardinge57decbd2007-05-02 19:27:16 +02007#include <linux/init.h>
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +02008#include <asm/alternative.h>
Josh Triplettdd22a682007-07-31 00:39:21 -07009#include <asm/bugs.h>
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +020010#include <asm/processor.h>
Andi Kleen0a203a42007-05-12 17:27:40 +020011#include <asm/mtrr.h>
Andi Kleenf5c24a72008-03-12 03:53:30 +010012#include <asm/cacheflush.h>
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +020013
14void __init check_bugs(void)
15{
Glauber de Oliveira Costa5745abf2008-03-19 14:25:03 -030016 identify_boot_cpu();
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +020017#if !defined(CONFIG_SMP)
18 printk("CPU: ");
19 print_cpu_info(&boot_cpu_data);
20#endif
21 alternative_instructions();
Andi Kleenf5c24a72008-03-12 03:53:30 +010022
23 /*
24 * Make sure the first 2MB area is not mapped by huge pages
25 * There are typically fixed size MTRRs in there and overlapping
26 * MTRRs into large pages causes slow downs.
27 *
28 * Right now we don't do that with gbpages because there seems
29 * very little benefit for that case.
30 */
31 if (!direct_gbpages)
32 set_memory_4k((unsigned long)__va(0), 1);
Jeremy Fitzhardingec169859d2007-05-02 19:27:12 +020033}