Skip to content

Hardware

Dennis Wölfing edited this page Jul 30, 2022 · 3 revisions

This page documents how Dennix configures hardware devices and which features are used under which circumstances.

CPU

  • The CPU must support SSE
  • If the CPU supports the rdrand instruction then the rdrand instruction will be used to generate entropy

Interrupt controllers

  • If the ACPI tables contain a valid MADT then
    • the APIC is used
    • any I/O APICs listed in the MADT are used
    • PCI interrupt lines are not supported in this case
  • If no I/O APICs are used then
    • Two 8259 PICs are assumed to be present and are used

Timers

  • If the ACPI table contain a valid HPET table then
    • If timer 0 of the HPET does not support periodic mode then the HPET is unsupported
    • If the HPET supports FSB then the HPET is configured using FSB
    • Otherwise if the HPET support the Legacy Replacement Routing then the HPET is configured using the Legacy Replacement Routing
    • Otherwise if the HPET supports routing to APIC IRQ16 or higher then the HPET is configured to use the lowest supported IRQ equal to or higher than IRQ16
    • Otherwise the HPET is unsupported
  • If the HPET is not used then
    • The PIT is assumed to be present and is used

ATA

  • If the ATA controllers does not support bus mastering then it is unsupported
  • Interrupt routing:
    • If the ATA channels default to ISA compatibility mode then they operate in ISA compatibility mode
    • Otherwise if the APIC is not used then the ATA channels operate in PCI native mode
    • Otherwise if the ATA controller supports MSI then the ATA channels operate in PCI native mode using MSI
    • Otherwise if both ATA channels support switching to ISA compatibility mode then the ATA channels operate in ISA compatibility mode
    • Otherwise the ATA controller is unsupported
  • Reads and writes are always performed as DMA transfers

AHCI

  • AHCI controllers that do not support 64-bit addressing are unsupported
  • AHCI devices that do not support LBA48 are unsupported

BGA

  • When a BGA device is available it is used to allow changing the display resolution
Clone this wiki locally