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 <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:

committed by
Ingo Molnar

parent
c4d9ba6da9
commit
88089519f3
@@ -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
|
||||
|
Reference in New Issue
Block a user