forked from lolo859/vystem
Vystem 0.2
This commit is contained in:
@@ -34,7 +34,9 @@ Starting here, all logs go through the standard log API.
|
||||
|
||||
2.1.2) Initializing current PTP using boot configuration information
|
||||
|
||||
2.1.3) Parsing and validating memory map, initializing physical pages bitmap
|
||||
2.1.3) Using the framebuffer informations, initializing the framebuffer subsystem
|
||||
|
||||
2.1.4) Parsing and validating memory map, initializing physical pages bitmap
|
||||
|
||||
### 2.2) Pez dependencies subsystems initialization
|
||||
|
||||
@@ -62,19 +64,19 @@ Starting here, all logs go through the standard log API.
|
||||
|
||||
2.2.5) Benchmarking and testing radix tree subsystem
|
||||
|
||||
## 2.3) Pez physical subsystem initialization
|
||||
### 2.3) Pez physical subsystem initialization
|
||||
|
||||
2.3.1) Creating Pez physical allocation plane
|
||||
|
||||
2.3.2) Benchmarking and testing Pez physical allocation plane
|
||||
|
||||
## 2.4) Pez virtual subsystem initialization
|
||||
### 2.4) Pez virtual subsystem initialization
|
||||
|
||||
2.4.1) Creating Pez virtual allocation plane for kernel heap
|
||||
|
||||
(Pez virtual plane for kernel heap isn't benchmarked and tested because it's exactly the same algorithm and metadatas under the hood)
|
||||
|
||||
## 2.5) Kernel heap initialization
|
||||
### 2.5) Kernel heap initialization
|
||||
|
||||
2.5.1) Initializing kernel heap structure
|
||||
|
||||
@@ -87,3 +89,89 @@ Starting here, all logs go through the standard log API.
|
||||
2.5.2.c) Adding first slab and verifying slab metadata
|
||||
|
||||
2.5.3) Benchmarking and testing kernel heap
|
||||
|
||||
## 3) Basic CPU features configuration
|
||||
|
||||
### 3.1) TSS structure initialization
|
||||
|
||||
3.1.1) Initializing TSS structure
|
||||
|
||||
### 3.2) GDT structure initialization
|
||||
|
||||
3.2.1) Generating GDT structure
|
||||
|
||||
3.2.2) Loading GDT register
|
||||
|
||||
3.2.3) Loading TSS register
|
||||
|
||||
### 3.3) IDT structure initialization
|
||||
|
||||
3.3.1) Generating IDT structure
|
||||
|
||||
3.3.2) Loading IDT register
|
||||
|
||||
## 4) ACPI parsing
|
||||
|
||||
### 4.1) Parsing RSDP
|
||||
|
||||
### 4.2) Parsing XSDT
|
||||
|
||||
### 4.3) Parsing all availables tables
|
||||
|
||||
### 4.4) Parsing MADT table
|
||||
|
||||
4.4.1) Counting all LAPICs, IOAPICs and ISOs
|
||||
|
||||
4.4.2) Initializing devices system for LAPICs and IOAPICs
|
||||
|
||||
4.4.3) Registering all informations inside MADT table
|
||||
|
||||
4.4.3.a) Registering, initializing and binding all LAPICs
|
||||
|
||||
4.4.3.b) Registering, initializing and binding all IOAPICs
|
||||
|
||||
4.4.3.c) Registering all ISOs
|
||||
|
||||
## 5) Devices bootstrap
|
||||
|
||||
### 5.1) Applications= processors (AP) bootstrap
|
||||
|
||||
5.1.1) Disabing all GSI lines
|
||||
|
||||
5.1.2) Checking somes CPU ID flags for logging
|
||||
|
||||
5.1.2.a) Checking hypervisor flag
|
||||
|
||||
5.1.2.b) Checking TSC constant flag
|
||||
|
||||
5.1.3) Trying to obtain CPU frequency
|
||||
|
||||
5.1.3.a) Trying to obtain CPU frequency from CPU ID
|
||||
|
||||
5.1.3.b) Trying to obtain CPU frequency from TSC and PIT
|
||||
|
||||
5.1.4) Initializing LAPIC for bootstrap CPU
|
||||
|
||||
5.1.5) Estimating LAPIC frequency
|
||||
|
||||
5.1.6) Loading 32 bits mode GDT for AP bootstrap
|
||||
|
||||
5.1.7) Preparing for AP launch by filling various structures
|
||||
|
||||
5.1.8) Launching all APs in an infinite loop
|
||||
|
||||
---
|
||||
|
||||
Starting here, all logs go through the standard library print functions.
|
||||
|
||||
---
|
||||
|
||||
5.1.9) Switching legacy IRQ management from PIT to IOAPIC subsystem
|
||||
|
||||
### 5.2) Keyboard bootstrap
|
||||
|
||||
5.2.1) Initializing keyboard subsystem
|
||||
|
||||
5.2.2) Initializing PS2 keyboard driver
|
||||
|
||||
5.2.3) Disabing PS2 keyboard scanning for the rest of kernel boot process
|
||||
|
||||
Reference in New Issue
Block a user