From b89c2fba838701e12e51471555b5f3d386ecc529 Mon Sep 17 00:00:00 2001 From: antifallobst Date: Sat, 11 Mar 2023 11:05:26 +0100 Subject: [PATCH] docs: documented basic ACPI implementation --- .wiki/Kernel-documentation.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.wiki/Kernel-documentation.md b/.wiki/Kernel-documentation.md index 4ed56fb..6dfc872 100644 --- a/.wiki/Kernel-documentation.md +++ b/.wiki/Kernel-documentation.md @@ -326,6 +326,38 @@ More information can be found on the limine project's [GitHub](https://github.co ## drivers +### acpi/acpi.h +OSDev Wiki: [ACPI](https://wiki.osdev.org/ACPI) + +#### `acpi_init(boot_info)` - function (void) +Initializes the ACPI (Advanced Configuration and Power Interface). + +### acpi/rsdp.h +OSDev Wiki: [RSDP](https://wiki.osdev.org/RSDP) + +#### `rsdp_descriptor_v1_T` - struct [packed] +The RSDP Table used in ACPI v1.0 + +| Name | Type | Description | +|--------------|----------|-----------------------------------------------------------| +| signature | char[8] | Needs to be `"RSD PTR "` (with the withespace at the end) | +| checksum | uint8_t | Used to validate the table | +| oem_id | char[6] | This string identifies the OEM | +| revision | uint8_t | Tells whether the RSDP is version 1 or 2+ | +| rsdt_address | uint32_t | The Physical Address of the RSDT | + +#### `rsdp_descriptor_v2_T` - struct [packed] +The RSDP Table used in ACPI v2.0 or higher + +| Name | Type | Description | +|-------------------|----------------------|----------------------------------------------------------------------------------| +| descriptor_v1 | rsdp_descriptor_v1_T | A table in the format of the ACPI 1.0 specification | +| length | uint32_t | The size of the whole table | +| xsdt_address | uint64_t | The Address of the XSDT (when available this should be used instead of the RSDT) | +| checksum_extended | uint8_t | Used to calculate the checksum of the whole table | +| reserved | uint8_t[3] | Can be ignored | + + ### elf/elf.h #### `elf_executable_T` - struct This struct holds the parsed data of an ELF executable.