aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/boot
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2007-05-02 13:27:20 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:20 -0400
commitc7f81c9453375d6416658995eafd3397cb9bba1d (patch)
tree44e018745a0b7c12b127eb54106f2f0c2bb5a570 /arch/i386/boot
parent484ad393659f20d784a3a93613fb3fd3d9f171fa (diff)
[PATCH] i386: Verify important CPUID bits in real mode
Check some CPUID bits that are needed for compiler generated early in boot. When the system is still in real mode before changing the VESA BIOS mode it is possible to still display an visible error message on the screen. Similar to x86-64. Includes cleanups from Eric Biederman Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/i386/boot')
-rw-r--r--arch/i386/boot/setup.S17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S
index b74b7f40b79c..f8b3b9cda2b1 100644
--- a/arch/i386/boot/setup.S
+++ b/arch/i386/boot/setup.S
@@ -302,7 +302,24 @@ good_sig:
302 302
303loader_panic_mess: .string "Wrong loader, giving up..." 303loader_panic_mess: .string "Wrong loader, giving up..."
304 304
305# check minimum cpuid
306# we do this here because it is the last place we can actually
307# show a user visible error message. Later the video modus
308# might be already messed up.
305loader_ok: 309loader_ok:
310 call verify_cpu
311 testl %eax,%eax
312 jz cpu_ok
313 lea cpu_panic_mess,%si
314 call prtstr
3151: jmp 1b
316
317cpu_panic_mess:
318 .asciz "PANIC: CPU too old for this kernel."
319
320#include "../kernel/verify_cpu.S"
321
322cpu_ok:
306# Get memory size (extended mem, kB) 323# Get memory size (extended mem, kB)
307 324
308 xorl %eax, %eax 325 xorl %eax, %eax