Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/amd64/mp_machdep.c
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
#include <machine/cpufunc.h> | #include <machine/cpufunc.h> | ||||
#include <x86/mca.h> | #include <x86/mca.h> | ||||
#include <machine/md_var.h> | #include <machine/md_var.h> | ||||
#include <machine/pcb.h> | #include <machine/pcb.h> | ||||
#include <machine/psl.h> | #include <machine/psl.h> | ||||
#include <machine/smp.h> | #include <machine/smp.h> | ||||
#include <machine/specialreg.h> | #include <machine/specialreg.h> | ||||
#include <machine/tss.h> | #include <machine/tss.h> | ||||
#include <x86/ucode.h> | |||||
#include <machine/cpu.h> | #include <machine/cpu.h> | ||||
#include <x86/init.h> | #include <x86/init.h> | ||||
#define WARMBOOT_TARGET 0 | #define WARMBOOT_TARGET 0 | ||||
#define WARMBOOT_OFF (KERNBASE + 0x0467) | #define WARMBOOT_OFF (KERNBASE + 0x0467) | ||||
#define WARMBOOT_SEG (KERNBASE + 0x0469) | #define WARMBOOT_SEG (KERNBASE + 0x0469) | ||||
#define CMOS_REG (0x70) | #define CMOS_REG (0x70) | ||||
▲ Show 20 Lines • Show All 154 Lines • ▼ Show 20 Lines | init_secondary(void) | ||||
struct pcpu *pc; | struct pcpu *pc; | ||||
struct nmi_pcpu *np; | struct nmi_pcpu *np; | ||||
u_int64_t cr0; | u_int64_t cr0; | ||||
int cpu, gsel_tss, x; | int cpu, gsel_tss, x; | ||||
struct region_descriptor ap_gdt; | struct region_descriptor ap_gdt; | ||||
/* Set by the startup code for us to use */ | /* Set by the startup code for us to use */ | ||||
cpu = bootAP; | cpu = bootAP; | ||||
/* Update microcode before doing anything else. */ | |||||
ucode_load_ap(cpu); | |||||
/* Init tss */ | /* Init tss */ | ||||
common_tss[cpu] = common_tss[0]; | common_tss[cpu] = common_tss[0]; | ||||
common_tss[cpu].tss_iobase = sizeof(struct amd64tss) + | common_tss[cpu].tss_iobase = sizeof(struct amd64tss) + | ||||
IOPERM_BITMAP_SIZE; | IOPERM_BITMAP_SIZE; | ||||
common_tss[cpu].tss_ist1 = (long)&doublefault_stack[PAGE_SIZE]; | common_tss[cpu].tss_ist1 = (long)&doublefault_stack[PAGE_SIZE]; | ||||
/* The NMI stack runs on IST2. */ | /* The NMI stack runs on IST2. */ | ||||
▲ Show 20 Lines • Show All 424 Lines • Show Last 20 Lines |