Commit Graph
89 Commits
Author SHA1 Message Date
harraiken 03f6ecea50 Merge threads branch into master 2026-09-07 13:45:07 +02:00
harraiken 7a18a2602f Merge pull request 'Add support for Symmetric Multiprocessing (SMP)' (#26) from smp into master 2026-05-18 18:44:53 +02:00
harraiken 2d4c82cd29 Add initial WHPX support 2025-10-10 10:35:17 +02:00
harraiken ff0caf93da Merge C to C++ migration changes 2025-09-24 20:18:35 +02:00
harraiken 0b40a3fb10 Refactor MMU for multi-paging support and add 5-Level paging 2025-08-23 20:03:56 +02:00
harraiken 2e0a87e596 Use __asm__ to comply with disabled GNU extensions 2025-08-15 11:07:07 +02:00
harraiken 030575592c Revert 'Fix broken HlpInitializeAcpiSystemDescriptionTable implementation' 2025-08-11 23:30:40 +02:00
harraiken 88fba6d408 revert 'Fix broken HlpInitializeAcpiSystemDescriptionTable declaration' 2025-08-11 23:29:57 +02:00
harraiken 2375a653fe Resolve potential PDE conflict in non-PAE boot path 2025-08-11 20:59:00 +02:00
harraiken bf291613a3 Add debug messages to display PML set by bootloader 2025-08-10 18:07:26 +02:00
harraiken 406c0a0cd2 Fix broken HlpInitializeAcpiSystemDescriptionTable declaration 2025-08-10 17:48:48 +02:00
harraiken c9f9f87973 Fix broken HlpInitializeAcpiSystemDescriptionTable implementation 2025-08-10 17:48:01 +02:00
harraiken 383d5eeb06 Add missing forward declaration to resolve compile issue 2025-08-10 17:43:27 +02:00
harraiken dce2c50b9d Replace hardcoded PML level with dynamic detection using XtpDeterminePagingLevel 2025-08-10 17:39:38 +02:00
harraiken e888befee1 Add boot menu entry for booting ExectOS with XPA (eXtended Physical Addressing) disabled 2025-08-10 17:35:37 +02:00
harraiken a33a45fc20 Implement paging level detection for AMD64 based on CPUID and boot parameters 2025-08-10 17:27:12 +02:00
harraiken 23e8be1097 Remove PAE support check to allow both PAE and non-PAE configurations 2025-08-10 17:25:04 +02:00
harraiken 800810169d Fix XtpDeterminePagingLevel after renaming CPUID requests 2025-08-10 17:19:44 +02:00
harraiken eeb5e8d455 Fix broken AcGetApicBase 2025-08-10 17:16:48 +02:00
harraiken d806c8e1f2 Resolve compilation errors due to renamed CPUID requests 2025-08-10 17:12:06 +02:00
harraiken 2ea306097d Resolve compilation errors due to renamed CPUID requests 2025-08-10 17:10:01 +02:00
harraiken 3472b448c7 Fix broken AcGetApicBase implementation 2025-08-10 17:05:13 +02:00
harraiken e62820187d Resolve compilation errors due to updated CPUID requests 2025-08-10 17:01:28 +02:00
harraiken a6814aa2a3 Resolve compilation errors due to renamed CPUID requests 2025-08-10 16:59:32 +02:00
harraiken 560bd8b65e Update CPUID requests 2025-08-10 16:53:45 +02:00
harraiken a431816243 Update CPUID requests 2025-08-10 16:52:59 +02:00
harraiken 574582f977 Add forward declarations for CPUID feature enums 2025-08-10 16:36:32 +02:00
harraiken 23f022965a Add forward declarations for CPUID feature enums 2025-08-10 16:35:40 +02:00
harraiken aef81760d0 Rename enumeration lists 2025-08-10 16:33:36 +02:00
harraiken bb5deb10d5 Rename enumeration lists 2025-08-10 16:32:49 +02:00
harraiken 69d4e0cd84 Add enums for CPU feature flags used in CPUID detection 2025-08-10 16:27:14 +02:00
harraiken a9a264252a Add enums for CPU feature flags used in CPUID detection 2025-08-10 16:25:26 +02:00
harraiken a539191a33 Implement paging level detection for i686 based on CPUID and boot parameters 2025-08-10 15:42:41 +02:00
harraiken 3f2496644f Compile bootutil.c 2025-08-10 00:12:01 +02:00
harraiken daf8b87832 Expose GetBooleanParameter via loader protocol 2025-08-10 00:10:36 +02:00
harraiken a2b9af56dd Add boot utils to loader protocol 2025-08-10 00:07:40 +02:00
harraiken 8de661494a Add BlGetBooleanParameter declaration 2025-08-10 00:04:25 +02:00
harraiken 07f2e73a22 Add helper functions used by the boot protocol during system startup 2025-08-09 23:58:52 +02:00
harraiken 2472cbbff4 Revert 'Simplify and correct hardware pool mapping' 2025-08-09 17:15:35 +02:00
harraiken 58c2092049 Revert latest changes 2025-08-09 14:53:31 +02:00
harraiken 311d5e1f5c Simplify and correct hardware pool mapping 2025-08-08 21:49:21 +02:00
harraiken 39d8f82caf Define MM_HARDWARE_POOL_PAGE_COUNT 2025-08-08 21:44:33 +02:00
harraiken d7552f1dce Fix race condition in HlComPortReadLsr
The static local variable RingFlag in HlComPortReadLsr caused shared state across multiple calls and ports, leading to race conditions and incorrect behavior.
2025-08-06 09:01:47 +02:00
harraiken 9badf36ce0 Add ring indicator field to CPPORT structure 2025-08-05 23:25:30 +02:00
harraiken aff069dd1a Add i686-specific implementation of BlpGetNextPageTable supporting PML2 and PML3 2025-08-04 23:28:12 +02:00
harraiken f29f2bca74 Add AMD64-specific implementation of BlpGetNextPageTable matching new signature 2025-08-04 23:25:57 +02:00
harraiken 544ec63d6e Remove global BlpGetNextPageTable implementation in favor of arch-specific versions 2025-08-04 23:22:23 +02:00
harraiken ed75060482 Update BlpGetNextPageTable declaration to support multiple levels of PML 2025-08-04 23:01:03 +02:00
harraiken 1d376486cd Add myself to the list of authors due to significant contributions 2025-08-04 14:34:40 +02:00
harraiken 1ffddfd0e2 Add non-PAE paging support to BlMapPage 2025-08-04 14:18:21 +02:00
harraiken 0d3fb550f2 Initialize page directory for non-PAE paging 2025-08-04 14:05:58 +02:00
harraiken ca6c913fa7 Clarify PAE state management logic 2025-08-02 18:30:23 +02:00
harraiken ca06f9ebb5 Correctly manage PAE state when enabling paging 2025-08-02 18:26:01 +02:00
harraiken e6ebac7cda Correct status variable type in XtpMapHardwareMemoryPool 2025-07-30 21:50:36 +02:00
harraiken 4453b95f5c Correct status variable type in XtpMapHardwareMemoryPool 2025-07-30 21:48:38 +02:00
harraiken 61d5e36a4e Partially revert previous commit 2025-07-30 17:23:11 +02:00
harraiken 410b96b58a Zero-initialize Page Directory entries before use 2025-07-30 17:19:37 +02:00
harraiken 66e136c7d6 Enable paging 2025-07-30 16:58:25 +02:00
harraiken d61b48740f Declare CpuRegisters as a local structure instead of a pointer 2025-07-30 16:53:07 +02:00
harraiken 3607a6d930 Zero-initialize Page Directory entries before use 2025-07-30 16:49:49 +02:00
harraiken c8787c3bd6 Zero-initialize Page Directory entries before use 2025-07-30 16:38:17 +02:00
harraiken b83c3923da Change artifact URL to show newest builds first for easier access 2025-07-29 18:33:36 +02:00
harraiken a694be3795 Ensure all artifacts are published by the pipeline 2025-07-29 18:27:03 +02:00
harraiken 9eae01cc98 Disable built-in compiler functions 2025-07-29 18:20:20 +02:00
harraiken 58e3371fac Extend matrix to include release configuration alongside debug 2025-07-29 14:12:02 +02:00
harraiken 98c3b93c3d Include build type in build dir name 2025-07-29 13:57:47 +02:00
harraiken 15a81b03d9 Include build type in build dir name and remove misleading symlink 2025-07-29 12:32:31 +02:00
harraiken 7fce778ee4 Harden BlpDuplicateDevicePath against malformed device paths 2025-07-29 12:15:27 +02:00
harraiken b0aabf96b8 Improve device enumeration logic in BlEnumerateBlockDevices
These changes result in a more robust and reliable device enumeration process, better prepared to handle edge cases and non-standard firmware behavior.
2025-07-29 10:44:50 +02:00
harraiken 486e987b71 Ensure correct boot volume is used by the chainloader 2025-07-29 08:04:33 +02:00
harraiken ecaf923e6d Ensure correct boot volume is used to boot XTOS 2025-07-29 08:01:32 +02:00
harraiken 953de7fb5f Correct default OS selection in boot menu 2025-07-28 21:39:07 +02:00
harraiken 55ef9bf686 Correct function declaration for BlpFindParentBlockDevice 2025-07-28 19:45:19 +02:00
harraiken 6823982227 Correctly return parent device in BlpFindParentBlockDevice 2025-07-28 19:43:13 +02:00
harraiken ff41b0d4f7 Fix incorrect TSS descriptor limit according to architecture specification 2025-07-28 18:25:47 +02:00
harraiken 6130a34587 Align stack as required by the ABI 2025-07-28 17:57:16 +02:00
harraiken 2ca708fe43 Define stack alignment required by the architecture's ABI 2025-07-28 17:53:50 +02:00
harraiken d2ce921676 Remove completed item 2025-07-20 16:49:06 +02:00
harraiken a81bad32fe Implement scrolling in the boot menu 2025-07-20 16:45:15 +02:00
harraiken da3e039a05 Use correct address when clearing COM port buffer
The code was reading from Port->Address to clear the RBR before the field was initialized.
2025-07-20 14:53:04 +02:00
harraiken e778a95a01 Use portable affinity mask for the idle process 2025-07-20 12:34:20 +02:00
harraiken 24b6cc2250 Use portable affinity mask for the idle process
The hardcoded value 0xFFFFFFFF restricted the idle process to the first 32 processors on 64-bit system.
2025-07-20 12:33:10 +02:00
harraiken fdf649fcec Correctly initialize the boot stack pointer, as the stack grows downwards 2025-07-19 17:41:38 +02:00
harraiken 61fcf8e0ec Update readme 2025-07-17 19:58:51 +02:00
harraiken d85ed34ce2 Remove duplicated XTchain detection 2025-07-09 10:52:48 +02:00
harraiken dcb0b8fb4b Initialize UBSAN mismatch data without relying on memset() 2025-07-09 10:40:15 +02:00
harraiken 6729d72322 Add missing copyright notice 2025-07-09 10:31:36 +02:00
harraiken b229854ae0 Add configuration script for setting up Windows build environment 2025-07-09 10:28:46 +02:00
harraiken e0125dda54 Use virtual FAT disk images 2025-01-24 09:19:59 +01:00