4412d4fc98
Rewrite core of the XTLDR boot loader
...
Builds / ExectOS (amd64) (push) Successful in 1m1s
Builds / ExectOS (i686) (push) Successful in 29s
Reviewed-on: #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
...
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 28s
* 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
ec63fe3fa6
Retry exiting boot services if first try fails
Builds / ExectOS (amd64) (push) Successful in 26s
Builds / ExectOS (i686) (push) Successful in 27s
2023-12-02 16:02:24 +01:00
146a331c80
Let UEFI firmware load xtldr into lower half
Builds / ExectOS (amd64) (push) Successful in 3m7s
Builds / ExectOS (i686) (push) Successful in 28s
2023-12-02 09:02:04 +01:00
a90a30ff7a
Move XTOS GUIDs into separate header
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 26s
2023-11-29 17:59:53 +01:00
d8403d01f5
Verify kernel and boot loader compatibility
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-22 17:22:57 +01:00
a3c28cee73
Initial XTLDR APIC support, finds and maps base APIC address for kernel
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-20 15:18:22 +01:00
a2af4841da
Move all globals into separate file
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-16 17:39:12 +01:00
6f5e7f63f3
Include xtver.h to access version related definitions
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 25s
2023-10-27 15:43:37 +02:00
ebb740b0e7
Add more readmes to describe XTOS components and source code tree directories
ci/woodpecker/push/build Pipeline was successful
2023-05-18 21:24:33 +02:00
89718213b8
Remove no longer needed dummy module
ci/woodpecker/push/build Pipeline was successful
2023-05-17 15:13:10 +02:00
9c083dc050
Map zero page, like e820 does
ci/woodpecker/push/build Pipeline was successful
2023-02-23 00:44:21 +01:00
e2c7d0f919
Zero fill memory map before fetching it once again
ci/woodpecker/push/build Pipeline was successful
2023-02-23 00:39:13 +01:00
aace0f39c4
Allow stripped PE/COFF images to be loaded, just warn about it
ci/woodpecker/push/build Pipeline was successful
2023-02-22 15:20:00 +01:00
707c92e08a
Boot loader no longer needs to do anything related to the stack
ci/woodpecker/push/build Pipeline was successful
2023-02-05 10:03:21 +01:00
2bf15a5bb8
Fix pointer offset in PE relocation code
ci/woodpecker/push/build Pipeline was successful
2023-01-29 20:38:05 +01:00
ddffd0c582
Temporary kernel stack is no longer used
ci/woodpecker/push/build Pipeline was successful
2023-01-29 11:08:51 +01:00
df11473eac
Cleanup xtldr code as it no longer need to initialize CPU structures
ci/woodpecker/push/build Pipeline was successful
2023-01-29 10:59:22 +01:00
79a5027bca
Cleanup AMD64 part of CPU initialization, as it has been moved to the kernel
ci/woodpecker/push/build Pipeline was successful
2023-01-29 01:01:36 +01:00
27e2fdf4f2
Introduce architecture library as new kernel subsystem and move selected routines into new subsystem
ci/woodpecker/push/build Pipeline was successful
2023-01-28 10:34:55 +01:00
bf141fe25e
Basic IDT setup in the bootloader
ci/woodpecker/push/build Pipeline was successful
2023-01-26 20:14:27 +01:00
3b08bcaa4f
Setup processor context (GDT, PCR, TSS) and kernel startup stack before booting XTOS
ci/woodpecker/push/build Pipeline was successful
2023-01-25 18:39:07 +01:00
c4d53f12f2
Allocate memory for kernel startup stack
ci/woodpecker/push/build Pipeline was successful
2023-01-25 16:47:27 +01:00
b3bf613e1b
Make sure paging has been successfully enabled
ci/woodpecker/push/build Pipeline was successful
2023-01-25 16:39:15 +01:00
145fc17271
Pass framebuffer pitch information to the kernel
ci/woodpecker/push/build Pipeline was successful
2023-01-18 20:15:41 +01:00
bb56641e4b
Do not call SetVirtualAddressMap() as this might break boot process and runtime services are mapped anyway
ci/woodpecker/push/build Pipeline was successful
2023-01-16 21:58:30 +01:00
b8df45ab6a
Map framebuffer and fill information about it into kernel parameters
ci/woodpecker/push/build Pipeline was successful
2023-01-16 18:49:54 +01:00
605597262c
Initial version of EFI framebuffer module, currently support only GOP
ci/woodpecker/push/build Pipeline was successful
2023-01-16 18:41:25 +01:00
289316b43b
Print hexadecimal values in uppercase
ci/woodpecker/push/build Pipeline was successful
2023-01-16 15:55:38 +01:00
87d8300c6a
Remove no longer needed EfiLoaderStack global variable
ci/woodpecker/push/build Pipeline was successful
2023-01-15 18:54:31 +01:00
9a52be5ab9
Print a reason why module failed to load
ci/woodpecker/push/build Pipeline was successful
2023-01-15 18:53:09 +01:00
0c3e18fd86
Once BlGetMemoryMap() is called, it cannot allocate or free memory, otherwise key gets invalidated
ci/woodpecker/push/build Pipeline was successful
2023-01-15 18:50:12 +01:00
0461d975e0
Check ExitBootServices() status code
ci/woodpecker/push/build Pipeline was successful
2023-01-15 16:52:02 +01:00
bff460a879
Print COM port address properly
ci/woodpecker/push/build Pipeline was successful
2023-01-11 23:29:27 +01:00
7496fa324e
Map EfiLoaderData as some UEFI implementations might need this before kernel take over control
ci/woodpecker/push/build Pipeline was successful
2023-01-11 23:26:54 +01:00
42c3d4eff7
Fix NULL pointer
ci/woodpecker/push/build Pipeline was successful
2023-01-11 23:16:44 +01:00
350df87bcc
Do not start services as this only slows down boot process significantly
ci/woodpecker/push/build Pipeline was successful
2023-01-10 22:55:40 +01:00
b22a76e3c4
Add XT native kernel subsystem to the PE/COFF image support
ci/woodpecker/push/build Pipeline was successful
2023-01-06 16:16:26 +01:00
b7e5f1b5c1
Use CR constants instead of hardcoded values
ci/woodpecker/push/build Pipeline was successful
2023-01-04 16:33:28 +01:00
f19afbddb7
Do not create new bootloader stack as it is not needed any longer and kernel will use its own stack
ci/woodpecker/push/build Pipeline was successful
2023-01-03 23:04:11 +01:00
bb95223501
Implement BlActivateSerialControllerIO() routine for activating I/O space access on PCI(E) serial controllers
ci/woodpecker/push/build Pipeline was successful
2023-01-03 00:10:24 +01:00
c91708034b
Correct comments
ci/woodpecker/push/build Pipeline was successful
2023-01-02 18:06:54 +01:00
c5a7d0fe05
Improvements in COM port support
ci/woodpecker/push/build Pipeline was successful
2023-01-02 16:14:00 +01:00
b6b25ed04d
Initialize serial port only debugging enabled
ci/woodpecker/push/build Pipeline was successful
2023-01-01 19:20:34 +01:00
94e9fa1293
Allow to provide custom COM port address
ci/woodpecker/push/build Pipeline was successful
2022-12-29 23:44:52 +01:00
7f21e4f19c
Dump EFI memory mappings
ci/woodpecker/push/build Pipeline was successful
2022-12-29 17:09:44 +01:00
6a27ea140b
Print xtldr debug messages only when debugging enabled
ci/woodpecker/push/build Pipeline was successful
2022-12-28 23:30:03 +01:00
dec021b1ec
Reorganize early debug printing; initialize kernel stacks when needed
ci/woodpecker/push/build Pipeline was successful
2022-12-28 23:11:35 +01:00
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
ci/woodpecker/push/build Pipeline was successful
2022-12-28 15:57:03 +01:00
5c5f0a6df9
Add missing routine documentation
ci/woodpecker/push/build Pipeline was successful
2022-12-27 22:13:48 +01:00