Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/smp/ap.S

    ra35b458 r4928165  
    5555        xorw %ax, %ax
    5656        movw %ax, %ds
    57 
     57       
    5858        lgdtl ap_gdtr       # initialize Global Descriptor Table register
    59 
     59       
    6060        movl %cr0, %eax
    6161        orl $CR0_PE, %eax
     
    7171        movw $GDT_SELECTOR(UDATA_DES), %ax
    7272        movw %ax, %gs
    73 
     73       
    7474        # Enable 64-bit page transaltion entries (CR4.PAE = 1).
    7575        # Paging is not enabled until after long mode is enabled
    76 
     76       
    7777        movl %cr4, %eax
    7878        orl $CR4_PAE, %eax
    7979        movl %eax, %cr4
    80 
     80       
    8181        leal ptl_0, %eax
    8282        movl %eax, %cr3
    83 
     83       
    8484        # Enable long mode
    8585        movl $AMD_MSR_EFER, %ecx  # EFER MSR number
     
    8787        orl $AMD_LME, %eax        # Set LME=1
    8888        wrmsr                     # Write EFER
    89 
     89       
    9090        # Enable paging to activate long mode (set CR0.PG = 1)
    9191        movl %cr0, %eax
    9292        orl $CR0_PG, %eax
    9393        movl %eax, %cr0
    94 
     94       
    9595        # At this point we are in compatibility mode
    9696        jmpl $GDT_SELECTOR(KTEXT_DES), $start64 - BOOT_OFFSET + AP_BOOT_OFFSET
     
    100100        movabsq $ctx, %rsp
    101101        movq CONTEXT_OFFSET_SP(%rsp), %rsp
    102 
     102       
    103103        pushq $0
    104104        movq %rsp, %rbp
    105 
     105       
    106106        movabsq $main_ap, %rax
    107107        callq *%rax   # never returns
Note: See TracChangeset for help on using the changeset viewer.