MADT
This page is about the ACPI MADT (Multiple APIC Description Table)
MADT
Introduction
The MADT describes all of the interrupt controllers in the system. It can be used to enumerate the processors currently available.
Table Structure
The MADT starts with the standard ACPI table header.
Offset (hex) | Length | Description |
---|---|---|
00 | 4 | Signature |
04 | 4 | Length |
08 | 1 | Revision |
09 | 1 | Checksum |
0a | 6 | OEMID |
10 | 8 | OEM Table ID |
18 | 4 | OEM Revision |
1c | 4 | Creator ID |
20 | 4 | Creator Revision |
After the standard header, the following fields are located.
Offset (hex) | Length | Description |
---|---|---|
24 | 4 | Local Controller Address |
28 | 4 | Flags (1 = Dual 8259 Legacy PICs Installed) |
After the Flags field, the rest of the MADT table contains a sequence of variable length records which enumerate the interrupt devices on this machine. Each record begins with the following header fields.
Offset (hex) | Length | Description |
---|---|---|
0 | 1 | Entry Type |
1 | 1 | Record Length |
Based on the Entry Type field value, the rest of the record layout can be determined.
Entry Type 0 : Processor Local APIC
This type represents a single physical processor and its local interrupt controller.
Offset (hex) | Length | Description |
---|---|---|
2 | 1 | ACPI Processor ID |
3 | 1 | APIC ID |
4 | 4 | Flags (1 = Processor Enabled) |
Entry Type 1 : I/O APIC
This type represents a I/O APIC.
Offset (hex) | Length | Description |
---|---|---|
2 | 1 | I/O APIC's ID |
3 | 1 | Reserved (0) |
4 | 4 | I/O APIC Address |
8 | 4 | Global System Interrupt Base |
Entry Type 2 : Interrupt Source Override
This entry type contains the data for an Interrupt Source Override (see ACPI spec.).
Offset (hex) | Length | Description |
---|---|---|
2 | 1 | Bus Source |
3 | 1 | IRQ Source |
4 | 4 | Global System Interrupt |
8 | 2 | Flags |