[BACK]Return to locore.S CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / i386 / i386

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/i386/i386/locore.S between version 1.103 and 1.104

version 1.103, 2012/10/26 14:46:44 version 1.104, 2013/06/22 15:13:55
Line 163  __KERNEL_RCSID(0, "$NetBSD$");
Line 163  __KERNEL_RCSID(0, "$NetBSD$");
 /* Get definitions for IOM_BEGIN, IOM_END, and IOM_SIZE */  /* Get definitions for IOM_BEGIN, IOM_END, and IOM_SIZE */
 #include <dev/isa/isareg.h>  #include <dev/isa/isareg.h>
   
   #ifndef XEN
   #define _RELOC(x)       ((x) - KERNBASE)
   #else
   #define _RELOC(x)       ((x))
   #endif /* XEN */
   #define RELOC(x)        _RELOC(_C_LABEL(x))
   
 #ifdef XEN  #ifdef XEN
 /*  /*
  * Xen guest identifier and loader selection   * Xen guest identifier and loader selection
Line 194  __KERNEL_RCSID(0, "$NetBSD$");
Line 201  __KERNEL_RCSID(0, "$NetBSD$");
         .globl  _C_LABEL(esym)          .globl  _C_LABEL(esym)
         .globl  _C_LABEL(eblob)          .globl  _C_LABEL(eblob)
         .globl  _C_LABEL(atdevbase)          .globl  _C_LABEL(atdevbase)
         .globl  _C_LABEL(lwp0uarea),_C_LABEL(PDPpaddr)          .globl  _C_LABEL(lwp0uarea)
           .globl  _C_LABEL(PDPpaddr)
         .globl  _C_LABEL(gdt)          .globl  _C_LABEL(gdt)
         .globl  _C_LABEL(idt)          .globl  _C_LABEL(idt)
         .globl  _C_LABEL(lapic_tpr)          .globl  _C_LABEL(lapic_tpr)
Line 206  __KERNEL_RCSID(0, "$NetBSD$");
Line 214  __KERNEL_RCSID(0, "$NetBSD$");
         .align  12          .align  12
 #endif  #endif
         .globl _C_LABEL(local_apic), _C_LABEL(lapic_id)          .globl _C_LABEL(local_apic), _C_LABEL(lapic_id)
 _C_LABEL(local_apic):          .type   _C_LABEL(local_apic), @object
   LABEL(local_apic)
         .space  LAPIC_ID          .space  LAPIC_ID
 _C_LABEL(lapic_id):  END(local_apic)
           .type   _C_LABEL(lapic_id), @object
   LABEL(lapic_id)
         .long   0x00000000          .long   0x00000000
         .space  LAPIC_TPRI-(LAPIC_ID+4)          .space  LAPIC_TPRI-(LAPIC_ID+4)
 _C_LABEL(lapic_tpr):  END(lapic_id)
           .type   _C_LABEL(lapic_tpr), @object
   LABEL(lapic_tpr)
         .space  LAPIC_PPRI-LAPIC_TPRI          .space  LAPIC_PPRI-LAPIC_TPRI
   END(lapic_tpr)
           .type   _C_LABEL(lapic_ppr), @object
 _C_LABEL(lapic_ppr):  _C_LABEL(lapic_ppr):
         .space  LAPIC_ISR-LAPIC_PPRI          .space  LAPIC_ISR-LAPIC_PPRI
   END(lapic_ppr)
           .type   _C_LABEL(lapic_isr), @object
 _C_LABEL(lapic_isr):  _C_LABEL(lapic_isr):
         .space  PAGE_SIZE-LAPIC_ISR          .space  PAGE_SIZE-LAPIC_ISR
   END(lapic_isr)
 #else  #else
 _C_LABEL(lapic_tpr):          .type   _C_LABEL(lapic_tpr), @object
   LABEL(lapic_tpr)
         .long 0          .long 0
   END(lapic_tpr)
 #endif  #endif
           .type   _C_LABEL(cputype), @object
 _C_LABEL(cputype):      .long   0       # are we 80486, Pentium, or..  LABEL(cputype)          .long   0       # are we 80486, Pentium, or..
 _C_LABEL(cpuid_level):  .long   0  END(cputype)
 _C_LABEL(atdevbase):    .long   0       # location of start of iomem in virtual          .type   _C_LABEL(cpuid_level), @object
 _C_LABEL(lwp0uarea):    .long   0  LABEL(cpuid_level)      .long   0
 _C_LABEL(PDPpaddr):     .long   0       # paddr of PDP, for libkvm  END(cpuid_level)
           .type   _C_LABEL(atdevbase), @object
   LABEL(atdevbase)        .long   0       # location of start of iomem in virtual
   END(atdevbase)
           .type   _C_LABEL(lwp0uarea), @object
   LABEL(lwp0uarea)        .long   0
   END(lwp0uarea)
           .type   _C_LABEL(PDPpaddr), @object
   LABEL(PDPpaddr)         .long   0       # paddr of PDP, for libkvm
   END(PDPpaddr)
           .type   _C_LABEL(tablesize), @object
 _C_LABEL(tablesize):    .long   0  _C_LABEL(tablesize):    .long   0
   END(tablesize)
           .size   tmpstk, tmpstk - .
         .space 512          .space 512
 tmpstk:  tmpstk:
 #ifdef XEN  #ifdef XEN
         .align          PAGE_SIZE, 0x0  # Align on page boundary          .align          PAGE_SIZE, 0x0  # Align on page boundary
         .globl tmpgdt  LABEL(tmpgdt)
 _C_LABEL(tmpgdt):  
         .space          PAGE_SIZE       # Xen expects a page          .space          PAGE_SIZE       # Xen expects a page
   END(tmpgdt)
 #endif /* XEN */  #endif /* XEN */
 #ifndef XEN  
 #define _RELOC(x)       ((x) - KERNBASE)  
 #else  
 #define _RELOC(x)       ((x))  
 #endif /* XEN */  
 #define RELOC(x)        _RELOC(_C_LABEL(x))  
   
         .text          .text
         .globl  _C_LABEL(kernel_text)          .globl  _C_LABEL(kernel_text)
         .set    _C_LABEL(kernel_text),KERNTEXTOFF          .set    _C_LABEL(kernel_text),KERNTEXTOFF
   
         .globl  start  ENTRY(start)
 #ifndef XEN  #ifndef XEN
 start:  movw    $0x1234,0x472                   # warm boot          movw    $0x1234,0x472                   # warm boot
   
 #if defined(MULTIBOOT)  #if defined(MULTIBOOT)
         jmp     1f          jmp     1f
   
