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() private void initialize_cpu()
{ {
/* 1. Enable SSE. */ /* Enable SSE. */
/* 1.a. Turn off CR0.EM and turn on CR0.MP. */ /* Turn off CR0.EM and turn on CR0.MP. */
write_cr0((read_cr0() & ~CR0_EM) | 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); write_cr4(read_cr4() | CR4_OSFXSR | CR4_OSXMMEXCPT);
/* 2. Enable OSXSAVE. */
/* Enable OSXSAVE. */
write_cr4(read_cr4() | CR4_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) 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(); m_pt_base = allocate_pt();
/* Identity map all physical RAM. */ /* Identity map all physical RAM. */
map_range(0u, map_range(0u,