|
@@ -195,6 +195,11 @@ ENTRY(startup_64)
|
|
|
movl %eax, %ds
|
|
|
movl %eax, %es
|
|
|
movl %eax, %ss
|
|
|
+ movl %eax, %fs
|
|
|
+ movl %eax, %gs
|
|
|
+ lldt %ax
|
|
|
+ movl $0x20, %eax
|
|
|
+ ltr %ax
|
|
|
|
|
|
/* Compute the decompressed kernel start address. It is where
|
|
|
* we were loaded at aligned to a 2M boundary. %rbp contains the
|
|
@@ -295,6 +300,8 @@ gdt:
|
|
|
.quad 0x0000000000000000 /* NULL descriptor */
|
|
|
.quad 0x00af9a000000ffff /* __KERNEL_CS */
|
|
|
.quad 0x00cf92000000ffff /* __KERNEL_DS */
|
|
|
+ .quad 0x0080890000000000 /* TS descriptor */
|
|
|
+ .quad 0x0000000000000000 /* TS continued */
|
|
|
gdt_end:
|
|
|
.bss
|
|
|
/* Stack for uncompression */
|