Commit Graph

287 Commits

Author SHA1 Message Date
8b02fb6c3f Mostly update comments in PE/COFF module 2022-12-21 23:02:37 +01:00
d158525659 Add missing documentation for BlCreateStack() routine 2022-12-21 22:34:59 +01:00
6c4496f839 KERNEL_STACK_SIZE should be expressed in bytes as the name suggests, calculate number of pages where needed 2022-12-21 22:24:16 +01:00
dc2570ca8e Serial port should be working all the time, so announce that now booting the kernel 2022-12-21 20:52:53 +01:00
cf828a6896 Fill in kernel initialization block 2022-12-21 20:04:20 +01:00
51886a05dd Get rid of boot services code after exiting boot services 2022-12-20 23:06:32 +01:00
7c38efc802 Update boot sequence and check PE/COFF image machine type compatibility 2022-12-20 19:11:15 +01:00
edee9a8ec6 Rework BlGetMemoryMap() routine to use EFI_MEMORY_MAP structure; map EfiBootServicesData instead of EfiReservedMemoryType 2022-12-20 18:59:36 +01:00
eb5998c58e Add a way to check PE/COFF image machine type 2022-12-20 15:37:13 +01:00
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
6871291c9a Basic steps in XTOS boot protocol 2022-12-14 22:17:17 +01:00
8b9c6780d5 Code formatting 2022-12-13 22:37:47 +01:00
9f4db475bb Implement HlHalt() intrinsic routine and add basic definitions for kernel services 2022-12-11 23:09:35 +01:00
0572b208f1 Add full paging support for AMD64 and i686 architectures, including PAE support 2022-12-11 20:14:04 +01:00
2b679c11d4 Fix a bug in BlAddVirtualMemoryMapping() routine causing PF (Page Fault) on systems with more than 3GB of RAM 2022-12-11 13:56:40 +01:00
8beb7c13ec Implement BlCreateStack() for i686 architecture 2022-12-07 23:01:59 +01:00
42c762ddf8 Add missing stub for i686 builds 2022-12-07 22:07:41 +01:00
900e86c9da Create new stack and then boot XTOS, export more routines with the loader protocol 2022-12-07 20:34:16 +01:00
d50fb7c37d Implement BlCreateStack() 2022-12-07 19:46:36 +01:00
43c16d054d Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures 2022-12-07 18:54:21 +01:00
93fa2aed67 Implement BlMapVirtualMemory() routine for recursive mapping 2022-12-06 23:32:31 +01:00
3876414a48 Implement BlAddVirtualMemoryMapping() and BlInitializeVirtualMemory() routines 2022-12-06 17:49:00 +01:00
2f03f84a20 Move memory related routines to a separate file and implement BlGetMemoryMap() routine 2022-12-05 20:08:18 +01:00
6b2f34f287 Store physical address as well in the image context 2022-12-04 22:46:33 +01:00
cba4a065ba Add missing comments 2022-11-23 20:51:40 +01:00
519df2ad11 Allow to set VirtualAddress of loaded module 2022-11-23 20:34:20 +01:00
2cb2328f45 Initial XtpLoadModule() implementation 2022-11-17 22:44:53 +01:00
0db01053ab Code formatting 2022-11-16 20:06:52 +01:00
5ec08cb84a Implement PeGetSubSystem() routine 2022-11-16 15:03:33 +01:00
9f43ad06af Implement PeRelocateImage() routine 2022-11-15 23:31:35 +01:00
ee9f2df6a6 Properly relocate PE/COFF image 2022-11-15 00:19:21 +01:00
fd4e9ffe63 Fix compiler warning for 32bit build, use proper data types 2022-11-14 17:58:53 +01:00
2dd7b09fbb Make sure PE image is executable 2022-11-12 19:16:00 +01:00
b03c9c2a25 Further PE/COFF module improvements 2022-11-12 12:37:49 +01:00
5c5c6b7a5e Initiate boot up sequence 2022-11-07 20:41:21 +01:00
f0868b91ec Initial XTOS boot protocol support 2022-11-07 20:21:07 +01:00
3c6136811b Use shorter and more readable variable names 2022-11-07 20:06:19 +01:00
9aa6d6913a Store ARC name as well as system path 2022-11-07 15:53:50 +01:00
66713ba461 Print more accurate message 2022-11-07 15:51:27 +01:00
2f16a8534c Code cleanup 2022-11-06 20:03:49 +01:00
c8f99ad6ed Initial PE/COFF support for loading image files 2022-11-06 19:59:38 +01:00
4a364212de Fix 4KB pages allocation 2022-11-05 21:59:55 +01:00
f5e9bd11f1 Implement BlEfiMemoryAllocatePages() and BlEfiMemoryFreePages() for manipulating memory pages 2022-10-30 22:24:21 +01:00
b29162841c Get rid of BlEfiDirectorySeparator() routine and allow GetVolumeDevicePath() to store ARC name 2022-10-30 12:21:09 +01:00
c09b121178 Rework BlEfiDirectorySeparator(), now it operates on wide strings 2022-10-26 22:11:42 +02:00
0ead750489 Remove useless forward reference 2022-10-25 23:21:58 +02:00
861251f41a Add routines for opening and closing volumes to the loader protocol 2022-10-25 23:17:23 +02:00
26884a436b Implement BlEfiDirectorySeparator() routine for setting correct EFI directory separator 2022-10-25 23:12:09 +02:00
727825572a Print XTLDR version 2022-10-23 22:36:12 +02:00
d6cc283519 Add missing IN/OUT indicators 2022-10-23 22:20:17 +02:00