From 4fced181383a87389204b32115b587f77a18eca9 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 28 Oct 2022 08:38:18 +0300 Subject: [PATCH] Do not divide the APIC if we are debugging --- .../amd64/cpu/AdvancedProgrammableInterruptController.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp b/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp index 3249413..ad7c1f4 100644 --- a/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp +++ b/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp @@ -300,7 +300,10 @@ namespace APIC LVTTimer timer = {.raw = 0}; timer.Vector = Vector; timer.TimerMode = 0; - this->lapic->Write(APIC_TDCR, DivideBy128); + if (strcmp(CPU::Hypervisor(), x86_CPUID_VENDOR_TCG) != 0) + this->lapic->Write(APIC_TDCR, DivideBy128); + else + this->lapic->Write(APIC_TDCR, DivideBy16); this->lapic->Write(APIC_TICR, Ticks * Miliseconds); this->lapic->Write(APIC_TIMER, timer.raw); }