Commit Graph

157 Commits

Author SHA1 Message Date
4412d4fc98 Rewrite core of the XTLDR boot loader
Reviewed-on: xt-sys/exectos#7
Reviewed-by: Piotr Likoski <likoski@noreply.codingworkshop.git>
Co-authored-by: Rafal Kupiec <belliash@codingworkshop.eu.org>
Co-committed-by: Rafal Kupiec <belliash@codingworkshop.eu.org>
2024-01-09 18:51:04 +01:00
d7fbe531fd Improvements in string and wide string support
* Implement RtlCompareString(), RtlCompareStringInsensitive(), RtlCompareWideString() and RtlCompareWideStringInsensitive()
* Rename some routines t omatch naming conventions
* Switch to CHAR in string operations
2023-12-06 23:00:18 +01:00
d8403d01f5 Verify kernel and boot loader compatibility 2023-11-22 17:22:57 +01:00
a3c28cee73 Initial XTLDR APIC support, finds and maps base APIC address for kernel 2023-11-20 15:18:22 +01:00
89718213b8 Remove no longer needed dummy module 2023-05-17 15:13:10 +02:00
aace0f39c4 Allow stripped PE/COFF images to be loaded, just warn about it 2023-02-22 15:20:00 +01:00
707c92e08a Boot loader no longer needs to do anything related to the stack 2023-02-05 10:03:21 +01:00
2bf15a5bb8 Fix pointer offset in PE relocation code 2023-01-29 20:38:05 +01:00
ddffd0c582 Temporary kernel stack is no longer used 2023-01-29 11:08:51 +01:00
df11473eac Cleanup xtldr code as it no longer need to initialize CPU structures 2023-01-29 10:59:22 +01:00
79a5027bca Cleanup AMD64 part of CPU initialization, as it has been moved to the kernel 2023-01-29 01:01:36 +01:00
27e2fdf4f2 Introduce architecture library as new kernel subsystem and move selected routines into new subsystem 2023-01-28 10:34:55 +01:00
bf141fe25e Basic IDT setup in the bootloader 2023-01-26 20:14:27 +01:00
3b08bcaa4f Setup processor context (GDT, PCR, TSS) and kernel startup stack before booting XTOS 2023-01-25 18:39:07 +01:00
c4d53f12f2 Allocate memory for kernel startup stack 2023-01-25 16:47:27 +01:00
b3bf613e1b Make sure paging has been successfully enabled 2023-01-25 16:39:15 +01:00
145fc17271 Pass framebuffer pitch information to the kernel 2023-01-18 20:15:41 +01:00
b8df45ab6a Map framebuffer and fill information about it into kernel parameters 2023-01-16 18:49:54 +01:00
605597262c Initial version of EFI framebuffer module, currently support only GOP 2023-01-16 18:41:25 +01:00
0461d975e0 Check ExitBootServices() status code 2023-01-15 16:52:02 +01:00
42c3d4eff7 Fix NULL pointer 2023-01-11 23:16:44 +01:00
b22a76e3c4 Add XT native kernel subsystem to the PE/COFF image support 2023-01-06 16:16:26 +01:00
c91708034b Correct comments 2023-01-02 18:06:54 +01:00
dec021b1ec Reorganize early debug printing; initialize kernel stacks when needed 2022-12-28 23:11:35 +01:00
6d77ff42c5 Loop over halt; add missing calling convention 2022-12-27 20:12:59 +01:00
8f3a4aef60 Code formatting 2022-12-23 22:27:08 +01:00
7496c7203d Add missing routines documentation 2022-12-22 23:29:16 +01:00
4d68b93ed3 Small code formatting and refactoring 2022-12-22 23:19:23 +01:00
8b02fb6c3f Mostly update comments in PE/COFF module 2022-12-21 23:02:37 +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
7c38efc802 Update boot sequence and check PE/COFF image machine type compatibility 2022-12-20 19:11:15 +01:00
eb5998c58e Add a way to check PE/COFF image machine type 2022-12-20 15:37:13 +01:00
6871291c9a Basic steps in XTOS boot protocol 2022-12-14 22:17:17 +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
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
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