Changes in kernel/arch/amd64/src/smp/ap.S [4928165:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/smp/ap.S
r4928165 ra35b458 55 55 xorw %ax, %ax 56 56 movw %ax, %ds 57 57 58 58 lgdtl ap_gdtr # initialize Global Descriptor Table register 59 59 60 60 movl %cr0, %eax 61 61 orl $CR0_PE, %eax … … 71 71 movw $GDT_SELECTOR(UDATA_DES), %ax 72 72 movw %ax, %gs 73 73 74 74 # Enable 64-bit page transaltion entries (CR4.PAE = 1). 75 75 # Paging is not enabled until after long mode is enabled 76 76 77 77 movl %cr4, %eax 78 78 orl $CR4_PAE, %eax 79 79 movl %eax, %cr4 80 80 81 81 leal ptl_0, %eax 82 82 movl %eax, %cr3 83 83 84 84 # Enable long mode 85 85 movl $AMD_MSR_EFER, %ecx # EFER MSR number … … 87 87 orl $AMD_LME, %eax # Set LME=1 88 88 wrmsr # Write EFER 89 89 90 90 # Enable paging to activate long mode (set CR0.PG = 1) 91 91 movl %cr0, %eax 92 92 orl $CR0_PG, %eax 93 93 movl %eax, %cr0 94 94 95 95 # At this point we are in compatibility mode 96 96 jmpl $GDT_SELECTOR(KTEXT_DES), $start64 - BOOT_OFFSET + AP_BOOT_OFFSET … … 100 100 movabsq $ctx, %rsp 101 101 movq CONTEXT_OFFSET_SP(%rsp), %rsp 102 102 103 103 pushq $0 104 104 movq %rsp, %rbp 105 105 106 106 movabsq $main_ap, %rax 107 107 callq *%rax # never returns
Note:
See TracChangeset
for help on using the changeset viewer.