Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/mpboot.s
Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
#endif /* CHECK_POINTS */ | #endif /* CHECK_POINTS */ | ||||
/* | /* | ||||
* the APs enter here from their trampoline code (bootMP, below) | * the APs enter here from their trampoline code (bootMP, below) | ||||
*/ | */ | ||||
.p2align 4 | .p2align 4 | ||||
NON_GPROF_ENTRY(MPentry) | ENTRY(MPentry) | ||||
CHECKPOINT(0x36, 3) | CHECKPOINT(0x36, 3) | ||||
/* | /* | ||||
* Enable features on this processor. We don't support SMP on | * Enable features on this processor. We don't support SMP on | ||||
* CPUs older than a Pentium, so we know that we can use the cpuid | * CPUs older than a Pentium, so we know that we can use the cpuid | ||||
* instruction. | * instruction. | ||||
*/ | */ | ||||
movl $1,%eax | movl $1,%eax | ||||
cpuid /* Retrieve features */ | cpuid /* Retrieve features */ | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
* 1Meg. -jackv | * 1Meg. -jackv | ||||
*/ | */ | ||||
.data | .data | ||||
ALIGN_DATA /* just to be sure */ | ALIGN_DATA /* just to be sure */ | ||||
BOOTMP1: | BOOTMP1: | ||||
NON_GPROF_ENTRY(bootMP) | ENTRY(bootMP) | ||||
.code16 | .code16 | ||||
cli | cli | ||||
CHECKPOINT(0x34, 1) | CHECKPOINT(0x34, 1) | ||||
/* First guarantee a 'clean slate' */ | /* First guarantee a 'clean slate' */ | ||||
xorl %eax, %eax | xorl %eax, %eax | ||||
movl %eax, %ebx | movl %eax, %ebx | ||||
movl %eax, %ecx | movl %eax, %ecx | ||||
movl %eax, %edx | movl %eax, %edx | ||||
▲ Show 20 Lines • Show All 130 Lines • Show Last 20 Lines |