Commit Graph
100 Commits
Author SHA1 Message Date
belliash 51886a05dd Get rid of boot services code after exiting boot services
ci/woodpecker/push/build Pipeline was successful
2022-12-20 23:06:32 +01:00
belliash 7c38efc802 Update boot sequence and check PE/COFF image machine type compatibility
ci/woodpecker/push/build Pipeline was successful
2022-12-20 19:11:15 +01:00
belliash edee9a8ec6 Rework BlGetMemoryMap() routine to use EFI_MEMORY_MAP structure; map EfiBootServicesData instead of EfiReservedMemoryType
ci/woodpecker/push/build Pipeline was successful
2022-12-20 18:59:36 +01:00
belliash acda7aa37c Add EFI_MEMORY_MAP structure definition
ci/woodpecker/push/build Pipeline was successful
2022-12-20 15:52:15 +01:00
belliash eb5998c58e Add a way to check PE/COFF image machine type
ci/woodpecker/push/build Pipeline was successful
2022-12-20 15:37:13 +01:00
belliash 7bcdd8562d Several changes to EFI memory mapping
ci/woodpecker/push/build Pipeline was successful
* Move EFI memory type conversion to separate routine
 * Never map VRAM
 * Map only pages not exceeding the lowest physical page
2022-12-19 22:50:03 +01:00
belliash 6871291c9a Basic steps in XTOS boot protocol
ci/woodpecker/push/build Pipeline was successful
2022-12-14 22:17:17 +01:00
belliash 8b9c6780d5 Code formatting
ci/woodpecker/push/build Pipeline was successful
2022-12-13 22:37:47 +01:00
belliash b2b6cd7e0f Add targets for testing ExectOS inside QEMU VM
ci/woodpecker/push/build Pipeline was successful
2022-12-13 20:07:15 +01:00
belliash 03ebd3d273 Add missing EFI memory definitions
ci/woodpecker/push/build Pipeline was successful
2022-12-13 15:49:44 +01:00
belliash 0b9f398761 Tell the linker that ExectOS can handle addresses larger than 2GB
ci/woodpecker/push/build Pipeline was successful
2022-12-11 23:31:19 +01:00
belliash 9f4db475bb Implement HlHalt() intrinsic routine and add basic definitions for kernel services
ci/woodpecker/push/build Pipeline was successful
2022-12-11 23:09:35 +01:00
belliash 0572b208f1 Add full paging support for AMD64 and i686 architectures, including PAE support
ci/woodpecker/push/build Pipeline was successful
2022-12-11 20:14:04 +01:00
belliash 324a88cc01 Implement HlCpuId() routine and corresponding structures for issueing CPUID instruction
ci/woodpecker/push/build Pipeline was successful
2022-12-11 17:40:56 +01:00
belliash 2b679c11d4 Fix a bug in BlAddVirtualMemoryMapping() routine causing PF (Page Fault) on systems with more than 3GB of RAM
ci/woodpecker/push/build Pipeline was successful
2022-12-11 13:56:40 +01:00
belliash 8beb7c13ec Implement BlCreateStack() for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2022-12-07 23:01:59 +01:00
belliash 42c762ddf8 Add missing stub for i686 builds
ci/woodpecker/push/build Pipeline was successful
2022-12-07 22:07:41 +01:00
belliash 900e86c9da Create new stack and then boot XTOS, export more routines with the loader protocol
ci/woodpecker/push/build Pipeline failed
2022-12-07 20:34:16 +01:00
belliash d50fb7c37d Implement BlCreateStack()
ci/woodpecker/push/build Pipeline was successful
2022-12-07 19:46:36 +01:00
belliash 43c16d054d Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures
ci/woodpecker/push/build Pipeline was successful
2022-12-07 18:54:21 +01:00
belliash 93fa2aed67 Implement BlMapVirtualMemory() routine for recursive mapping
ci/woodpecker/push/build Pipeline was successful
2022-12-06 23:32:31 +01:00
belliash 3876414a48 Implement BlAddVirtualMemoryMapping() and BlInitializeVirtualMemory() routines
ci/woodpecker/push/build Pipeline was successful
2022-12-06 17:49:00 +01:00
belliash 2f03f84a20 Move memory related routines to a separate file and implement BlGetMemoryMap() routine
ci/woodpecker/push/build Pipeline was successful
2022-12-05 20:08:18 +01:00
belliash 6b2f34f287 Store physical address as well in the image context
ci/woodpecker/push/build Pipeline was successful
2022-12-04 22:46:33 +01:00
belliash b89121fded Implement routines for accessing and manipulating CPU control registers
ci/woodpecker/push/build Pipeline was successful
2022-12-02 23:03:42 +01:00
belliash b275caf161 Implement RtlRemoveEntryList() routine
ci/woodpecker/push/build Pipeline was successful
2022-11-28 23:00:20 +01:00
belliash cba4a065ba Add missing comments
ci/woodpecker/push/build Pipeline was successful
2022-11-23 20:51:40 +01:00
belliash 519df2ad11 Allow to set VirtualAddress of loaded module
ci/woodpecker/push/build Pipeline was successful
2022-11-23 20:34:20 +01:00
belliash 2cb2328f45 Initial XtpLoadModule() implementation
ci/woodpecker/push/build Pipeline was successful
2022-11-17 22:44:53 +01:00
belliash 0db01053ab Code formatting
ci/woodpecker/push/build Pipeline was successful
2022-11-16 20:06:52 +01:00
belliash 5ec08cb84a Implement PeGetSubSystem() routine
ci/woodpecker/push/build Pipeline was successful
2022-11-16 15:03:33 +01:00
belliash 9f43ad06af Implement PeRelocateImage() routine
ci/woodpecker/push/build Pipeline was successful
2022-11-15 23:31:35 +01:00
belliash 131275e788 Import loader structures definitions
ci/woodpecker/push/build Pipeline was successful
2022-11-15 20:16:23 +01:00
belliash df5eab737b Add PE/COFF image characteristics
ci/woodpecker/push/build Pipeline was successful
2022-11-15 20:14:28 +01:00
belliash 3125a25617 Add three most important linked lists into the kernel initialization block
ci/woodpecker/push/build Pipeline was successful
2022-11-15 19:54:02 +01:00
belliash ee9f2df6a6 Properly relocate PE/COFF image
ci/woodpecker/push/build Pipeline was successful
2022-11-15 00:19:21 +01:00
belliash fd4e9ffe63 Fix compiler warning for 32bit build, use proper data types
ci/woodpecker/push/build Pipeline was successful
2022-11-14 17:58:53 +01:00
belliash e37e5b97af Initial version of the kernel initialization block, needed to start the kernel
ci/woodpecker/push/build Pipeline was successful
2022-11-12 23:17:44 +01:00
belliash 2dd7b09fbb Make sure PE image is executable
ci/woodpecker/push/build Pipeline was successful
2022-11-12 19:16:00 +01:00
belliash b03c9c2a25 Further PE/COFF module improvements
ci/woodpecker/push/build Pipeline was successful
2022-11-12 12:37:49 +01:00
belliash 60c56c4462 Firmware dependent XT structures
ci/woodpecker/push/build Pipeline was successful
2022-11-12 12:21:08 +01:00
belliash c2b720fbd8 Add missing PE subsystem
ci/woodpecker/push/build Pipeline was successful
2022-11-07 23:16:48 +01:00
belliash 5c5c6b7a5e Initiate boot up sequence
ci/woodpecker/push/build Pipeline was successful
2022-11-07 20:41:21 +01:00
belliash f0868b91ec Initial XTOS boot protocol support
ci/woodpecker/push/build Pipeline was successful
2022-11-07 20:21:07 +01:00
belliash 3c6136811b Use shorter and more readable variable names
ci/woodpecker/push/build Pipeline was successful
2022-11-07 20:06:19 +01:00
belliash 9aa6d6913a Store ARC name as well as system path
ci/woodpecker/push/build Pipeline was successful
2022-11-07 15:53:50 +01:00
belliash 66713ba461 Print more accurate message
ci/woodpecker/push/build Pipeline was successful
2022-11-07 15:51:27 +01:00
belliash 2f16a8534c Code cleanup
ci/woodpecker/push/build Pipeline was successful
2022-11-06 20:03:49 +01:00
belliash c8f99ad6ed Initial PE/COFF support for loading image files
ci/woodpecker/push/build Pipeline was successful
2022-11-06 19:59:38 +01:00
belliash 4a364212de Fix 4KB pages allocation
ci/woodpecker/push/build Pipeline was successful
2022-11-05 21:59:55 +01:00
belliash bef6b5a589 Import ExectOS ASCII logo
ci/woodpecker/push/build Pipeline was successful
2022-11-01 19:54:08 +01:00
belliash 24fac8208b Update OVMF variables
ci/woodpecker/push/build Pipeline was successful
2022-11-01 19:51:14 +01:00
belliash 72ec6819a6 Fixes and optimizations in PE/COFF structures
ci/woodpecker/push/build Pipeline was successful
2022-11-01 19:11:12 +01:00
belliash 2d5986b514 Add universal (both 32bit and 64bit) PECOFF_IMAGE_NT_HEADERS
ci/woodpecker/push/build Pipeline was successful
2022-10-31 10:08:09 +01:00
belliash 3412f97fe4 Missing FileInfo protocol GUID
ci/woodpecker/push/build Pipeline was successful
2022-10-30 22:26:16 +01:00
belliash f5e9bd11f1 Implement BlEfiMemoryAllocatePages() and BlEfiMemoryFreePages() for manipulating memory pages
ci/woodpecker/push/build Pipeline was successful
2022-10-30 22:24:21 +01:00
belliash b29162841c Get rid of BlEfiDirectorySeparator() routine and allow GetVolumeDevicePath() to store ARC name
ci/woodpecker/push/build Pipeline was successful
2022-10-30 12:21:09 +01:00
belliash c09b121178 Rework BlEfiDirectorySeparator(), now it operates on wide strings
ci/woodpecker/push/build Pipeline was successful
2022-10-26 22:11:42 +02:00
belliash 30bc0c3cb7 Install kernel under boot directory
ci/woodpecker/push/build Pipeline was successful
2022-10-26 20:30:39 +02:00
belliash b1c08e4a9f Implement RtlStringLength() and RtlStringToWideString() routines
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:45:12 +02:00
belliash 0ead750489 Remove useless forward reference
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:21:58 +02:00
belliash 861251f41a Add routines for opening and closing volumes to the loader protocol
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:17:23 +02:00
belliash 26884a436b Implement BlEfiDirectorySeparator() routine for setting correct EFI directory separator
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:12:09 +02:00
belliash 727825572a Print XTLDR version
ci/woodpecker/push/build Pipeline was successful
2022-10-23 22:36:12 +02:00
belliash d6cc283519 Add missing IN/OUT indicators
ci/woodpecker/push/build Pipeline was successful
2022-10-23 22:20:17 +02:00
belliash 8473150b26 Rename parameters
ci/woodpecker/push/build Pipeline was successful
2022-10-23 22:18:45 +02:00
belliash 5869aa985a Quick code refactor for further modules development
ci/woodpecker/push/build Pipeline was successful
2022-10-20 18:19:34 +02:00
belliash 37a37c225f Small code refactoring
ci/woodpecker/push/build Pipeline was successful
2022-10-20 15:58:50 +02:00
belliash 1296b44ae0 Add executable image (PE/COFF) structures and definitions
ci/woodpecker/push/build Pipeline was successful
2022-10-19 16:30:21 +02:00
belliash 6c576f95c4 Rename module entry point
ci/woodpecker/push/build Pipeline was successful
2022-10-19 14:55:31 +02:00
belliash 984b4b83a1 This is no longer needed
ci/woodpecker/push/build Pipeline was successful
2022-10-18 18:47:49 +02:00
belliash 27f0b3b362 Correct typo
ci/woodpecker/push/build Pipeline was successful
2022-10-18 18:46:46 +02:00
belliash 6f9ad1ac9f Add missing code documentation
ci/woodpecker/push/build Pipeline was successful
2022-10-18 15:45:12 +02:00
belliash f8a120a24c Allow BlGetXtLoaderProtocol() routine to store loader protocol in a specified variable
ci/woodpecker/push/build Pipeline was successful
2022-10-18 15:44:21 +02:00
belliash 96a848b498 Add missing routine declaration
ci/woodpecker/push/build Pipeline was successful
2022-10-17 22:47:46 +02:00
belliash 1b310e46f8 Print firmware information, not only secure boot status
ci/woodpecker/push/build Pipeline was successful
2022-10-17 22:42:06 +02:00
belliash 71e8bb76de Implement BlEfiGetSystemConfigurationTable() and move BlEfiGetSecureBootStatus() to desired place
ci/woodpecker/push/build Pipeline was successful
2022-10-17 15:47:09 +02:00
belliash ade2d189ae Add EFI configuration tables GUIDs
ci/woodpecker/push/build Pipeline was successful
2022-10-17 15:39:25 +02:00
belliash c60a46967f Copy module path; this fixes modules loading on i686
ci/woodpecker/push/build Pipeline was successful
2022-10-16 23:49:40 +02:00
belliash 3894d4fd75 Move blproto.c and add missing header file
ci/woodpecker/push/build Pipeline was successful
2022-10-12 23:14:33 +02:00
belliash 3fa2ec90aa Refactor code and fix loader protocol support
ci/woodpecker/push/build Pipeline failed
2022-10-12 23:09:19 +02:00
belliash 09e58d0b67 Implement BlEfiGetSecureBootStatus() to get SecureBoot status
ci/woodpecker/push/build Pipeline was successful
2022-10-12 15:47:41 +02:00
belliash da37ceaa0f Add missing global variable guid
ci/woodpecker/push/build Pipeline was successful
2022-10-11 23:25:25 +02:00
belliash 9e7c041f41 Implement XTLDR modules support
ci/woodpecker/push/build Pipeline was successful
2022-10-11 23:03:29 +02:00
belliash 649974b733 BlOpenVolume() now correctly opens a Simple File System protocol
ci/woodpecker/push/build Pipeline was successful
2022-10-05 19:57:46 +02:00
belliash 6a0a1eab23 Add missing IN/OUT indicators
ci/woodpecker/push/build Pipeline was successful
2022-10-02 14:09:29 +02:00
belliash b21f9c199f Add missing EFI end device path subtypes
ci/woodpecker/push/build Pipeline was successful
2022-10-02 14:05:37 +02:00
belliash 6c6e5fe70a Implement RtlListLoop() routine for detecting loops in linked lists
ci/woodpecker/push/build Pipeline was successful
2022-09-27 19:30:19 +02:00
belliash bf9171b66a Check for OVMF and prevent doubled messages on serial console
ci/woodpecker/push/build Pipeline was successful
2022-09-27 18:39:26 +02:00
belliash 67acacf528 Use SIZE_T for length limiter
ci/woodpecker/push/build Pipeline was successful
2022-09-26 23:02:38 +02:00
belliash 252eb5c825 Export RtlWideStringConcatenate() and RtlWideStringLength() routines
ci/woodpecker/push/build Pipeline was successful
2022-09-26 23:01:17 +02:00
belliash dd0c86003d Set correct calling convention for RtlWideStringCompare() and RtlWideStringTokenize() routines
ci/woodpecker/push/build Pipeline was successful
2022-09-26 22:54:21 +02:00
belliash a0f359bcf7 Implement RtlWideStringConcatenate() routine
ci/woodpecker/push/build Pipeline was successful
2022-09-26 17:26:00 +02:00
belliash c7f53e193a Implement RtlWideStringLength() routine
ci/woodpecker/push/build Pipeline was successful
2022-09-26 16:53:58 +02:00
belliash 58847c2fea Implement BlCloseVolume() and BlOpenVolume() routines
ci/woodpecker/push/build Pipeline was successful
2022-09-18 18:56:39 +02:00
belliash 5fe22b5d6c Fix build by setting project name first
ci/woodpecker/push/build Pipeline was successful
2022-09-17 00:22:45 +02:00
belliash 109c24f389 Initial support for xtldr modules and bootloader protocol
ci/woodpecker/push/build Pipeline failed
2022-09-17 00:14:09 +02:00
belliash 33ff15e1db Add EFI XT protocols GUIDs
ci/woodpecker/push/build Pipeline was successful
2022-09-06 17:55:07 +02:00
belliash 41f1aee6e3 Implemented RtlCompareMemory() for better compatibility with NT and made use of it in RtlSameMemory(), implemented RtlFillMemory(), RtlMoveMemory(), RtlSetMemory() and RtlZeroMemory() as well
ci/woodpecker/push/build Pipeline was successful
2022-09-06 17:51:44 +02:00
belliash d56b10f252 Various fixes to the existing routines:
ci/woodpecker/push/build Pipeline was successful
* Export RtlWideStringTokenize()
 * Allow to compare whole strings in RtlWideStringCompare() when no length specified
 * RtlSameMemory() returns boolean now
 * Source bytes can be constant value in RtlCopyMemory()
2022-09-05 15:17:12 +02:00