# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 3a4ef6acd5451499b604fd36035eaa435dc5d2c3
# Parent faf7e6254712e54628dcf5861ab385cdd38b95f4
Fix NX/XD enable on secondary CPUs.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
diff -r faf7e6254712 -r 3a4ef6acd545 xen/arch/x86/boot/x86_64.S
--- a/xen/arch/x86/boot/x86_64.S Tue Jul 12 17:31:16 2005
+++ b/xen/arch/x86/boot/x86_64.S Wed Jul 13 08:25:08 2005
@@ -76,7 +76,7 @@
cpuid
bt $29,%edx # Long mode feature?
jnc bad_cpu
- mov %edx,%edi
+ mov %edx,0x100310 # cpuid_ext_features
skip_boot_checks:
/* Set up FPU. */
@@ -95,6 +95,7 @@
rdmsr
btsl $_EFER_LME,%eax /* Long Mode */
btsl $_EFER_SCE,%eax /* SYSCALL/SYSRET */
+ mov 0x100310,%edi
btl $20,%edi /* CPUID 0x80000001, EDX[20] */
jnc 1f
btsl $_EFER_NX,%eax /* No-Execute */
@@ -105,10 +106,10 @@
jmp 1f
1: /* Now in compatibility mode. Long-jump into 64-bit mode. */
- ljmp $(__HYPERVISOR_CS64),$0x100100
+ ljmp $(__HYPERVISOR_CS64),$0x100200
.code64
- .org 0x0100
+ .org 0x0200
/* Install relocated selectors (FS/GS unused). */
lgdt gdt_descr(%rip)
@@ -200,7 +201,10 @@
.word LAST_RESERVED_GDT_BYTE
.quad gdt_table - FIRST_RESERVED_GDT_BYTE - __PAGE_OFFSET
- .word 0,0,0
+cpuid_ext_features: /* 0x310 */
+ .long 0
+
+ .word 0
gdt_descr:
.word LAST_RESERVED_GDT_BYTE
gdt:
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|