version 1.110, 2014/01/26 19:16:17 |
version 1.113, 2014/08/17 21:17:43 |
Line 184 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 184 __KERNEL_RCSID(0, "$NetBSD$"); |
|
.ascii ",PAE=yes[extended-cr3]" |
.ascii ",PAE=yes[extended-cr3]" |
#endif |
#endif |
.ascii ",LOADER=generic" |
.ascii ",LOADER=generic" |
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(SYMTAB_SPACE) |
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(COPY_SYMTAB) |
.ascii ",BSD_SYMTAB=yes" |
.ascii ",BSD_SYMTAB=yes" |
#endif |
#endif |
.byte 0 |
.byte 0 |
Line 544 try586: /* Use the `cpuid' instruction. |
|
Line 544 try586: /* Use the `cpuid' instruction. |
|
/* Find end of kernel image. */ |
/* Find end of kernel image. */ |
movl $RELOC(end),%edi |
movl $RELOC(end),%edi |
|
|
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(SYMTAB_SPACE) |
#if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(COPY_SYMTAB) |
/* Save the symbols (if loaded). */ |
/* Save the symbols (if loaded). */ |
movl RELOC(esym),%eax |
movl RELOC(esym),%eax |
testl %eax,%eax |
testl %eax,%eax |
Line 697 try586: /* Use the `cpuid' instruction. |
|
Line 697 try586: /* Use the `cpuid' instruction. |
|
* 2. Enable paging and the rest of it. |
* 2. Enable paging and the rest of it. |
*/ |
*/ |
movl %cr0,%eax # get control word |
movl %cr0,%eax # get control word |
# enable paging & NPX emulation |
# enable paging & NPX |
orl $(CR0_PE|CR0_PG|CR0_NE|CR0_TS|CR0_EM|CR0_MP|CR0_WP|CR0_AM),%eax |
orl $(CR0_PE|CR0_PG|CR0_NE|CR0_TS|CR0_MP|CR0_WP|CR0_AM),%eax |
movl %eax,%cr0 # and page NOW! |
movl %eax,%cr0 # and page NOW! |
|
|
pushl $begin # jump to high mem |
pushl $begin # jump to high mem |
|
|
/* Set up bootstrap stack. */ |
/* Set up bootstrap stack. */ |
leal (PROC0_STK_OFF+KERNBASE)(%esi),%eax |
leal (PROC0_STK_OFF+KERNBASE)(%esi),%eax |
movl %eax,_C_LABEL(lwp0uarea) |
movl %eax,_C_LABEL(lwp0uarea) |
leal (KSTACK_SIZE-FRAMESIZE)(%eax),%esp |
leal (USPACE-FRAMESIZE)(%eax),%esp |
movl %esi,(KSTACK_SIZE+PCB_CR3)(%eax) # pcb->pcb_cr3 |
movl %esi,PCB_CR3(%eax) # pcb->pcb_cr3 |
xorl %ebp,%ebp # mark end of frames |
xorl %ebp,%ebp # mark end of frames |
|
|
#if defined(MULTIBOOT) |
#if defined(MULTIBOOT) |
|
|
movl %esi, _C_LABEL(lwp0uarea) |
movl %esi, _C_LABEL(lwp0uarea) |
|
|
/* Set up bootstrap stack. */ |
/* Set up bootstrap stack. */ |
leal (KSTACK_SIZE-FRAMESIZE)(%eax),%esp |
leal (USPACE-FRAMESIZE)(%eax),%esp |
xorl %ebp,%ebp # mark end of frames |
xorl %ebp,%ebp # mark end of frames |
|
|
addl $USPACE, %esi |
addl $USPACE, %esi |