mirror of
https://gitlab.com/bztsrc/bootboot.git
synced 2023-02-13 20:54:32 -05:00
Make sure long mode CR0 is consistent on BIOS and UEFI
This commit is contained in:
parent
c9eaba0a98
commit
5c3122774e
9 changed files with 5 additions and 9 deletions
BIN
dist/bootboot.bin
vendored
BIN
dist/bootboot.bin
vendored
Binary file not shown.
BIN
dist/bootboot.efi
vendored
BIN
dist/bootboot.efi
vendored
Binary file not shown.
BIN
dist/bootboot.rom
vendored
BIN
dist/bootboot.rom
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -1551,7 +1551,7 @@ end if
|
|||
xor eax, eax
|
||||
repnz stosd
|
||||
mov dword [ebx+0], '// N'
|
||||
mov dword [ebx+4], '/A\n'
|
||||
mov dword [ebx+4], '/A' or (10 shl 16)
|
||||
.parseend:
|
||||
|
||||
;-----load /sys/core------
|
||||
|
@ -2165,9 +2165,7 @@ longmode_init:
|
|||
or eax, 100h ;enable long mode
|
||||
wrmsr
|
||||
|
||||
mov eax, cr0
|
||||
and al, 0FBh ;clear EM, MP (enable SSE)
|
||||
or eax, 0C0000001h
|
||||
mov eax, 0C0000011h ;clear EM, MP (enable SSE) and WP
|
||||
mov cr0, eax ;enable paging with cache disabled
|
||||
lgdt [GDT_value] ;read 80 bit address
|
||||
jmp @f
|
||||
|
|
|
@ -1300,9 +1300,7 @@ VOID EFIAPI bootboot_startcore(IN VOID* buf)
|
|||
|
||||
// enable SSE
|
||||
__asm__ __volatile__ (
|
||||
"movq %%cr0, %%rax;"
|
||||
"andb $0xfb, %%al;"
|
||||
"orl $0xC0000001, %%eax;"
|
||||
"movl $0xC0000011, %%eax;"
|
||||
"movq %%rax, %%cr0;"
|
||||
"movq %%cr4, %%rax;"
|
||||
"orw $3 << 8, %%ax;"
|
||||
|
|
Loading…
Reference in a new issue