Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/amd64/initcpu.c
Show First 20 Lines • Show All 217 Lines • ▼ Show 20 Lines | initializecpu(void) | ||||
if (!IS_BSP() && (cpu_stdext_feature & CPUID_STDEXT_SMEP)) | if (!IS_BSP() && (cpu_stdext_feature & CPUID_STDEXT_SMEP)) | ||||
cr4 |= CR4_SMEP; | cr4 |= CR4_SMEP; | ||||
load_cr4(cr4); | load_cr4(cr4); | ||||
if ((amd_feature & AMDID_NX) != 0) { | if ((amd_feature & AMDID_NX) != 0) { | ||||
msr = rdmsr(MSR_EFER) | EFER_NXE; | msr = rdmsr(MSR_EFER) | EFER_NXE; | ||||
wrmsr(MSR_EFER, msr); | wrmsr(MSR_EFER, msr); | ||||
pg_nx = PG_NX; | pg_nx = PG_NX; | ||||
} | } | ||||
hw_ibrs_recalculate(); | |||||
switch (cpu_vendor_id) { | switch (cpu_vendor_id) { | ||||
case CPU_VENDOR_AMD: | case CPU_VENDOR_AMD: | ||||
init_amd(); | init_amd(); | ||||
break; | break; | ||||
case CPU_VENDOR_CENTAUR: | case CPU_VENDOR_CENTAUR: | ||||
init_via(); | init_via(); | ||||
break; | break; | ||||
} | } | ||||
Show All 34 Lines |