MADT

From OSDev.wiki
Jump to navigation Jump to search

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 Device Type
1 1 Record Length

Based on the Device Type field value, the rest of the record layout can be determined.

Device Type 0 : Processor Local APIC

This device 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)

See also