This website requires JavaScript.
3f54c9b37e
Allow to set XT subsystem when producing binaries
belliash
2023-01-06 16:18:04 +0100
b22a76e3c4
Add XT native kernel subsystem to the PE/COFF image support
belliash
2023-01-06 16:16:26 +0100
674e69da0e
Cleanup useless externals
belliash
2023-01-05 23:38:58 +0100
712de4e4e4
XTDK contains headers uniquely identified
belliash
2023-01-05 23:28:29 +0100
3250ad67aa
Rename header file
belliash
2023-01-05 23:09:54 +0100
f2b51ff69c
Code formatting
belliash
2023-01-05 22:45:52 +0100
2920c1042a
Suppress error caused by including recursively when building a preamble
belliash
2023-01-05 19:55:17 +0100
3131aac7a9
Move serial ports I/O address to architecture specific header
belliash
2023-01-05 15:58:36 +0100
5730e8692e
Reorganisation of KeStartXtSystem() routine and early debug printing
belliash
2023-01-04 23:08:59 +0100
b7e5f1b5c1
Use CR constants instead of hardcoded values
belliash
2023-01-04 16:33:28 +0100
a5b3350559
Add _M128 structure definition
belliash
2023-01-04 16:16:17 +0100
f19afbddb7
Do not create new bootloader stack as it is not needed any longer and kernel will use its own stack
belliash
2023-01-03 23:04:11 +0100
b22303003c
Add architecture name
belliash
2023-01-03 16:28:14 +0100
bb95223501
Implement BlActivateSerialControllerIO() routine for activating I/O space access on PCI(E) serial controllers
belliash
2023-01-03 00:10:24 +0100
d8f2135ac6
Add more PCI(E) related definitions
belliash
2023-01-02 23:59:32 +0100
c91708034b
Correct comments
belliash
2023-01-02 18:06:54 +0100
c5a7d0fe05
Improvements in COM port support
belliash
2023-01-02 16:14:00 +0100
e8e7d7b905
Add missing forward declaration
belliash
2023-01-02 16:11:50 +0100
4c031f4075
Add I/O related type definitions
belliash
2023-01-02 16:10:43 +0100
b6b25ed04d
Initialize serial port only debugging enabled
belliash
2023-01-01 19:20:34 +0100
94e9fa1293
Allow to provide custom COM port address
belliash
2022-12-29 23:44:52 +0100
feabac2d98
Set XTOS NT compatibility version
belliash
2022-12-29 22:39:39 +0100
58527ce5cb
Set correct image version
belliash
2022-12-29 22:37:39 +0100
7f21e4f19c
Dump EFI memory mappings
belliash
2022-12-29 17:09:44 +0100
6a27ea140b
Print xtldr debug messages only when debugging enabled
belliash
2022-12-28 23:30:03 +0100
e6a7918bac
Fix release build
belliash
2022-12-28 23:28:49 +0100
dec021b1ec
Reorganize early debug printing; initialize kernel stacks when needed
belliash
2022-12-28 23:11:35 +0100
75ac59f48a
Fix DEBUG/RELEASE building options
belliash
2022-12-28 17:15:21 +0100
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
belliash
2022-12-28 15:57:03 +0100
fcfa575bff
Implement HlReadTimeStampCounter() routine
belliash
2022-12-27 23:28:27 +0100
f46615f92c
Implement HlInvalidateTlbEntry(), HlReadModelSpecificRegister() and HlWriteModelSpecificRegister() routines
belliash
2022-12-27 23:19:33 +0100
938cd175c8
Export HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines
belliash
2022-12-27 22:48:10 +0100
602d89ef27
Fixes in HlIoPortInShort() and HlIoPortInLong() routines
belliash
2022-12-27 22:43:19 +0100
9828b23400
Implement HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines
belliash
2022-12-27 22:26:45 +0100
5c5f0a6df9
Add missing routine documentation
belliash
2022-12-27 22:13:48 +0100
bffb93b58c
Add missing calling convention
belliash
2022-12-27 22:05:46 +0100
6d77ff42c5
Loop over halt; add missing calling convention
belliash
2022-12-27 20:12:59 +0100
5b75d005a7
Implement HlClearInterruptFlag() and HlSetInterruptFlag() intrinsic routines
belliash
2022-12-27 18:54:01 +0100
8f3a4aef60
Code formatting
belliash
2022-12-23 22:27:08 +0100
db1b47e50e
Initialize CpuRegisters variable to silence a warning
belliash
2022-12-23 14:43:36 +0100
93ad0b4ea0
Set valid calling convention for HAL routines
belliash
2022-12-23 14:41:11 +0100
3ab1695968
Common routines for reading from and writing to CPU control registers
belliash
2022-12-23 14:30:52 +0100
3e8bdfe9fe
Add missing forward routines definitions
belliash
2022-12-23 00:09:33 +0100
df8de3f85f
Add missing routines documentation
belliash
2022-12-22 23:41:19 +0100
7496c7203d
Add missing routines documentation
belliash
2022-12-22 23:29:16 +0100
4d68b93ed3
Small code formatting and refactoring
belliash
2022-12-22 23:19:23 +0100
e9d30a0fd9
Add missing forward structures definitions
belliash
2022-12-22 22:58:52 +0100
8b02fb6c3f
Mostly update comments in PE/COFF module
belliash
2022-12-21 23:02:37 +0100
d158525659
Add missing documentation for BlCreateStack() routine
belliash
2022-12-21 22:34:59 +0100
6c4496f839
KERNEL_STACK_SIZE should be expressed in bytes as the name suggests, calculate number of pages where needed
belliash
2022-12-21 22:24:16 +0100
dc2570ca8e
Serial port should be working all the time, so announce that now booting the kernel
belliash
2022-12-21 20:52:53 +0100
cf828a6896
Fill in kernel initialization block
belliash
2022-12-21 20:04:20 +0100
652e3293b1
Get rid of EfiImageHandle and EfiSystemTable in UEFI_FIRMWARE_INFORMATION
belliash
2022-12-20 23:08:28 +0100
51886a05dd
Get rid of boot services code after exiting boot services
belliash
2022-12-20 23:06:32 +0100
7c38efc802
Update boot sequence and check PE/COFF image machine type compatibility
belliash
2022-12-20 19:11:15 +0100
edee9a8ec6
Rework BlGetMemoryMap() routine to use EFI_MEMORY_MAP structure; map EfiBootServicesData instead of EfiReservedMemoryType
belliash
2022-12-20 18:59:36 +0100
acda7aa37c
Add EFI_MEMORY_MAP structure definition
belliash
2022-12-20 15:52:15 +0100
eb5998c58e
Add a way to check PE/COFF image machine type
belliash
2022-12-20 15:37:13 +0100
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
belliash
2022-12-19 22:50:03 +0100
6871291c9a
Basic steps in XTOS boot protocol
belliash
2022-12-14 22:17:17 +0100
8b9c6780d5
Code formatting
belliash
2022-12-13 22:37:47 +0100
b2b6cd7e0f
Add targets for testing ExectOS inside QEMU VM
belliash
2022-12-13 20:07:15 +0100
03ebd3d273
Add missing EFI memory definitions
belliash
2022-12-13 15:49:44 +0100
0b9f398761
Tell the linker that ExectOS can handle addresses larger than 2GB
belliash
2022-12-11 23:31:19 +0100
9f4db475bb
Implement HlHalt() intrinsic routine and add basic definitions for kernel services
belliash
2022-12-11 23:09:35 +0100
0572b208f1
Add full paging support for AMD64 and i686 architectures, including PAE support
belliash
2022-12-11 20:14:04 +0100
324a88cc01
Implement HlCpuId() routine and corresponding structures for issueing CPUID instruction
belliash
2022-12-11 17:40:56 +0100
2b679c11d4
Fix a bug in BlAddVirtualMemoryMapping() routine causing PF (Page Fault) on systems with more than 3GB of RAM
belliash
2022-12-11 13:56:40 +0100
8beb7c13ec
Implement BlCreateStack() for i686 architecture
belliash
2022-12-07 23:01:59 +0100
42c762ddf8
Add missing stub for i686 builds
belliash
2022-12-07 22:07:41 +0100
900e86c9da
Create new stack and then boot XTOS, export more routines with the loader protocol
belliash
2022-12-07 20:34:16 +0100
d50fb7c37d
Implement BlCreateStack()
belliash
2022-12-07 19:46:36 +0100
43c16d054d
Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures
belliash
2022-12-07 18:54:21 +0100
93fa2aed67
Implement BlMapVirtualMemory() routine for recursive mapping
belliash
2022-12-06 23:32:31 +0100
3876414a48
Implement BlAddVirtualMemoryMapping() and BlInitializeVirtualMemory() routines
belliash
2022-12-06 17:49:00 +0100
2f03f84a20
Move memory related routines to a separate file and implement BlGetMemoryMap() routine
belliash
2022-12-05 20:08:18 +0100
6b2f34f287
Store physical address as well in the image context
belliash
2022-12-04 22:46:33 +0100
b89121fded
Implement routines for accessing and manipulating CPU control registers
belliash
2022-12-02 23:03:42 +0100
b275caf161
Implement RtlRemoveEntryList() routine
belliash
2022-11-28 23:00:20 +0100
cba4a065ba
Add missing comments
belliash
2022-11-23 20:51:40 +0100
519df2ad11
Allow to set VirtualAddress of loaded module
belliash
2022-11-23 20:34:20 +0100
2cb2328f45
Initial XtpLoadModule() implementation
belliash
2022-11-17 22:44:53 +0100
0db01053ab
Code formatting
belliash
2022-11-16 20:06:52 +0100
5ec08cb84a
Implement PeGetSubSystem() routine
belliash
2022-11-16 15:03:33 +0100
9f43ad06af
Implement PeRelocateImage() routine
belliash
2022-11-15 23:31:35 +0100
131275e788
Import loader structures definitions
belliash
2022-11-15 20:16:23 +0100
df5eab737b
Add PE/COFF image characteristics
belliash
2022-11-15 20:14:28 +0100
3125a25617
Add three most important linked lists into the kernel initialization block
belliash
2022-11-15 19:54:02 +0100
ee9f2df6a6
Properly relocate PE/COFF image
belliash
2022-11-15 00:19:21 +0100
fd4e9ffe63
Fix compiler warning for 32bit build, use proper data types
belliash
2022-11-14 17:58:53 +0100
e37e5b97af
Initial version of the kernel initialization block, needed to start the kernel
belliash
2022-11-12 23:17:44 +0100
2dd7b09fbb
Make sure PE image is executable
belliash
2022-11-12 19:16:00 +0100
b03c9c2a25
Further PE/COFF module improvements
belliash
2022-11-12 12:37:49 +0100
60c56c4462
Firmware dependent XT structures
belliash
2022-11-12 12:21:08 +0100
c2b720fbd8
Add missing PE subsystem
belliash
2022-11-07 23:16:48 +0100
5c5c6b7a5e
Initiate boot up sequence
belliash
2022-11-07 20:41:21 +0100
f0868b91ec
Initial XTOS boot protocol support
belliash
2022-11-07 20:21:07 +0100
3c6136811b
Use shorter and more readable variable names
belliash
2022-11-07 20:06:19 +0100
9aa6d6913a
Store ARC name as well as system path
belliash
2022-11-07 15:53:50 +0100
66713ba461
Print more accurate message
belliash
2022-11-07 15:51:27 +0100