From 7bfa36c2215e13097bb5ddcb15d2a8a476102b55 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 18 Apr 2025 00:16:56 +0200 Subject: dev, kernel: important patches. Signed-off-by: Amlal El Mahrouss --- dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 2 +- dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc | 2 -- dev/kernel/HALKit/AMD64/HalKernelMain.cc | 14 +++++++------- dev/kernel/HALKit/AMD64/Processor.h | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) (limited to 'dev/kernel/HALKit') diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc index 94c1ae73..3b98e9e8 100644 --- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc @@ -191,7 +191,7 @@ namespace Kernel::HAL /// @brief Fetch and enable SMP scheduler. /// @param vendor_ptr SMP containing structure. /***********************************************************************************/ - Void mp_get_cores(VoidPtr vendor_ptr) noexcept + Void mp_init_cores(VoidPtr vendor_ptr) noexcept { if (!vendor_ptr) return; diff --git a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc index ddfc49b6..c0c7dfcf 100644 --- a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc +++ b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc @@ -109,8 +109,6 @@ namespace Kernel::HAL hal_load_idt(idt); - NeFS::fs_init_nefs(); - Detail::hal_enable_pit(kPITTickForScheduler); rt_sti(); diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc index 60df6a12..b716279d 100644 --- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc @@ -43,14 +43,14 @@ EXTERN_C Int32 hal_init_platform( return kEfiFail; } + kHandoverHeader = handover_hdr; + FB::fb_clear_video(); (Void)(Kernel::kout << "Welcome to NeKernel.\r"); fw_init_efi((EfiSystemTable*)handover_hdr->f_FirmwareCustomTables[1]); - Boot::ExitBootServices(handover_hdr->f_EFIImageKey, handover_hdr->f_EFIImage); - - kHandoverHeader = handover_hdr; + Boot::ExitBootServices(handover_hdr->f_HardwareTables.f_ImageKey, handover_hdr->f_HardwareTables.f_ImageHandle); hal_init_scheduler_team(); @@ -83,10 +83,6 @@ EXTERN_C Int32 hal_init_platform( gdt_reg.Base = reinterpret_cast(kGDTArray); gdt_reg.Limit = (sizeof(Kernel::HAL::Detail::NE_GDT_ENTRY) * kGDTEntriesCount) - 1; - Kernel::NeFS::fs_init_nefs(); - - Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); - //! GDT will load hal_read_init after it successfully loads the segments. Kernel::HAL::GDTLoader gdt_loader; gdt_loader.Load(gdt_reg); @@ -96,6 +92,10 @@ EXTERN_C Int32 hal_init_platform( EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { + Kernel::NeFS::fs_init_nefs(); + + Kernel::HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); + Kernel::HAL::Register64 idt_reg; idt_reg.Base = (Kernel::UIntPtr)kInterruptVectorTable; diff --git a/dev/kernel/HALKit/AMD64/Processor.h b/dev/kernel/HALKit/AMD64/Processor.h index a5bc82c7..b813e1d9 100644 --- a/dev/kernel/HALKit/AMD64/Processor.h +++ b/dev/kernel/HALKit/AMD64/Processor.h @@ -181,7 +181,7 @@ namespace Kernel::HAL /// @brief Fetch and enable SMP scheduler. /// @param vendor_ptr SMP containing structure. /***********************************************************************************/ - Void mp_get_cores(VoidPtr vendor_ptr) noexcept; + Void mp_init_cores(VoidPtr vendor_ptr) noexcept; /***********************************************************************************/ /// @brief Do a cpuid to check if MSR exists on CPU. -- cgit v1.2.3