Ignore:
File:
1 edited

Legend:

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

    r4928165 ra35b458  
    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.