Commit Graph

158 Commits

Author SHA1 Message Date
24c9ae321c Update doxygen comments for AllocateSystemInterrupt and IOAPIC lookup routines 2026-05-18 20:14:46 +02:00
4e7113a079 Implement HL::Cpu::StartAllProcessors to bootstrap all application processors 2026-05-17 17:33:35 +02:00
8ee97ac0ae Add NOX2APIC boot parameter to bypass hardware detection 2026-05-15 12:00:50 +02:00
38b2e7a1ed Read previously identified CPU features from PRCB 2026-05-15 11:33:23 +02:00
efff262fb5 Replace CPUID queries with cached PRCB feature bits 2026-05-15 09:13:56 +02:00
757eac08c6 Refactor APIC IPI dispatching 2026-05-13 11:27:01 +02:00
06635ed014 Parameterize maximum allocation address in hardware pool and scan memory descriptors in reverse 2026-05-12 19:35:06 +02:00
5a92173586 Implement targeted IPI broadcasting using processor block array 2026-05-11 00:07:21 +02:00
897d9d4099 Expose timer performance counter and clock rate functions 2026-05-10 23:42:13 +02:00
6b14f31107 Enable HPET main counter and disable legacy replacement during hardware detection 2026-05-09 13:13:30 +02:00
976eee9ce3 Add HPET and TSC stall execution backends 2026-05-07 20:24:19 +02:00
689951cfde Update timer subsystem with multi-backend dispatch table 2026-05-07 19:50:37 +02:00
c5b0d15830 Zero-initialize register before bitfield assignment 2026-05-06 19:58:17 +02:00
8107692d83 Enable allocated APIC interrupt and validate IO APIC mapping 2026-05-06 19:50:54 +02:00
3262ad78c1 Move timer initialization 2026-05-06 19:48:05 +02:00
85fb08b3d4 Change timer file descriptions 2026-05-06 19:43:06 +02:00
ba85c88544 Export ACPI timer information 2026-05-04 16:02:59 +02:00
b417f84492 Fix MADT subtable traversal 2026-05-04 15:02:39 +02:00
1050ddea8a Implement framebuffer double buffering 2026-05-04 11:51:52 +02:00
7017985682 Register APIC error handler and stub broadcast IPI for uniprocessor 2026-05-03 13:12:29 +02:00
58deafb1d8 Add support for sending broadcast IPIs 2026-04-27 22:11:30 +02:00
88d1f6f2ae Implement system interrupt prologue and epilogue functions 2026-04-27 20:22:28 +02:00
6a983fe33c Add helper to translate run level to software interrupt vector 2026-04-27 20:17:57 +02:00
8d58a7fcc1 Ensure consistent delivery mode for allocated system interrupts 2026-04-27 20:01:45 +02:00
13cf7b5fe7 Fix SendSelfIpi to write ICR1/ICR0 sequentially and validate vector in IRR 2026-04-27 20:00:22 +02:00
119679c996 Mask the APIC Timer 2026-04-26 22:14:07 +02:00
f2baa765b4 Use constants for CMOS port selection 2026-04-24 09:55:36 +02:00
2dd1fdf869 Implement RTC support 2026-04-24 09:52:07 +02:00
58010c27f4 Implement CMOS register access functions 2026-04-23 19:13:56 +02:00
735ccd96a6 Initialize I/O APIC 2026-04-18 18:15:57 +02:00
cd4e905054 Add support for I/O APIC controllers and interrupt override handling 2026-04-18 00:04:12 +02:00
cec5e8b16b Implement detection of timer capabilities 2026-04-12 23:58:48 +02:00
a08e07e515 Refactor ACPI table caching to use a static array 2026-04-12 18:16:33 +02:00
d7f390b236 Harden ACPI initialization and fix MADT traversal for malformed tables 2026-04-12 17:42:15 +02:00
55cb12c978 Ensure APIC idle state before sending self-IPI 2026-04-09 23:51:13 +02:00
7d8bfa8f0a Implement support for APIC Self-InterProcessor Interrupts (SIPI) 2026-04-09 20:25:55 +02:00
d00e96baa4 Invoke APIC timer initialization 2026-04-09 16:17:08 +02:00
17f044cb3f Apply consistent coding style 2026-04-09 11:42:41 +02:00
1fa6e90439 Hook up profile interrupt handler 2026-04-08 23:16:03 +02:00
53c5946c04 Clean up APIC timer initialization 2026-04-08 20:23:37 +02:00
9ffb03217a Implement software interrupt dispatch table and secondary handler lookup 2026-04-08 20:13:35 +02:00
f1476912f3 Add definitions for PIT ports and APIC timer divisor configuration 2026-04-08 07:21:40 +02:00
adb591f8c7 Implement APIC timer initialization and calibration 2026-04-08 00:15:03 +02:00
2a24ce9a35 Refactor spurious interrupt handling to use assembly routine 2026-04-02 13:14:49 +02:00
a64aa83eb8 Provide implementation for HL::Irq 2026-03-27 13:00:13 +01:00
64b5de98c8 Move IRQ handling from kernel executive to hardware layer 2026-03-27 12:00:09 +01:00
9479f3d364 Implement APIC presence check and panic if unsupported 2026-03-25 22:52:58 +01:00
e7425de523 Drop C wrappers and switch to C++ API 2025-09-19 12:56:06 +02:00
b2c8fa3e62 Use new C++ API 2025-09-19 10:49:07 +02:00
fabf3a3a5e Replace all occurrences of NULL with NULLPTR for unified C and C++ null pointer handling 2025-09-16 15:59:56 +02:00