The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=b7ea2b69ef666ee8cdc6dcc814d610df0a7f0999

commit b7ea2b69ef666ee8cdc6dcc814d610df0a7f0999
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2024-09-11 00:39:30 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2024-09-16 08:09:38 +0000

    amd64 la57_trampoline: disable EFER.LME around setting CR4.LA57
    
    Changing paging mode while LME is set seems to be not allowed.
    
    Sponsored by:   Advanced Micro Devices (AMD)
    Sponsored by:   jThe FreeBSD Foundation
    MFC after:      1 week
---
 sys/amd64/amd64/locore.S | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sys/amd64/amd64/locore.S b/sys/amd64/amd64/locore.S
index 86db0f76b22b..9a991402cdc2 100644
--- a/sys/amd64/amd64/locore.S
+++ b/sys/amd64/amd64/locore.S
@@ -114,11 +114,21 @@ l1:       movl    $(3<<3),%eax
        andl    $~CR0_PG,%eax
        movl    %eax,%cr0
 
+       movl    $MSR_EFER,%ecx
+       rdmsr
+       andl    $~EFER_LME,%eax
+       wrmsr
+
        movl    %cr4,%eax
        orl     $CR4_LA57,%eax
        movl    %eax,%cr4
 
        movl    %edi,%cr3
+
+       rdmsr
+       orl     $EFER_LME,%eax
+       wrmsr
+
        movl    %ebp,%cr0
        jmp     1f
 

Reply via email to