Commit Graph
52 Commits
Author SHA1 Message Date
belliash f19afbddb7 Do not create new bootloader stack as it is not needed any longer and kernel will use its own stack 2023-01-03 23:04:11 +01:00
belliash bb95223501 Implement BlActivateSerialControllerIO() routine for activating I/O space access on PCI(E) serial controllers 2023-01-03 00:10:24 +01:00
belliash 9dc0e60f28 We support EFI-enabled systems only and such machines should support PAE, so there is no need for XTLDR to support non-PAE x86 hardware 2022-12-28 15:57:03 +01:00
belliash 6d77ff42c5 Loop over halt; add missing calling convention 2022-12-27 20:12:59 +01:00
belliash 8f3a4aef60 Code formatting 2022-12-23 22:27:08 +01:00
belliash 4d68b93ed3 Small code formatting and refactoring 2022-12-22 23:19:23 +01:00
belliash cf828a6896 Fill in kernel initialization block 2022-12-21 20:04:20 +01:00
belliash edee9a8ec6 Rework BlGetMemoryMap() routine to use EFI_MEMORY_MAP structure; map EfiBootServicesData instead of EfiReservedMemoryType 2022-12-20 18:59:36 +01:00
belliash eb5998c58e Add a way to check PE/COFF image machine type 2022-12-20 15:37:13 +01:00
belliash 7bcdd8562d Several changes to EFI memory mapping
* 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 0572b208f1 Add full paging support for AMD64 and i686 architectures, including PAE support 2022-12-11 20:14:04 +01:00
belliash 900e86c9da Create new stack and then boot XTOS, export more routines with the loader protocol 2022-12-07 20:34:16 +01:00
belliash d50fb7c37d Implement BlCreateStack() 2022-12-07 19:46:36 +01:00
belliash 43c16d054d Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures 2022-12-07 18:54:21 +01:00
belliash 93fa2aed67 Implement BlMapVirtualMemory() routine for recursive mapping 2022-12-06 23:32:31 +01:00
belliash 3876414a48 Implement BlAddVirtualMemoryMapping() and BlInitializeVirtualMemory() routines 2022-12-06 17:49:00 +01:00
belliash 2f03f84a20 Move memory related routines to a separate file and implement BlGetMemoryMap() routine 2022-12-05 20:08:18 +01:00
belliash 5ec08cb84a Implement PeGetSubSystem() routine 2022-11-16 15:03:33 +01:00
belliash 9f43ad06af Implement PeRelocateImage() routine 2022-11-15 23:31:35 +01:00
belliash b03c9c2a25 Further PE/COFF module improvements 2022-11-12 12:37:49 +01:00
belliash f0868b91ec Initial XTOS boot protocol support 2022-11-07 20:21:07 +01:00
belliash c8f99ad6ed Initial PE/COFF support for loading image files 2022-11-06 19:59:38 +01:00
belliash f5e9bd11f1 Implement BlEfiMemoryAllocatePages() and BlEfiMemoryFreePages() for manipulating memory pages 2022-10-30 22:24:21 +01:00
belliash b29162841c Get rid of BlEfiDirectorySeparator() routine and allow GetVolumeDevicePath() to store ARC name 2022-10-30 12:21:09 +01:00
belliash c09b121178 Rework BlEfiDirectorySeparator(), now it operates on wide strings 2022-10-26 22:11:42 +02:00
belliash 0ead750489 Remove useless forward reference 2022-10-25 23:21:58 +02:00
belliash 861251f41a Add routines for opening and closing volumes to the loader protocol 2022-10-25 23:17:23 +02:00
belliash 26884a436b Implement BlEfiDirectorySeparator() routine for setting correct EFI directory separator 2022-10-25 23:12:09 +02:00
belliash 727825572a Print XTLDR version 2022-10-23 22:36:12 +02:00
belliash d6cc283519 Add missing IN/OUT indicators 2022-10-23 22:20:17 +02:00
belliash 5869aa985a Quick code refactor for further modules development 2022-10-20 18:19:34 +02:00
belliash 37a37c225f Small code refactoring 2022-10-20 15:58:50 +02:00
belliash 984b4b83a1 This is no longer needed 2022-10-18 18:47:49 +02:00
belliash 27f0b3b362 Correct typo 2022-10-18 18:46:46 +02:00
belliash f8a120a24c Allow BlGetXtLoaderProtocol() routine to store loader protocol in a specified variable 2022-10-18 15:44:21 +02:00
belliash 96a848b498 Add missing routine declaration 2022-10-17 22:47:46 +02:00
belliash 3894d4fd75 Move blproto.c and add missing header file 2022-10-12 23:14:33 +02:00
belliash 3fa2ec90aa Refactor code and fix loader protocol support 2022-10-12 23:09:19 +02:00
belliash 09e58d0b67 Implement BlEfiGetSecureBootStatus() to get SecureBoot status 2022-10-12 15:47:41 +02:00
belliash 9e7c041f41 Implement XTLDR modules support 2022-10-11 23:03:29 +02:00
belliash 58847c2fea Implement BlCloseVolume() and BlOpenVolume() routines 2022-09-18 18:56:39 +02:00
belliash 109c24f389 Initial support for xtldr modules and bootloader protocol 2022-09-17 00:14:09 +02:00
belliash a7d07e7ecb Integrate xtklib with the kernel 2022-08-30 23:23:02 +02:00
belliash f03b79ee2f Implement BlGetVolumeDevicePath() and BlpDissectVolumeArcPath() 2022-08-22 20:09:50 +02:00
belliash d9b60aaa11 Add missing IN/OUT modifiers to routine declarations 2022-08-22 18:24:15 +02:00
belliash 756763d8ca Discover and enumerate EFI block devices 2022-08-21 19:44:49 +02:00
belliash d369a5e163 Implement BlEfiMemoryAllocatePool() and BlEfiMemoryFreePool() 2022-08-21 17:05:05 +02:00
belliash a6d892bf08 Initialize console without error reporting and allow serial port configuration to be passed via EFI shell 2022-08-13 13:25:29 +02:00
belliash a961ac1e69 Implement BlDbgPrint() for printing debug messages to the serial console and rename loader entry point 2022-08-09 22:27:15 +02:00
belliash 3e4f0b8aff Add support for formatting and printing strings 2022-08-05 15:00:34 +02:00