Commit Graph

86 Commits

Author SHA1 Message Date
e80927c5d3
Fix undefined behavior and NULL pointer in boot loader OS list renderer 2024-04-27 00:42:25 +02:00
1305672875
Properly, recursively self map page tables; currently only for AMD64 and PML4 2024-04-05 00:26:41 +02:00
94e6ca7aec
Implement BlEnterFirmwareSetup() routine 2024-03-19 16:50:04 +01:00
12e8704ffb
Implement BlGetConfigBooleanValue() routine 2024-03-18 20:02:43 +01:00
1d26b81923
Store last booted OS in NVRAM and make it default one on next boot 2024-03-18 19:41:55 +01:00
ee23cd90cb
Implement BlGetEfiVariable() and BlSetEfiVariable() routines 2024-03-18 17:04:58 +01:00
db0e1d40aa
Allow boot protocols to supply own routine for converting EFI memory type into OS-specific memory type 2024-03-17 23:06:37 +01:00
17c50ea912
Redesign a way of storing module information; this allows to store more data in a single section, like license or a list of authors, as well as solves the problem with different module name lengths 2024-02-28 23:28:33 +01:00
632bb30b64
Implement BlGetRandomValue() and BlInitializeEntropy() routines for future KASLR support 2024-02-26 23:06:44 +01:00
6d66629124
Cleanup after switching to new way of printing formatted strings 2024-02-16 22:04:17 +01:00
8ddd6137da
XTLDR console/debug print refactor 2024-02-16 15:09:18 +01:00
5de4d7a7f5
Use new string formatting mechanism in the boot loader 2024-02-15 23:32:23 +01:00
508fd27e92
Implement BlGetConfigurationTable() routine 2024-01-31 16:25:43 +01:00
d27a4cde4b
Implement BlGetVirtualAddress() and BlPhysicalListToVirtual() routines 2024-01-29 18:03:58 +01:00
8115ae07b6
Unify variable types across project; use common type for storing numer of pages 2024-01-29 16:17:51 +01:00
8e61e95cc2
Implement BlPhysicalAddressToVirtual() routine 2024-01-28 23:16:01 +01:00
b8acfe1b66
Implement BlGetMappingsCount() routine 2024-01-28 17:26:20 +01:00
269858f5a1
Implement and use BlGetEfiPath() routine to get valid EFI path 2024-01-23 20:56:58 +01:00
435ee66ce1
Implement BlLoadEfiImage() and BlStartEfiImage() routines 2024-01-22 23:04:24 +01:00
0c3aee829a
Add missing forward reference 2024-01-22 15:16:39 +01:00
85d43e54b8
Add missing forward reference 2024-01-22 15:14:07 +01:00
c24745d233
Allow to specify virtual address during EFI memory mapping only 2024-01-19 23:16:45 +01:00
02f0e34b83
Allow to provide page size during initialization 2024-01-18 14:30:58 +01:00
89c18bbce6
Initial paging support 2024-01-17 14:42:07 +01:00
8f40683270
Rename memory related routines to follow naming convention 2024-01-15 15:13:34 +01:00
c2e8e29775
Add missing forward references 2024-01-12 16:02:14 +01:00
9501d3da36
Improvements to protocol support 2024-01-12 15:10:27 +01:00
11979f758b
Conform BlExitBootServices() to UEFI Specification 2024-01-10 21:59:51 +01:00
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
a90a30ff7a
Move XTOS GUIDs into separate header 2023-11-29 17:59:53 +01:00
a2af4841da
Move all globals into separate file 2023-11-16 17:39:12 +01:00
6f5e7f63f3
Include xtver.h to access version related definitions 2023-10-27 15:43:37 +02:00
145fc17271
Pass framebuffer pitch information to the kernel 2023-01-18 20:15:41 +01:00
605597262c
Initial version of EFI framebuffer module, currently support only GOP 2023-01-16 18:41:25 +01:00
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
bb95223501
Implement BlActivateSerialControllerIO() routine for activating I/O space access on PCI(E) serial controllers 2023-01-03 00:10:24 +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 2022-12-28 15:57:03 +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
4d68b93ed3
Small code formatting and refactoring 2022-12-22 23:19:23 +01:00
cf828a6896
Fill in kernel initialization block 2022-12-21 20:04:20 +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
0572b208f1
Add full paging support for AMD64 and i686 architectures, including PAE support 2022-12-11 20:14:04 +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