Commit Graph

255 Commits

Author SHA1 Message Date
f19afbddb7
Do not create new bootloader stack as it is not needed any longer and kernel will use its own stack
All checks were successful
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
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-03 00:10:24 +01:00
c91708034b
Correct comments
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-02 18:06:54 +01:00
c5a7d0fe05
Improvements in COM port support
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-02 16:14:00 +01:00
b6b25ed04d
Initialize serial port only debugging enabled
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-01 19:20:34 +01:00
94e9fa1293
Allow to provide custom COM port address
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-29 23:44:52 +01:00
7f21e4f19c
Dump EFI memory mappings
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-29 17:09:44 +01:00
6a27ea140b
Print xtldr debug messages only when debugging enabled
All checks were successful
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
All checks were successful
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
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-28 15:57:03 +01:00
5c5f0a6df9
Add missing routine documentation
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 22:13:48 +01:00
6d77ff42c5
Loop over halt; add missing calling convention
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 20:12:59 +01:00
5b75d005a7
Implement HlClearInterruptFlag() and HlSetInterruptFlag() intrinsic routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 18:54:01 +01:00
8f3a4aef60
Code formatting
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-23 22:27:08 +01:00
db1b47e50e
Initialize CpuRegisters variable to silence a warning
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-23 14:43:36 +01:00
3ab1695968
Common routines for reading from and writing to CPU control registers
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-23 14:30:52 +01:00
7496c7203d
Add missing routines documentation
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-22 23:29:16 +01:00
4d68b93ed3
Small code formatting and refactoring
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-22 23:19:23 +01:00
8b02fb6c3f
Mostly update comments in PE/COFF module
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-21 23:02:37 +01:00
d158525659
Add missing documentation for BlCreateStack() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
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
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-21 22:24:16 +01:00
dc2570ca8e
Serial port should be working all the time, so announce that now booting the kernel
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-21 20:52:53 +01:00
cf828a6896
Fill in kernel initialization block
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-21 20:04:20 +01:00
51886a05dd
Get rid of boot services code after exiting boot services
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-20 23:06:32 +01:00
7c38efc802
Update boot sequence and check PE/COFF image machine type compatibility
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-20 19:11:15 +01:00
edee9a8ec6
Rework BlGetMemoryMap() routine to use EFI_MEMORY_MAP structure; map EfiBootServicesData instead of EfiReservedMemoryType
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-20 18:59:36 +01:00
eb5998c58e
Add a way to check PE/COFF image machine type
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-20 15:37:13 +01:00
7bcdd8562d
Several changes to EFI memory mapping
All checks were successful
ci/woodpecker/push/build Pipeline was successful
* 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
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-14 22:17:17 +01:00
8b9c6780d5
Code formatting
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-13 22:37:47 +01:00
9f4db475bb
Implement HlHalt() intrinsic routine and add basic definitions for kernel services
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-11 23:09:35 +01:00
0572b208f1
Add full paging support for AMD64 and i686 architectures, including PAE support
All checks were successful
ci/woodpecker/push/build Pipeline was successful
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
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-11 13:56:40 +01:00
8beb7c13ec
Implement BlCreateStack() for i686 architecture
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-07 23:01:59 +01:00
42c762ddf8
Add missing stub for i686 builds
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-07 22:07:41 +01:00
900e86c9da
Create new stack and then boot XTOS, export more routines with the loader protocol
Some checks failed
ci/woodpecker/push/build Pipeline failed
2022-12-07 20:34:16 +01:00
d50fb7c37d
Implement BlCreateStack()
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-07 19:46:36 +01:00
43c16d054d
Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-07 18:54:21 +01:00
93fa2aed67
Implement BlMapVirtualMemory() routine for recursive mapping
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-06 23:32:31 +01:00
3876414a48
Implement BlAddVirtualMemoryMapping() and BlInitializeVirtualMemory() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-06 17:49:00 +01:00
2f03f84a20
Move memory related routines to a separate file and implement BlGetMemoryMap() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-05 20:08:18 +01:00
6b2f34f287
Store physical address as well in the image context
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-04 22:46:33 +01:00
cba4a065ba
Add missing comments
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-23 20:51:40 +01:00
519df2ad11
Allow to set VirtualAddress of loaded module
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-23 20:34:20 +01:00
2cb2328f45
Initial XtpLoadModule() implementation
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-17 22:44:53 +01:00
0db01053ab
Code formatting
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-16 20:06:52 +01:00
5ec08cb84a
Implement PeGetSubSystem() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-16 15:03:33 +01:00
9f43ad06af
Implement PeRelocateImage() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-15 23:31:35 +01:00
ee9f2df6a6
Properly relocate PE/COFF image
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-15 00:19:21 +01:00
fd4e9ffe63
Fix compiler warning for 32bit build, use proper data types
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-14 17:58:53 +01:00
2dd7b09fbb
Make sure PE image is executable
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-12 19:16:00 +01:00
b03c9c2a25
Further PE/COFF module improvements
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-12 12:37:49 +01:00
5c5c6b7a5e
Initiate boot up sequence
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-07 20:41:21 +01:00
f0868b91ec
Initial XTOS boot protocol support
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-07 20:21:07 +01:00
3c6136811b
Use shorter and more readable variable names
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-07 20:06:19 +01:00
9aa6d6913a
Store ARC name as well as system path
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-07 15:53:50 +01:00
66713ba461
Print more accurate message
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-07 15:51:27 +01:00
2f16a8534c
Code cleanup
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-06 20:03:49 +01:00
c8f99ad6ed
Initial PE/COFF support for loading image files
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-06 19:59:38 +01:00
4a364212de
Fix 4KB pages allocation
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-05 21:59:55 +01:00
f5e9bd11f1
Implement BlEfiMemoryAllocatePages() and BlEfiMemoryFreePages() for manipulating memory pages
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-30 22:24:21 +01:00
b29162841c
Get rid of BlEfiDirectorySeparator() routine and allow GetVolumeDevicePath() to store ARC name
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-30 12:21:09 +01:00
c09b121178
Rework BlEfiDirectorySeparator(), now it operates on wide strings
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-26 22:11:42 +02:00
0ead750489
Remove useless forward reference
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:21:58 +02:00
861251f41a
Add routines for opening and closing volumes to the loader protocol
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:17:23 +02:00
26884a436b
Implement BlEfiDirectorySeparator() routine for setting correct EFI directory separator
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:12:09 +02:00
727825572a
Print XTLDR version
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-23 22:36:12 +02:00
d6cc283519
Add missing IN/OUT indicators
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-23 22:20:17 +02:00
5869aa985a
Quick code refactor for further modules development
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-20 18:19:34 +02:00
37a37c225f
Small code refactoring
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-20 15:58:50 +02:00
6c576f95c4
Rename module entry point
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-19 14:55:31 +02:00
984b4b83a1
This is no longer needed
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-18 18:47:49 +02:00
27f0b3b362
Correct typo
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-18 18:46:46 +02:00
6f9ad1ac9f
Add missing code documentation
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-18 15:45:12 +02:00
f8a120a24c
Allow BlGetXtLoaderProtocol() routine to store loader protocol in a specified variable
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-18 15:44:21 +02:00
96a848b498
Add missing routine declaration
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-17 22:47:46 +02:00
1b310e46f8
Print firmware information, not only secure boot status
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-17 22:42:06 +02:00
71e8bb76de
Implement BlEfiGetSystemConfigurationTable() and move BlEfiGetSecureBootStatus() to desired place
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-17 15:47:09 +02:00
c60a46967f
Copy module path; this fixes modules loading on i686
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-16 23:49:40 +02:00
3894d4fd75
Move blproto.c and add missing header file
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-12 23:14:33 +02:00
3fa2ec90aa
Refactor code and fix loader protocol support
Some checks failed
ci/woodpecker/push/build Pipeline failed
2022-10-12 23:09:19 +02:00
09e58d0b67
Implement BlEfiGetSecureBootStatus() to get SecureBoot status
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-12 15:47:41 +02:00
9e7c041f41
Implement XTLDR modules support
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-11 23:03:29 +02:00
649974b733
BlOpenVolume() now correctly opens a Simple File System protocol
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-05 19:57:46 +02:00
bf9171b66a
Check for OVMF and prevent doubled messages on serial console
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-27 18:39:26 +02:00
58847c2fea
Implement BlCloseVolume() and BlOpenVolume() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-18 18:56:39 +02:00
5fe22b5d6c
Fix build by setting project name first
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-17 00:22:45 +02:00
109c24f389
Initial support for xtldr modules and bootloader protocol
Some checks failed
ci/woodpecker/push/build Pipeline failed
2022-09-17 00:14:09 +02:00
a7d07e7ecb
Integrate xtklib with the kernel
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-30 23:23:02 +02:00
f03b79ee2f
Implement BlGetVolumeDevicePath() and BlpDissectVolumeArcPath()
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-22 20:09:50 +02:00
d9b60aaa11
Add missing IN/OUT modifiers to routine declarations
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-22 18:24:15 +02:00
756763d8ca
Discover and enumerate EFI block devices
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-21 19:44:49 +02:00
510bd8dc99
Add missing comments
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-21 17:28:14 +02:00
d369a5e163
Implement BlEfiMemoryAllocatePool() and BlEfiMemoryFreePool()
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-21 17:05:05 +02:00
18d5a6d794
Insert new lines in every debug message
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-19 23:46:08 +02:00
a6d892bf08
Initialize console without error reporting and allow serial port configuration to be passed via EFI shell
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-13 13:25:29 +02:00
ba1efee47e
Disable watchdog timer
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-11 19:19:55 +02:00
5a56959333
Consider EFI as unsupported implementation when console initialization fails
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-11 18:32:43 +02:00
e6aaa1a83c
Mark serial port as fully initialized and always check that before printing anything to the serial console
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-10 17:56:41 +02:00
a9171bd512
Enable wide string printing
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-10 17:52:19 +02:00
075c85d0ff
Add missing comments
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-10 16:31:09 +02:00
a961ac1e69
Implement BlDbgPrint() for printing debug messages to the serial console and rename loader entry point
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-09 22:27:15 +02:00
3e4f0b8aff
Add support for formatting and printing strings
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-05 15:00:34 +02:00
9d7491c732
EFI default console support
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-03 22:36:31 +02:00
09e4edc026
Add EFI bootloader subproject
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-08-03 10:45:22 +02:00