HPET is enabled, but the interrupt handler is called once
Posted: Wed Oct 09, 2024 2:07 am
Hello, everyone!
I recently finished with ACPI parsing and successfully got LAPIC, IO APIC addresses and now trying to get HPET or PIT working (if HPET is not available). However, despite spending several days debugging and re-reading the wiki articles several times, I still can't get either timer to work. When running from HPET, the interrupt is called once and then fails. When using PIT, the handler is not called at all.
My guess is that the problem is probably either in how the IRQ is routed through the APIC IO, or in acknowledgement
Here is my code for this part of operating system:
ACPI: header, source
Timer: source
PS in the given links not all the content is indicated, as the files are quite large and I have given the necessary parts for easier reading
I recently finished with ACPI parsing and successfully got LAPIC, IO APIC addresses and now trying to get HPET or PIT working (if HPET is not available). However, despite spending several days debugging and re-reading the wiki articles several times, I still can't get either timer to work. When running from HPET, the interrupt is called once and then fails. When using PIT, the handler is not called at all.
My guess is that the problem is probably either in how the IRQ is routed through the APIC IO, or in acknowledgement
Here is my code for this part of operating system:
ACPI: header, source
Timer: source
PS in the given links not all the content is indicated, as the files are quite large and I have given the necessary parts for easier reading