Move EFER initialization to initialize_cpu()

This commit is contained in:
Josh Holtrop 2022-11-05 22:49:57 -04:00
parent d357aada75
commit b3fb599b25
2 changed files with 8 additions and 6 deletions

View File

@ -35,13 +35,17 @@ private __gshared HulkHeader hulk_header = {
private void initialize_cpu()
{
/* 1. Enable SSE. */
/* 1.a. Turn off CR0.EM and turn on CR0.MP. */
/* Enable SSE. */
/* Turn off CR0.EM and turn on CR0.MP. */
write_cr0((read_cr0() & ~CR0_EM) | CR0_MP);
/* 1.b. Set CR4.OSFXSR and CR4.OSXMMEXCPT. */
/* Set CR4.OSFXSR and CR4.OSXMMEXCPT. */
write_cr4(read_cr4() | CR4_OSFXSR | CR4_OSXMMEXCPT);
/* 2. Enable OSXSAVE. */
/* Enable OSXSAVE. */
write_cr4(read_cr4() | CR4_OSXSAVE);
/* Turn on NXE (no execute enable) flag in the EFER MSR. */
wrmsr(MSR_EFER, rdmsr(MSR_EFER) | EFER_NXE);
}
/**

View File

@ -33,8 +33,6 @@ struct hurl
*/
public static void initialize(HulkHeader * header)
{
/* Turn on NXE (no execute enable) flag in the EFER MSR. */
wrmsr(MSR_EFER, rdmsr(MSR_EFER) | EFER_NXE);
m_pt_base = allocate_pt();
/* Identity map all physical RAM. */
map_range(0u,