BOOT_CODE bool_t init_cpu( bool_t mask_legacy_irqs ) { /* initialise CPU's descriptor table registers (GDTR, IDTR, LDTR, TR) */ init_dtrs(); /* initialise MSRs (needs an initialised TSS) */ init_sysenter_msrs(); /* setup additional PAT MSR */ if (!init_pat_msr()) { return false; } /* initialise floating-point unit */ Arch_initFpu(); /* initialise local APIC */ if (!apic_init(mask_legacy_irqs)) { return false; } #ifdef CONFIG_DEBUG_DISABLE_PREFETCHERS if (!disablePrefetchers()) { return false; } #endif return true; }
BOOT_CODE bool_t init_node_cpu( uint32_t apic_khz, bool_t mask_legacy_irqs ) { /* initialise CPU's descriptor table registers (GDTR, IDTR, LDTR, TR) */ init_dtrs(); /* initialise MSRs (needs an initialised TSS) */ init_sysenter_msrs(); /* setup additional PAT MSR */ if (!init_pat_msr()) { return false; } /* initialise floating-point unit */ Arch_initFpu(); /* initialise local APIC */ if (!apic_init(apic_khz, mask_legacy_irqs)) { return false; } return true; }
BOOT_CODE bool_t init_cpu( bool_t mask_legacy_irqs ) { /* initialise virtual-memory-related data structures */ if (!init_vm_state()) { return false; } /* initialise CPU's descriptor table registers (GDTR, IDTR, LDTR, TR) */ init_dtrs(); if (config_set(CONFIG_SYSENTER)) { /* initialise MSRs (needs an initialised TSS) */ init_sysenter_msrs(); } else if (config_set(CONFIG_SYSCALL)) { init_syscall_msrs(); } else { return false; } /* setup additional PAT MSR */ if (!init_pat_msr()) { return false; } #ifdef CONFIG_HARDWARE_DEBUG_API /* Initialize hardware breakpoints */ Arch_initHardwareBreakpoints(); #endif /* initialise floating-point unit */ if (!Arch_initFpu()) { return false; } /* initialise local APIC */ if (!apic_init(mask_legacy_irqs)) { return false; } #ifdef CONFIG_DEBUG_DISABLE_PREFETCHERS if (!disablePrefetchers()) { return false; } #endif #ifdef CONFIG_VTX /* initialise Intel VT-x extensions */ if (!vtx_init()) { return false; } #endif return true; }