mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:37:35 +00:00
Kernel/ACPI: Sprinkle links to the specification all over
The latest version of the ACPI specification (6.4) now has a web version, making it possible to link directly to the relevant sections of the specification. I added links to the stuff that was easy to find. The spec can be found here: https://uefi.org/specs/ACPI/6.4/index.html
This commit is contained in:
parent
10ba6f254c
commit
4ee58d36c0
2 changed files with 21 additions and 2 deletions
|
@ -169,7 +169,8 @@ void Parser::access_generic_address(const Structures::GenericAddressStructure& s
|
|||
return;
|
||||
}
|
||||
case GenericAddressStructure::AddressSpace::PCIConfigurationSpace: {
|
||||
// According to the ACPI specification 6.2, page 168, PCI addresses must be confined to devices on Segment group 0, bus 0.
|
||||
// According to https://uefi.org/specs/ACPI/6.4/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#address-space-format,
|
||||
// PCI addresses must be confined to devices on Segment group 0, bus 0.
|
||||
auto pci_address = PCI::Address(0, 0, ((structure.address >> 24) & 0xFF), ((structure.address >> 16) & 0xFF));
|
||||
dbgln("ACPI: Sending value {:x} to {}", value, pci_address);
|
||||
u32 offset_in_pci_address = structure.address & 0xFFFF;
|
||||
|
@ -189,7 +190,8 @@ void Parser::access_generic_address(const Structures::GenericAddressStructure& s
|
|||
|
||||
bool Parser::validate_reset_register()
|
||||
{
|
||||
// According to the ACPI spec 6.2, page 152, The reset register can only be located in I/O bus, PCI bus or memory-mapped.
|
||||
// According to https://uefi.org/specs/ACPI/6.4/04_ACPI_Hardware_Specification/ACPI_Hardware_Specification.html#reset-register,
|
||||
// the reset register can only be located in I/O bus, PCI bus or memory-mapped.
|
||||
auto fadt = map_typed<Structures::FADT>(m_fadt);
|
||||
return (fadt->reset_reg.address_space == (u8)GenericAddressStructure::AddressSpace::PCIConfigurationSpace || fadt->reset_reg.address_space == (u8)GenericAddressStructure::AddressSpace::SystemMemory || fadt->reset_reg.address_space == (u8)GenericAddressStructure::AddressSpace::SystemIO);
|
||||
}
|
||||
|
@ -297,6 +299,7 @@ static bool validate_table(const Structures::SDTHeader& v_header, size_t length)
|
|||
return false;
|
||||
}
|
||||
|
||||
// https://uefi.org/specs/ACPI/6.4/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#finding-the-rsdp-on-ia-pc-systems
|
||||
UNMAP_AFTER_INIT Optional<PhysicalAddress> StaticParsing::find_rsdp()
|
||||
{
|
||||
StringView signature("RSD PTR ");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue