Commit Graph
105 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 c91708034b Correct comments 2023-01-02 18:06:54 +01:00
belliash c5a7d0fe05 Improvements in COM port support 2023-01-02 16:14:00 +01:00
belliash b6b25ed04d Initialize serial port only debugging enabled 2023-01-01 19:20:34 +01:00
belliash 94e9fa1293 Allow to provide custom COM port address 2022-12-29 23:44:52 +01:00
belliash 7f21e4f19c Dump EFI memory mappings 2022-12-29 17:09:44 +01:00
belliash 6a27ea140b Print xtldr debug messages only when debugging enabled 2022-12-28 23:30:03 +01:00
belliash dec021b1ec Reorganize early debug printing; initialize kernel stacks when needed 2022-12-28 23:11:35 +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 5c5f0a6df9 Add missing routine documentation 2022-12-27 22:13:48 +01:00
belliash 6d77ff42c5 Loop over halt; add missing calling convention 2022-12-27 20:12:59 +01:00
belliash 5b75d005a7 Implement HlClearInterruptFlag() and HlSetInterruptFlag() intrinsic routines 2022-12-27 18:54:01 +01:00
belliash 8f3a4aef60 Code formatting 2022-12-23 22:27:08 +01:00
belliash db1b47e50e Initialize CpuRegisters variable to silence a warning 2022-12-23 14:43:36 +01:00
belliash 3ab1695968 Common routines for reading from and writing to CPU control registers 2022-12-23 14:30:52 +01:00
belliash 7496c7203d Add missing routines documentation 2022-12-22 23:29:16 +01:00
belliash 4d68b93ed3 Small code formatting and refactoring 2022-12-22 23:19:23 +01:00
belliash 8b02fb6c3f Mostly update comments in PE/COFF module 2022-12-21 23:02:37 +01:00
belliash d158525659 Add missing documentation for BlCreateStack() routine 2022-12-21 22:34:59 +01:00
belliash 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
belliash dc2570ca8e Serial port should be working all the time, so announce that now booting the kernel 2022-12-21 20:52:53 +01:00
belliash cf828a6896 Fill in kernel initialization block 2022-12-21 20:04:20 +01:00
belliash 51886a05dd Get rid of boot services code after exiting boot services 2022-12-20 23:06:32 +01:00
belliash 7c38efc802 Update boot sequence and check PE/COFF image machine type compatibility 2022-12-20 19:11:15 +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 6871291c9a Basic steps in XTOS boot protocol 2022-12-14 22:17:17 +01:00
belliash 8b9c6780d5 Code formatting 2022-12-13 22:37:47 +01:00
belliash 9f4db475bb Implement HlHalt() intrinsic routine and add basic definitions for kernel services 2022-12-11 23:09:35 +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 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
belliash 8beb7c13ec Implement BlCreateStack() for i686 architecture 2022-12-07 23:01:59 +01:00
belliash 42c762ddf8 Add missing stub for i686 builds 2022-12-07 22:07:41 +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 6b2f34f287 Store physical address as well in the image context 2022-12-04 22:46:33 +01:00
belliash cba4a065ba Add missing comments 2022-11-23 20:51:40 +01:00
belliash 519df2ad11 Allow to set VirtualAddress of loaded module 2022-11-23 20:34:20 +01:00
belliash 2cb2328f45 Initial XtpLoadModule() implementation 2022-11-17 22:44:53 +01:00
belliash 0db01053ab Code formatting 2022-11-16 20:06:52 +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 ee9f2df6a6 Properly relocate PE/COFF image 2022-11-15 00:19:21 +01:00
belliash fd4e9ffe63 Fix compiler warning for 32bit build, use proper data types 2022-11-14 17:58:53 +01:00