From 88089519f302f1296b4739be45699f06f728ec31 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 30 Jan 2008 13:33:02 +0100 Subject: x86 setup: initialize LDTR and TR to make life easier to Intel VT Intel VT doesn't like to engage when the protected-mode state isn't fully initialized. Make life easier for it by initializing LDTR (to null) and TR (to a dummy hunk of low memory which will never actually be touched.) Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner --- arch/x86/boot/pmjump.S | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'arch/x86/boot/pmjump.S') diff --git a/arch/x86/boot/pmjump.S b/arch/x86/boot/pmjump.S index ef0da1f2c7fd..f7153d0d476e 100644 --- a/arch/x86/boot/pmjump.S +++ b/arch/x86/boot/pmjump.S @@ -36,6 +36,7 @@ protected_mode_jump: addl %ebx, 2f movw $__BOOT_DS, %cx + movw $__BOOT_TSS, %di movl %cr0, %edx orb $1, %dl # Protected mode (PE) bit @@ -63,6 +64,9 @@ in_pm32: # a valid stack if some debugging hack wants to use it. addl %ebx, %esp + # Set up TR to make Intel VT happy + ltr %di + # Clear registers to allow for future extensions to the # 32-bit boot protocol xorl %ecx, %ecx @@ -71,6 +75,9 @@ in_pm32: xorl %ebp, %ebp xorl %edi, %edi + # Set up LDTR to make Intel VT happy + lldt %cx + jmpl *%eax # Jump to the 32-bit entrypoint .size in_pm32, .-in_pm32 -- cgit