Commit Graph
100 Commits
Author SHA1 Message Date
harraiken 4e7113a079 Implement HL::Cpu::StartAllProcessors to bootstrap all application processors 2026-05-17 17:33:35 +02:00
harraiken 8080e07281 Fix stack pointer miscalculation caused by adding KERNEL_STACK_SIZE twice 2026-05-17 14:38:44 +02:00
harraiken fc0e1384c4 Fix debug log message 2026-05-17 14:33:01 +02:00
harraiken 9603453334 Implement Application Processor bootstrap function 2026-05-17 14:29:45 +02:00
harraiken 29368a0dd8 Implement string to number conversion functions 2026-05-15 15:02:22 +02:00
harraiken 8ee97ac0ae Add NOX2APIC boot parameter to bypass hardware detection 2026-05-15 12:00:50 +02:00
harraiken 6bbeb657ea Merge branch 'master' into smp 2026-05-15 11:43:45 +02:00
harraiken c824e15cdb Fix stack allocation documentation and remove redundant parameter 2026-05-15 11:42:19 +02:00
harraiken 38b2e7a1ed Read previously identified CPU features from PRCB 2026-05-15 11:33:23 +02:00
harraiken efff262fb5 Replace CPUID queries with cached PRCB feature bits 2026-05-15 09:13:56 +02:00
harraiken 8da6fefdc0 Describe CLOCK and TIMER kernel options 2026-05-14 22:43:22 +02:00
harraiken 14cbd63b01 Remove premature SetRunLevel call from InitializeProcessor before APIC initialization 2026-05-14 21:52:42 +02:00
harraiken 63d18aad1e Add ExtendedFeatureBits field 2026-05-14 21:37:11 +02:00
harraiken ed52d421ea Implement processor feature enumeration mapping 2026-05-14 21:35:43 +02:00
harraiken 6df6a012d2 Partially revert ca4f3acc0e 2026-05-14 21:12:09 +02:00
harraiken ac675b037e Add FeatureBits field to CPU identification structure 2026-05-14 19:28:45 +02:00
harraiken ca4f3acc0e Properly identify CPU vendor 2026-05-14 18:59:00 +02:00
harraiken 5b7761fe7d Expose InitializeProcessorStructures as a public method 2026-05-14 18:10:29 +02:00
harraiken 7a2a27b1b9 Consolidate ProcessorBlock and ProcessorNumber into ProcessorStructures 2026-05-14 18:00:56 +02:00
harraiken 1cff58c106 Refactor processor block initialization and add registration function 2026-05-14 13:15:55 +02:00
harraiken 9185ceade6 Decouple processor block initialization from AllocateProcessorStructures 2026-05-14 11:07:42 +02:00
harraiken 908bc87b06 Add NULL checks to InitializeProcessorStructures and reorder TSS allocation 2026-05-14 11:06:00 +02:00
harraiken 6b852556a5 Replace magic numbers with architectural defines 2026-05-13 22:01:49 +02:00
harraiken ae18468bad Add AP startup assembly trampoline for AMD64 2026-05-13 21:48:42 +02:00
harraiken 42bbdc9b26 Fix AP trampoline stack setup 2026-05-13 21:24:27 +02:00
harraiken b1ecdc3439 Add AP startup assembly trampoline for i686 2026-05-13 20:31:30 +02:00
harraiken fd7e18989d Protect debug print output with spinlock 2026-05-13 14:33:41 +02:00
harraiken 757eac08c6 Refactor APIC IPI dispatching 2026-05-13 11:27:01 +02:00
harraiken 760e58f993 Correct doxygen parameter name 2026-05-13 10:10:03 +02:00
harraiken c8868ead47 Add AllocateRealModeMemory routine for low memory allocations 2026-05-13 10:08:30 +02:00
harraiken 58981e0087 Add MapVirtualAddress to memory manager paging interface 2026-05-13 09:58:13 +02:00
harraiken 06635ed014 Parameterize maximum allocation address in hardware pool and scan memory descriptors in reverse 2026-05-12 19:35:06 +02:00
harraiken 5a92173586 Implement targeted IPI broadcasting using processor block array 2026-05-11 00:07:21 +02:00
harraiken 897d9d4099 Expose timer performance counter and clock rate functions 2026-05-10 23:42:13 +02:00
harraiken 6b14f31107 Enable HPET main counter and disable legacy replacement during hardware detection 2026-05-09 13:13:30 +02:00
harraiken 976eee9ce3 Add HPET and TSC stall execution backends 2026-05-07 20:24:19 +02:00
harraiken 689951cfde Update timer subsystem with multi-backend dispatch table 2026-05-07 19:50:37 +02:00
harraiken 100b58312f Drop unnecessary ULL qualifiers 2026-05-06 20:09:54 +02:00
harraiken c5b0d15830 Zero-initialize register before bitfield assignment 2026-05-06 19:58:17 +02:00
harraiken 8107692d83 Enable allocated APIC interrupt and validate IO APIC mapping 2026-05-06 19:50:54 +02:00
harraiken 3262ad78c1 Move timer initialization 2026-05-06 19:48:05 +02:00
harraiken 85fb08b3d4 Change timer file descriptions 2026-05-06 19:43:06 +02:00
harraiken 0952dd80b2 Export KeSetTimeIncrement 2026-05-06 19:38:36 +02:00
harraiken a3178e94bd Implement clock interrupt handling and time increment configuration 2026-05-06 19:32:00 +02:00
harraiken f7554e0e24 Implement KE::Dispatcher::UpdateRunTime stub 2026-05-05 23:22:55 +02:00
harraiken 27440aefc4 Add TickCount to Kernel Shared Data 2026-05-05 22:47:32 +02:00
harraiken ba85c88544 Export ACPI timer information 2026-05-04 16:02:59 +02:00
harraiken b417f84492 Fix MADT subtable traversal 2026-05-04 15:02:39 +02:00
harraiken 48ef4bcdca Clear input key buffer before read and propagate EFI_STATUS from ReadKeyStroke 2026-05-04 14:09:30 +02:00
harraiken 7a28cf1c0a Change edit menu boot key binding 2026-05-04 13:57:17 +02:00
harraiken 1050ddea8a Implement framebuffer double buffering 2026-05-04 11:51:52 +02:00
harraiken a7151dbc89 Fix boot stack initialization by returning the highest address 2026-05-03 18:49:51 +02:00
harraiken d532303b7f Fix incorrect SystemTime reference in KE::SharedData::GetInterruptTime function 2026-05-03 14:39:14 +02:00
harraiken 7017985682 Register APIC error handler and stub broadcast IPI for uniprocessor 2026-05-03 13:12:29 +02:00
harraiken 7aba8aa4ec Fix ACPI FADT timer masks 2026-05-03 02:04:29 +02:00
harraiken d1eed619a7 Extend KSD with InterruptTime 2026-04-30 13:00:59 +02:00
harraiken 03a9907bee Update parameter name 2026-04-29 13:19:54 +02:00
harraiken 49fde5adbd Add hardware timer definitions for PIT and ACPI PM 2026-04-28 12:28:33 +02:00
harraiken 165e82f78b Fix HPET definitions 2026-04-28 11:01:42 +02:00
harraiken 3ad10b8b07 Add definitions for High Precision Event Timer 2026-04-28 10:48:16 +02:00
harraiken e2e2b05bc6 Integrate systime module to build 2026-04-27 23:11:19 +02:00
harraiken 98733aa62b Implement system time management functions 2026-04-27 23:02:15 +02:00
harraiken 58deafb1d8 Add support for sending broadcast IPIs 2026-04-27 22:11:30 +02:00
harraiken 88d1f6f2ae Implement system interrupt prologue and epilogue functions 2026-04-27 20:22:28 +02:00
harraiken 6a983fe33c Add helper to translate run level to software interrupt vector 2026-04-27 20:17:57 +02:00
harraiken 8d58a7fcc1 Ensure consistent delivery mode for allocated system interrupts 2026-04-27 20:01:45 +02:00
harraiken 13cf7b5fe7 Fix SendSelfIpi to write ICR1/ICR0 sequentially and validate vector in IRR 2026-04-27 20:00:22 +02:00
harraiken 6a46dad9c5 Fix incorrect filename reference 2026-04-26 23:12:41 +02:00
harraiken 534aaba27e Declare compiler intrinsics with proper symbol names 2026-04-26 23:10:42 +02:00
harraiken 119679c996 Mask the APIC Timer 2026-04-26 22:14:07 +02:00
harraiken b1d013977f Add compiler intrinsic support functions for 64-bit arithmetic 2026-04-26 17:50:21 +02:00
harraiken 4d12f7ac01 Implement inverse time conversion functions for Unix and XT epochs 2026-04-25 23:32:07 +02:00
harraiken 439ea891ca Replace lookup-based time logic with direct epoch calculation formulas 2026-04-24 23:27:25 +02:00
harraiken 8ab3ddb8eb Define time constants and refactor time routines to use them 2026-04-24 18:38:07 +02:00
harraiken 4afe678667 Update build configuration 2026-04-24 17:52:12 +02:00
harraiken 3b76146d53 Implement time conversion routines for Unix and XT epoch formats 2026-04-24 17:48:44 +02:00
harraiken 341759a325 Implement Kernel Shared Data management and initialization 2026-04-24 13:58:33 +02:00
harraiken 122bae21a2 Add virtual address definition for KSD 2026-04-24 12:15:19 +02:00
harraiken 5dc782ca24 Allocate and map the Kernel Shared Data page at startup 2026-04-24 12:12:23 +02:00
harraiken f2baa765b4 Use constants for CMOS port selection 2026-04-24 09:55:36 +02:00
harraiken 2dd1fdf869 Implement RTC support 2026-04-24 09:52:07 +02:00
harraiken b1e849a251 Add BCD to decimal conversion macros 2026-04-24 07:26:22 +02:00
harraiken 58010c27f4 Implement CMOS register access functions 2026-04-23 19:13:56 +02:00
harraiken 98f2f449f9 Add wrapper for RDTSCP instruction 2026-04-22 22:58:17 +02:00
harraiken 76ee56c762 Add 'insmod' and 'lsmod' shell commands 2026-04-20 20:26:35 +02:00
harraiken ba41ad8f0b Implement command history and advanced line editing 2026-04-20 20:17:08 +02:00
harraiken a217391338 Register and implement command 2026-04-20 13:19:40 +02:00
harraiken 5824e9d366 Remove unused variables 2026-04-20 13:07:30 +02:00
harraiken 57bd3d505e Avoid modifying command line string during argument count phase 2026-04-20 12:45:50 +02:00
harraiken d6c2dabcbb Fix dangling pointer bug in LoadModule 2026-04-20 12:13:51 +02:00
harraiken 1f733c120c Implement extensible shell interface in the bootloader 2026-04-20 00:15:32 +02:00
harraiken 735ccd96a6 Initialize I/O APIC 2026-04-18 18:15:57 +02:00
harraiken cd4e905054 Add support for I/O APIC controllers and interrupt override handling 2026-04-18 00:04:12 +02:00
harraiken 715419abe7 Introduce ACPI table structures for HPET and IOAPIC 2026-04-17 23:58:24 +02:00
harraiken d37f2e3827 Implement GetKernelParameterValue to parse and extract boot option values 2026-04-13 19:18:04 +02:00
harraiken cec5e8b16b Implement detection of timer capabilities 2026-04-12 23:58:48 +02:00
harraiken a08e07e515 Refactor ACPI table caching to use a static array 2026-04-12 18:16:33 +02:00
harraiken d7f390b236 Harden ACPI initialization and fix MADT traversal for malformed tables 2026-04-12 17:42:15 +02:00
harraiken 55cb12c978 Ensure APIC idle state before sending self-IPI 2026-04-09 23:51:13 +02:00
harraiken 7d8bfa8f0a Implement support for APIC Self-InterProcessor Interrupts (SIPI) 2026-04-09 20:25:55 +02:00