-
Notifications
You must be signed in to change notification settings - Fork 13
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.
- The CPU must support SSE
-
If the CPU supports the
rdrand
instruction then therdrand
instruction will be used to generate entropy
-
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
-
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
- 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 controllers that do not support 64-bit addressing are unsupported
- AHCI devices that do not support LBA48 are unsupported
- When a BGA device is available it is used to allow changing the display resolution