Line 752  begin:
Line 776  begin:
   
         call    _C_LABEL(main)          call    _C_LABEL(main)
 #else /* XEN */  #else /* XEN */
 start:  
         /* First, reset the PSL. */          /* First, reset the PSL. */
         pushl   $PSL_MBO          pushl   $PSL_MBO
         popfl          popfl
Line 816  start:
Line 839  start:
         call    _C_LABEL(init386)       # wire 386 chip for unix operation          call    _C_LABEL(init386)       # wire 386 chip for unix operation
         addl    $PDE_SIZE,%esp          # pop paddr_t          addl    $PDE_SIZE,%esp          # pop paddr_t
         call    _C_LABEL(main)          call    _C_LABEL(main)
   #endif /* defined(XEN) */
   END(start)
   
 #if defined(XEN)  #if defined(XEN)
 /* space for the hypercall call page */  /* space for the hypercall call page */
Line 823  start:
Line 848  start:
 .org HYPERCALL_PAGE_OFFSET  .org HYPERCALL_PAGE_OFFSET
 ENTRY(hypercall_page)  ENTRY(hypercall_page)
 .skip 0x1000  .skip 0x1000
 #endif /* defined(XEN) */  END(hypercall_page)
   
 /*  /*
  * void lgdt_finish(void);   * void lgdt_finish(void);

Legend:
Removed from v.1.103  
changed lines
  Added in v.1.104

CVSweb <webmaster@jp.NetBSD.org>