Ignore:
File:
1 edited

Legend:

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

    r1d3d2cf r304342e  
    5555        xorw %ax, %ax
    5656        movw %ax, %ds
    57        
    58         lgdtl ap_gdtr       # initialize Global Descriptor Table register
     57
     58        lgdtl ap_gdtr           # initialize Global Descriptor Table register
    5959       
    6060        movl %cr0, %eax
    6161        orl $1, %eax
    62         movl %eax, %cr0     # switch to protected mode
    63         jmpl $GDT_SELECTOR(KTEXT32_DES), $jump_to_kernel - BOOT_OFFSET + AP_BOOT_OFFSET
    64 
     62        movl %eax, %cr0         # switch to protected mode
     63        jmpl $gdtselector(KTEXT32_DES), $jump_to_kernel - BOOT_OFFSET + AP_BOOT_OFFSET
     64       
    6565jump_to_kernel:
    6666.code32
    67         movw $GDT_SELECTOR(KDATA_DES), %ax
     67        movw $gdtselector(KDATA_DES), %ax
    6868        movw %ax, %ds
    6969        movw %ax, %es
    7070        movw %ax, %ss
    71         movw $GDT_SELECTOR(UDATA_DES), %ax
     71        movw $gdtselector(UDATA_DES), %ax
    7272        movw %ax, %gs
    7373       
    74         # Enable 64-bit page transaltion entries (CR4.PAE = 1).
     74        # Enable 64-bit page transaltion entries - CR4.PAE = 1.
    7575        # Paging is not enabled until after long mode is enabled
    7676       
     
    7878        btsl $5, %eax
    7979        movl %eax, %cr4
    80        
     80
    8181        leal ptl_0, %eax
    8282        movl %eax, %cr3
    8383       
    8484        # Enable long mode
    85         movl $EFER_MSR_NUM, %ecx  # EFER MSR number
    86         rdmsr                     # Read EFER
    87         btsl $AMD_LME_FLAG, %eax  # Set LME=1
    88         wrmsr                     # Write EFER
     85        movl $EFER_MSR_NUM, %ecx        # EFER MSR number
     86        rdmsr                           # Read EFER
     87        btsl $AMD_LME_FLAG, %eax        # Set LME=1
     88        wrmsr                           # Write EFER
    8989       
    90         # Enable paging to activate long mode (set CR0.PG = 1)
     90        # Enable paging to activate long mode (set CR0.PG=1)
    9191        movl %cr0, %eax
    9292        btsl $31, %eax
     
    9494       
    9595        # At this point we are in compatibility mode
    96         jmpl $GDT_SELECTOR(KTEXT_DES), $start64 - BOOT_OFFSET + AP_BOOT_OFFSET
     96        jmpl $gdtselector(KTEXT_DES), $start64 - BOOT_OFFSET + AP_BOOT_OFFSET
    9797
    9898.code64
    9999start64:
    100         movabsq $ctx, %rsp
    101         movq (%rsp), %rsp
    102        
     100        movq (ctx), %rsp
    103101        pushq $0
    104102        movq %rsp, %rbp
    105        
    106         movabsq $main_ap, %rax
    107         callq *%rax   # never returns
     103        call main_ap - AP_BOOT_OFFSET + BOOT_OFFSET   # never returns
    108104
    109105#endif /* CONFIG_SMP */
Note: See TracChangeset for help on using the changeset viewer.