Add initialize_cpu()
This commit is contained in:
parent
d7b12c7896
commit
64190b04cb
@ -33,12 +33,26 @@ private __gshared HulkHeader hulk_header = {
|
||||
HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, /* virt_fb_buffer */
|
||||
};
|
||||
|
||||
private void initialize_cpu()
|
||||
{
|
||||
/* 1. Enable SSE. */
|
||||
/* 1.a. 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. */
|
||||
write_cr4(read_cr4() | CR4_OSFXSR | CR4_OSXMMEXCPT);
|
||||
/* 2. Enable OSXSAVE. */
|
||||
// write_cr4(read_cr4() | CR4_OSXSAVE);
|
||||
/* 3. Enable AVX. */
|
||||
// xsetbv(0u, xgetbv(0u) | XCR0_X87 | XCR0_SSE | XCR0_AVX);
|
||||
}
|
||||
|
||||
/**
|
||||
* HULK entry point.
|
||||
*/
|
||||
void hulk_start()
|
||||
{
|
||||
cli();
|
||||
initialize_cpu();
|
||||
gdt.initialize();
|
||||
idt.initialize();
|
||||
fb.initialize(cast(uint *)HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, hulk_header.bootinfo.fb.width, hulk_header.bootinfo.fb.height, hulk_header.bootinfo.fb.stride);
|
||||
|
Loading…
x
Reference in New Issue
Block a user