| version 1.72, 2008/05/03 05:56:44 |
version 1.73, 2008/05/11 14:44:54 |
| Line 204 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| Line 204 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| .data |
.data |
| |
|
| .globl _C_LABEL(cpu) |
.globl _C_LABEL(cpu) |
| |
.globl _C_LABEL(cpuid_level) |
| .globl _C_LABEL(esym) |
.globl _C_LABEL(esym) |
| .globl _C_LABEL(eblob) |
.globl _C_LABEL(eblob) |
| .globl _C_LABEL(atdevbase) |
.globl _C_LABEL(atdevbase) |
| Line 236 _C_LABEL(lapic_tpr): |
|
| Line 237 _C_LABEL(lapic_tpr): |
|
| #endif |
#endif |
| |
|
| _C_LABEL(cpu): .long 0 # are we 80486, Pentium, or.. |
_C_LABEL(cpu): .long 0 # are we 80486, Pentium, or.. |
| |
_C_LABEL(cpuid_level): .long 0 |
| _C_LABEL(atdevbase): .long 0 # location of start of iomem in virtual |
_C_LABEL(atdevbase): .long 0 # location of start of iomem in virtual |
| _C_LABEL(proc0uarea): .long 0 |
_C_LABEL(proc0uarea): .long 0 |
| _C_LABEL(PDPpaddr): .long 0 # paddr of PDP, for libkvm |
_C_LABEL(PDPpaddr): .long 0 # paddr of PDP, for libkvm |
| Line 309 _C_LABEL(Multiboot_Header): |
|
| Line 311 _C_LABEL(Multiboot_Header): |
|
| movw %ax,%fs |
movw %ax,%fs |
| movw %ax,%gs |
movw %ax,%gs |
| decl %eax |
decl %eax |
| movl %eax,RELOC(cpu_info_primary)+CPU_INFO_LEVEL |
movl %eax,RELOC(cpuid_level) |
| |
|
| /* Find out our CPU type. */ |
/* Find out our CPU type. */ |
| |
|
|
|
| try586: /* Use the `cpuid' instruction. */ |
try586: /* Use the `cpuid' instruction. */ |
| xorl %eax,%eax |
xorl %eax,%eax |
| cpuid |
cpuid |
| movl %eax,RELOC(cpu_info_primary)+CPU_INFO_LEVEL |
movl %eax,RELOC(cpuid_level) |
| |
|
| 2: |
2: |
| /* |
/* |
|
|
| movw %ax,%fs |
movw %ax,%fs |
| movw %ax,%gs |
movw %ax,%gs |
| decl %eax |
decl %eax |
| movl %eax,RELOC(cpu_info_primary)+CPU_INFO_LEVEL |
movl %eax,RELOC(cpuid_level) |
| |
|
| xorl %eax,%eax |
xorl %eax,%eax |
| cpuid |
cpuid |
| movl %eax,RELOC(cpu_info_primary)+CPU_INFO_LEVEL |
movl %eax,RELOC(cpuid_level) |
| |
|
| call xen_pmap_bootstrap |
call xen_pmap_bootstrap |
| /* |
/* |