73c768ba0e
Merge branch 'master' into prcb-cpu-features
2023-11-26 18:53:01 +01:00
55cc62f5a0
Rename KIRQL to KRUNLEVEL type
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-25 00:32:55 +01:00
a270c08dcf
feat: Add CPU vendor and features identification
...
Add functionality to identify the CPU vendor and features using the CPUID instruction.
The CPU vendor information is stored in the Processor Control Block (PRCB),
including the vendor name and a corresponding enumeration.
CPU features are also retrieved and stored in the PRCB.
Previously, the CPU vendor was not properly stored in the PRCB, caused by a missing type cast.
Using Rtl functions to copy the CPU vendor name to the PRCB.
Details:
- Introduced functions `ArpSetCpuVendor` and `ArpSetCpuFeatures` to set CPU vendor and features, respectively.
- Modified `ArpIdentifyProcessor` to call the new functions for vendor and features identification.
- Added `CPU_FEATURES` structure to `KPROCESSOR_CONTROL_BLOCK` structure to store CPU features.
Tests:
- Tested x86_64 on QEMU. Verified that the CPU vendor and features are correctly identified and stored in the PRCB.
2023-11-23 23:26:39 +01:00
dfae0b4727
Implement ArSetGdtEntryBase() routine
ci/woodpecker/push/build Pipeline was successful
2023-03-02 22:51:57 +01:00
d427ca20fb
Always include xtos.h in kernel sources
ci/woodpecker/push/build Pipeline was successful
2023-02-20 00:21:52 +01:00
d72002187d
Partially implement ArpIdentifyProcessor()
ci/woodpecker/push/build Pipeline was successful
2023-02-10 17:23:47 +01:00
e645cf664c
Set process and thread information in processor control block
ci/woodpecker/push/build Pipeline was successful
2023-02-09 17:30:24 +01:00
47f399e987
Set current process and thread in processor control block
ci/woodpecker/push/build Pipeline was successful
2023-02-09 00:02:45 +01:00
67768ae7a3
Mark ArpIdentifyProcessor() as unimplemented
ci/woodpecker/push/build Pipeline was successful
2023-02-06 16:15:24 +01:00
76f22fbdc4
Initialize segments and processor registers for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-02-05 15:45:22 +01:00
911903d0eb
Add missing routine description
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
ci/woodpecker/push/build Pipeline was successful
2023-02-05 09:55:59 +01:00
0b743a5f26
Add stub routine for identifying processor
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:42:30 +01:00
f37722b6e6
Distinguish ProcessorBlock and ProcessorControlBlock
ci/woodpecker/push/build Pipeline was successful
2023-02-03 19:28:03 +01:00
b90f37dad4
Fill in Interrupt Descriptor Table (IDT)
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:40:10 +01:00
648ad1636a
Cleanup TSS initialization code
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:27:50 +01:00
269214ed34
Another improvements to GDT
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:00:37 +01:00
cbd21ced39
Use a size of the structure, not a pointer
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:38:36 +01:00
dc1a94b982
This is 'Processor Block'
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:02:07 +01:00
3522539d4b
Initialize Interrupt Descriptor Table (IDT)
ci/woodpecker/push/build Pipeline was successful
2023-02-01 21:56:17 +01:00
1ef205d47b
Initialize DoubleFault and NonMaskableInterrupt TSS entries
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:36:40 +01:00
e2813bcdaa
Fix entries in Global Descriptor Table (GDT)
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:24:55 +01:00
892c9eca86
Do not hardcode I/O map base
ci/woodpecker/push/build Pipeline was successful
2023-01-30 22:38:41 +01:00
6f068513cd
Initial processor block initialization
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
ci/woodpecker/push/build Pipeline was successful
2023-01-29 10:54:52 +01:00
ae60753e33
Add missing source files for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:52:05 +01:00