Commit Graph

  • 70d1295919 Do not support non-PAE systems belliash 2024-05-24 23:47:29 +02:00
  • 03ba3b5583 Add missing forward references for APIC related structures belliash 2024-05-24 23:41:27 +02:00
  • 94a40501d4 Mask APIC ICR0 and disable APIC interrupts for initialization time by raising APIC TPR belliash 2024-05-24 23:39:06 +02:00
  • b4588d5b4c Make ExectOS only run on processors which support PAE belliash 2024-05-24 16:30:39 +02:00
  • 5221db2e63 Rename LOADER_MEMORY_MAPPING structure to more meaningful LOADER_MEMORY_DESCRIPTOR belliash 2024-05-23 19:00:50 +02:00
  • 143803aad9 PPE needs PAE on i686 belliash 2024-05-22 23:09:30 +02:00
  • edbc2cc045 Initialize architecture specific hardware extensions belliash 2024-05-22 22:53:29 +02:00
  • 609538b9be Implement MmpGetPdeAddress() and MmpGetPteAddress() routines for i686 architecture as well as MmpMemoryExtensionEnabled() for checking PAE/LA57 support belliash 2024-05-22 22:47:28 +02:00
  • 4db5425238 Add PHYSICAL_ADDRESS type definition belliash 2024-05-22 18:52:57 +02:00
  • 03727a61d3 Implement hardware layer pool memory management belliash 2024-05-22 18:51:09 +02:00
  • 28903e0c10 Add missing forward reference for AcGetAcpiTable() routine belliash 2024-05-20 15:34:49 +02:00
  • 500498508e Rename PACK definition belliash 2024-05-20 15:34:15 +02:00
  • ac33b86c3d Implement AcGetAcpiTable() routine belliash 2024-05-19 23:45:28 +02:00
  • 4931f1b9a3 Cleanup loader information block after switching to system resources belliash 2024-05-18 17:32:56 +02:00
  • c17f6a95d4 Use relative path in debug output belliash 2024-05-18 17:30:11 +02:00
  • 34cc81c446 Provide framebuffer information via system resource belliash 2024-05-18 17:06:44 +02:00
  • 2103b2dafd Make sure frame buffer is initialized before drawing belliash 2024-05-18 16:57:38 +02:00
  • d2014a5e82 Use HlpRGBColor() internally belliash 2024-05-17 23:29:03 +02:00
  • 811b173387 Re-enable interrupts only if they were enabled previously belliash 2024-05-17 23:24:04 +02:00
  • 740df726e9 Implement ArInterruptsEnabled() routine belliash 2024-05-17 23:19:25 +02:00
  • 5591e1b377 Fix ArGetCpuFlags() routine belliash 2024-05-17 23:16:16 +02:00
  • 41bc673694 Initialize framebuffer device based on a system resource provided by boot loader belliash 2024-05-17 22:37:42 +02:00
  • 8a15d46198 Initialize system resource as soon as possible belliash 2024-05-17 22:31:29 +02:00
  • 1e2efce26a Add a system resources list to the initialization block belliash 2024-05-16 23:20:57 +02:00
  • 74c1b03a6b Implement a system resources management routines belliash 2024-05-16 23:08:59 +02:00
  • 058649036f Take care about blink first, otherwise BlPhysicalListToVirtual() fails to properly map single-element linked list belliash 2024-05-16 22:17:40 +02:00
  • f74a5521ba Update KPROCESS and KTHREAD structure definitions belliash 2024-05-14 19:44:10 +02:00
  • 9f1a4f0ced Compose the AMD family and model IDs according to the AMD CPUID manual, section 2 belliash 2024-05-14 19:39:07 +02:00
  • 2a8cc7397e Implement ArGetCpuFlags() routine belliash 2024-05-14 16:26:02 +02:00
  • efef3cb80d Cleanup EFLAGS related definitions belliash 2024-05-14 16:22:10 +02:00
  • 01d127f49e Consider not initialized list as empty, what prevents page faults belliash 2024-05-14 15:53:21 +02:00
  • 60a9e4b534 Rename source file with fb-related stuff, fix build belliash 2024-05-13 15:59:24 +02:00
  • 086d9ed7e2 Rename source file with fb-related stuff belliash 2024-05-13 15:55:39 +02:00
  • 78424385fc Convert RGB colors to FrameBuffer format belliash 2024-05-13 08:51:27 +02:00
  • e311cad8f7 Allow to clear framebuffer screen with any, custom background color belliash 2024-05-12 22:43:06 +02:00
  • c576f7f8f2 Provide pixel information to the kernel belliash 2024-05-12 22:28:06 +02:00
  • 615a1457bf Fixes to FbpGetPixelInformation() and FbpGetColorMask() routines belliash 2024-05-12 22:20:22 +02:00
  • 3d08be4fac Refactor kernel startup code belliash 2024-05-12 09:06:24 +02:00
  • eeeb9d6ed7 Update PoInitializeProcessorControlBlock() routine and corresponding structures belliash 2024-05-09 22:12:50 +02:00
  • c34b6ff6c1 Take CPU number from processor block belliash 2024-05-08 21:59:18 +02:00
  • 38b0b2ac7d Use correct stack when using preallocated processor structures belliash 2024-05-08 15:57:24 +02:00
  • 3c3a756771 Allow to initialize CPU with allocated processor structures belliash 2024-05-08 00:02:47 +02:00
  • fb099a1988 Preallocate buffer for all supported CPUs belliash 2024-05-07 23:47:58 +02:00
  • b65ff2a767 Implement MmAllocateProcessorStructures() routine as a temporary hack to get a buffer for AP initialization belliash 2024-05-07 23:30:11 +02:00
  • 8d6d27651c Implement KeGetCurrentProcessorNumber() routine belliash 2024-05-07 18:52:43 +02:00
  • f66e9aea9e Store CPU number and mask interrupts in processor block belliash 2024-05-07 16:21:38 +02:00
  • 276eb77862 Update KPROCESSOR_BLOCK structure belliash 2024-05-07 16:20:40 +02:00
  • ac0b8ab36a Allow to specify CPU number when initializing (A)PIC belliash 2024-05-07 16:16:49 +02:00
  • 2c384d780f Fix storing CPU vendor name in PRCB belliash 2024-05-06 20:01:19 +02:00
  • 243aacc9c1 Cleanup thread context initialization code belliash 2024-05-06 16:57:29 +02:00
  • cf0d23b6fe Correct a typo causing page fault during int handling after switching to new kernel stack belliash 2024-05-06 16:47:12 +02:00
  • e4155ee008 Lower runlevel to APC before initializing idle process belliash 2024-05-05 21:48:58 +02:00
  • c98ad3862b Use kernel boot stack for the idle thread belliash 2024-05-05 21:47:48 +02:00
  • 07d7e06b2b Flush keyboard buffer out of any keystrokes before waiting for user input belliash 2024-05-05 15:29:20 +02:00
  • 40e0dd8c5e Mask LVTERR first to prevent local APIC errors belliash 2024-05-05 15:24:17 +02:00
  • 5a013e3ab5 Properly free memory after reading a file belliash 2024-04-30 12:27:27 +02:00
  • e86313603a Correct path to cmake file belliash 2024-04-30 12:19:38 +02:00
  • 7a62ce3feb Enable Bochs-based emulation belliash 2024-04-30 12:16:19 +02:00
  • ecf62ff231 Add OVMF firmware and VGA Bios suitable for use with Bochs belliash 2024-04-30 11:57:35 +02:00
  • 99ff358287 Don't mess with input string belliash 2024-04-30 10:31:17 +02:00
  • c4d5b5bb25 Truncate memory descriptor to 4GB only with PML2 belliash 2024-04-29 23:59:17 +02:00
  • 763bade115 Use correct string formatting when printing page mapping belliash 2024-04-29 23:57:09 +02:00
  • 0756eb9b29 Allocate memory before copying a buffer belliash 2024-04-29 22:39:32 +02:00
  • ab618f95b9 Use dedicated GUID for DUMMYOS boot protocol belliash 2024-04-29 13:48:01 +02:00
  • a4bb5a8ecc Correct formatting belliash 2024-04-29 12:35:32 +02:00
  • 170b11f7a2 Change OS boot identifier, to be able to load both 'dummy' and 'xtos' modules at the same time belliash 2024-04-29 12:31:18 +02:00
  • a6b8f97fbb Remove empty line belliash 2024-04-29 08:40:07 +02:00
  • 6b8184aa04 Fix code formatting belliash 2024-04-29 08:38:45 +02:00
  • e80927c5d3 Fix undefined behavior and NULL pointer in boot loader OS list renderer belliash 2024-04-27 00:42:25 +02:00
  • 22693a48d3 Rework trap handling assembly code belliash 2024-04-23 15:07:08 +02:00
  • a36c02fde8 Use common name for EFLAGS and RFLAGS, regardless the CPU architecture belliash 2024-04-21 22:35:06 +02:00
  • 30a2cb9849 Update timers support belliash 2024-04-21 13:57:55 +02:00
  • 331c5bfeda Rework initial timer support belliash 2024-04-20 23:15:57 +02:00
  • 12ce7aae3f Correct formatting belliash 2024-04-19 23:59:21 +02:00
  • 9f2279f28f Use common way of setting initial runlevel across architectures belliash 2024-04-19 23:56:33 +02:00
  • 5539d98572 Raise to HIGH runlevel before switching the stack belliash 2024-04-19 23:55:26 +02:00
  • 3aa0413756 Use common routine to set runlevel belliash 2024-04-19 23:52:21 +02:00
  • 28c89986fb Tweaks to AMD64 architecture support belliash 2024-04-19 23:37:39 +02:00
  • b30d15719c Temporarily comment out thread code related to trap frame belliash 2024-04-19 16:59:57 +02:00
  • 51df6c3acb Update trap handler to allow access to the registers belliash 2024-04-19 16:54:55 +02:00
  • 92ee74b494 Rework trap handling to access registers belliash 2024-04-19 16:49:40 +02:00
  • cf408519ad Initialize AMD64 segments properly belliash 2024-04-17 20:02:27 +02:00
  • 8aa33874ff Initialize CS segment on i686 architecture belliash 2024-04-17 18:27:57 +02:00
  • 7011d456e9 Fix loading CS segment for AMD64 architecture belliash 2024-04-17 16:48:18 +02:00
  • b31aa82872 Fix loading CS segment for i686 architecture belliash 2024-04-17 16:46:03 +02:00
  • 9d4751abee Remove useless assembler options belliash 2024-04-14 11:37:11 +02:00
  • ffda2fd8a9 Update toolchain settings belliash 2024-04-14 11:18:31 +02:00
  • befa211aa7 Add PFN related structures and definitions belliash 2024-04-08 19:03:58 +02:00
  • 7193e698f1 Store page map level belliash 2024-04-07 17:49:24 +02:00
  • 388ac1a8c2 Properly, recursively self map page tables on i686 architecture belliash 2024-04-07 17:11:14 +02:00
  • 7c9233c9a2 Copy memory descriptor to fix i686 compiler error belliash 2024-04-07 10:51:14 +02:00
  • 0af3a01acf Pass compatible pointer type to fix compiler warning belliash 2024-04-07 10:50:21 +02:00
  • e82c3cbf18 Fix function prototypes belliash 2024-04-07 10:37:27 +02:00
  • bfcf9bc61a Add PFN_NUMBER type definition belliash 2024-04-07 10:33:53 +02:00
  • cf8bac9fbe Initial memory manager initialization code belliash 2024-04-07 10:27:30 +02:00
  • 04e22c127e Initial memory manager initialization code belliash 2024-04-07 10:26:12 +02:00
  • 42a1373612 Do not pre-allocate memory belliash 2024-04-06 11:28:02 +02:00
  • 1305672875 Properly, recursively self map page tables; currently only for AMD64 and PML4 belliash 2024-04-05 00:26:41 +02:00
  • d7b103f85d Add forward references for PTE related structures belliash 2024-04-03 16:03:17 +02:00
  • c6f3422c49 Update PTE related structures belliash 2024-04-03 16:00:26 +02:00