From dd643d1266229e5b7e81ae9ace988921e9c2c3b0 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 19 Jun 2024 19:08:17 +0200 Subject: unstable: AMD64 fixes, finish AMD64 HAL after release of phone. Signed-off-by: Amlal El Mahrouss --- Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp') diff --git a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp index 4e9d2ff6..c8eb094c 100644 --- a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp +++ b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp @@ -163,7 +163,8 @@ namespace NewOS::HAL EXTERN_C Void hal_apic_acknowledge_cont(Void) { - _hal_spin_core(); + kcout << "newoskrnl: stopping core...\r"; + ke_stop(RUNTIME_CHECK_BOOTSTRAP); } EXTERN_C StackFramePtr _hal_leak_current_context(Void) @@ -211,12 +212,12 @@ namespace NewOS::HAL for (SizeT coreAt = cStartAt; coreAt < cMaxProbableCores; ++coreAt) { - if (madt->MadtRecords[coreAt].Flags != kThreadBoot) // if local apic. + if (madt->MadtRecords[coreAt].Flags < kThreadBoot) // if local apic. { MadtType::MadtAddress& madtRecord = madt->MadtRecords[coreAt]; // then register as a core for scheduler. - kcout << "newoskrnl: Register Local APIC.\r"; + kcout << "newoskrnl: Register APIC.\r"; kApicMadtAddresses[kApicMadtAddressesCount].fAddress = madtRecord.Address; kApicMadtAddresses[kApicMadtAddressesCount].fKind = madt->MadtRecords[coreAt].Flags; -- cgit v1.2.3