Commit Graph

190 Commits

Author SHA1 Message Date
75c519a70c
Use more generic name for this macro use pointer used behind it will point to kernel debugger after it gets initialized
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-07 19:37:44 +01:00
67768ae7a3
Mark ArpIdentifyProcessor() as unimplemented
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-06 16:15:24 +01:00
9c7d961c5a
Architecture specific initialization after processor init is done
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-06 15:53:11 +01:00
385f0e6de0
Not all AMD64 CPUs support large pages and global pages, unfortunately
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 22:14:47 +01:00
76f22fbdc4
Initialize segments and processor registers for i686 architecture
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 15:45:22 +01:00
911903d0eb
Add missing routine description
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 10:08:49 +01:00
d6aac59199
Let kernel initialize stack on it's own without relying on boot loader
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 09:55:59 +01:00
0b743a5f26
Add stub routine for identifying processor
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:42:30 +01:00
c6cadbd655
Initialize MXCSR register
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:30:12 +01:00
5eaf7d63a3
Initialize Page Attribute Table
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:14:34 +01:00
55cdae7c83
Initialize AMD64 processor registers
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-04 23:40:03 +01:00
f181215341
Initialize segment registers
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-04 00:17:07 +01:00
f37722b6e6
Distinguish ProcessorBlock and ProcessorControlBlock
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-03 19:28:03 +01:00
b90f37dad4
Fill in Interrupt Descriptor Table (IDT)
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:40:10 +01:00
648ad1636a
Cleanup TSS initialization code
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:27:50 +01:00
269214ed34
Another improvements to GDT
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:00:37 +01:00
a49d0804ce
Add trap handlers for both i686 and amd64
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-02 23:31:32 +01:00
404f2f85c6
Cleanup the Interrupt Stack Table
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 23:47:57 +01:00
7fc1f04cd0
TSS entry is already put into GDT table, just initialize it
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 23:37:12 +01:00
cbd21ced39
Use a size of the structure, not a pointer
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:38:36 +01:00
dc1a94b982
This is 'Processor Block'
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:02:07 +01:00
3522539d4b
Initialize Interrupt Descriptor Table (IDT)
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 21:56:17 +01:00
1ef205d47b
Initialize DoubleFault and NonMaskableInterrupt TSS entries
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:36:40 +01:00
e2813bcdaa
Fix entries in Global Descriptor Table (GDT)
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:24:55 +01:00
892c9eca86
Do not hardcode I/O map base
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-30 22:38:41 +01:00
a761d3125a
Architecture specific initialization prior to processor structures initialization
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-30 20:34:05 +01:00
6f068513cd
Initial processor block initialization
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-30 19:07:05 +01:00
bca7ac41b8
Initialize boot CPU structures inside kernel on i686 architecture
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 10:54:52 +01:00
7ac434cb99
Move architecture specific globals to external header, as ex. there is no GDT on ARM
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 09:48:59 +01:00
ae60753e33
Add missing source files for i686 architecture
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:52:05 +01:00
7bf4a9ab8d
Initialize boot CPU structures inside kernel on AMD64
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:45:17 +01:00
8733a23b20
Include kernel top header
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:34:34 +01:00
757560ffeb
Do not use EFI RunTime Services in kernel as they are not mapped correctly
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:32:52 +01:00
9cd9a1eafa
Correct typos
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:25:25 +01:00
27e2fdf4f2
Introduce architecture library as new kernel subsystem and move selected routines into new subsystem
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-28 10:34:55 +01:00
d5f9b20b51
Import kernel readme
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-27 22:59:53 +01:00
e94e50b5d9
Implement HlLoadInterruptDescriptorTable() intrinsics for loading IDT
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-26 20:08:57 +01:00
b57e79aa7f
Proceed with architecture specific initialization
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-25 19:37:13 +01:00
8da38af489
Rename KepInitializeBootStructures() to KepInitializeStack()
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-25 19:28:12 +01:00
3c3e93afc7
Save kernel initialization block earlier
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-25 18:45:08 +01:00
707dc37868
Fix type of Source parameter in HlLoadSegment() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-24 23:08:48 +01:00
35aa514f95
Implement HlLoadSegment() intrinsics routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-24 19:27:18 +01:00
d3d8d144a0
Implement HlLoadGlobalDescriptorTable() intrinsic
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-23 20:13:51 +01:00
adc6677c9d
Code formatting
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-23 20:04:32 +01:00
c81b858757
Implement HlReadGSQuadWord() intrinsic
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-23 19:59:54 +01:00
f20ab3e52e
Implement HlLoadTaskRegister() for loading TSS segment selector into task register
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-23 15:26:35 +01:00
9cbe2d458c
Initial support for EFI framebuffer 2023-01-23 15:26:35 +01:00
fb60625abc
Add more intrinsic routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-13 22:32:45 +01:00
12b8c5f539
Switch kernel stack and move boot structures initialization into separate routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-08 10:35:49 +01:00
3caca6e1bf
Set kernel subsystem to XT_NATIVE_KERNEL
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-06 19:25:21 +01:00
f2b51ff69c
Code formatting
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-05 22:45:52 +01:00
3131aac7a9
Move serial ports I/O address to architecture specific header
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-05 15:58:36 +01:00
5730e8692e
Reorganisation of KeStartXtSystem() routine and early debug printing
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-01-04 23:08:59 +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
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
e6a7918bac
Fix release build
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-28 23:28:49 +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
fcfa575bff
Implement HlReadTimeStampCounter() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 23:28:27 +01:00
f46615f92c
Implement HlInvalidateTlbEntry(), HlReadModelSpecificRegister() and HlWriteModelSpecificRegister() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 23:19:33 +01:00
938cd175c8
Export HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 22:48:10 +01:00
602d89ef27
Fixes in HlIoPortInShort() and HlIoPortInLong() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 22:43:19 +01:00
9828b23400
Implement HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines
Some checks failed
ci/woodpecker/push/build Pipeline failed
2022-12-27 22:26:45 +01:00
bffb93b58c
Add missing calling convention
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-27 22:05:46 +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
93ad0b4ea0
Set valid calling convention for HAL routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-23 14:41:11 +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
df8de3f85f
Add missing routines documentation
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-22 23:41:19 +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
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
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
324a88cc01
Implement HlCpuId() routine and corresponding structures for issueing CPUID instruction
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-11 17:40:56 +01:00
b89121fded
Implement routines for accessing and manipulating CPU control registers
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-12-02 23:03:42 +01:00
b275caf161
Implement RtlRemoveEntryList() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-28 23:00:20 +01:00
e37e5b97af
Initial version of the kernel initialization block, needed to start the kernel
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-11-12 23:17:44 +01:00
30bc0c3cb7
Install kernel under boot directory
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-26 20:30:39 +02:00
b1c08e4a9f
Implement RtlStringLength() and RtlStringToWideString() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-25 23:45:12 +02:00
6a0a1eab23
Add missing IN/OUT indicators
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-10-02 14:09:29 +02:00
6c6e5fe70a
Implement RtlListLoop() routine for detecting loops in linked lists
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-27 19:30:19 +02:00
67acacf528
Use SIZE_T for length limiter
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-26 23:02:38 +02:00
252eb5c825
Export RtlWideStringConcatenate() and RtlWideStringLength() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-26 23:01:17 +02:00
dd0c86003d
Set correct calling convention for RtlWideStringCompare() and RtlWideStringTokenize() routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-26 22:54:21 +02:00
a0f359bcf7
Implement RtlWideStringConcatenate() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-26 17:26:00 +02:00
c7f53e193a
Implement RtlWideStringLength() routine
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-26 16:53:58 +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
41f1aee6e3
Implemented RtlCompareMemory() for better compatibility with NT and made use of it in RtlSameMemory(), implemented RtlFillMemory(), RtlMoveMemory(), RtlSetMemory() and RtlZeroMemory() as well
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-06 17:51:44 +02:00
d56b10f252
Various fixes to the existing routines:
All checks were successful
ci/woodpecker/push/build Pipeline was successful
* Export RtlWideStringTokenize()
 * Allow to compare whole strings in RtlWideStringCompare() when no length specified
 * RtlSameMemory() returns boolean now
 * Source bytes can be constant value in RtlCopyMemory()
2022-09-05 15:17:12 +02:00
8a91412ec4
Export existing kernel routines
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-01 22:05:35 +02:00
033447f759
Calling convention goes first
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2022-09-01 22:04:07 +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