**/\r
\r
#include <IndustryStandard/Acpi.h>\r
-\r
-//\r
-// MADT Definitions\r
-//\r
-#define EFI_ACPI_OEM_MADT_REVISION 0x00000000 // TBD\r
+#include <Platform.h>\r
\r
//\r
// Local APIC address\r
// Multiple APIC Description Table\r
//\r
EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = {\r
- EFI_ACPI_1_0_APIC_SIGNATURE,\r
- sizeof (EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE),\r
- EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION,\r
-\r
- //\r
- // Checksum will be updated at runtime\r
- //\r
- 0x00,\r
-\r
- //\r
- // It is expected that these values will be programmed at runtime\r
- //\r
- ' ', ' ', ' ', ' ', ' ', ' ',\r
-\r
- 0,\r
- EFI_ACPI_OEM_MADT_REVISION,\r
- 0,\r
- 0,\r
-\r
- //\r
- // MADT specific fields\r
- //\r
- EFI_ACPI_LOCAL_APIC_ADDRESS,\r
- EFI_ACPI_1_0_MULTIPLE_APIC_FLAGS,\r
+ {\r
+ {\r
+ EFI_ACPI_1_0_APIC_SIGNATURE,\r
+ sizeof (EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE),\r
+ EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION,\r
+ 0x00, // Checksum will be updated at runtime\r
+ {EFI_ACPI_OEM_ID},\r
+ EFI_ACPI_OEM_TABLE_ID,\r
+ EFI_ACPI_OEM_REVISION,\r
+ EFI_ACPI_CREATOR_ID,\r
+ EFI_ACPI_CREATOR_REVISION\r
+ },\r
+\r
+ //\r
+ // MADT specific fields\r
+ //\r
+ EFI_ACPI_LOCAL_APIC_ADDRESS,\r
+ EFI_ACPI_1_0_MULTIPLE_APIC_FLAGS,\r
+ },\r
\r
//\r
// Processor Local APIC Structure\r
//\r
-\r
- EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC, // Type\r
- sizeof (EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length\r
- 0x00, // Processor ID\r
- 0x00, // Local APIC ID\r
- 0x00000001, // Flags - Enabled by default\r
+ {\r
+ {\r
+ EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC, // Type\r
+ sizeof (EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length\r
+ 0x00, // Processor ID\r
+ 0x00, // Local APIC ID\r
+ 0x00000001 // Flags - Enabled by default\r
+ }\r
+ },\r
\r
//\r
// Interrupt Source Override Structure\r
//\r
\r
- //\r
- // IRQ0=>IRQ2 Interrupt Source Override Structure\r
- //\r
- EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE, // Type\r
- sizeof (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE),// Length\r
- 0x00, // Bus - ISA\r
- 0x00, // Source - IRQ0\r
- 0x00000002, // Global System Interrupt - IRQ2\r
- 0x0000, // Flags - Conforms to specifications of the bus\r
-\r
- //\r
- // ISO (SCI Active High) Interrupt Source Override Structure\r
- //\r
- EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE, // Type\r
- sizeof (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE),// Length\r
- 0x00, // Bus - ISA\r
- 0x09, // Source - IRQ0\r
- 0x00000009, // Global System Interrupt - IRQ2\r
- 0x000D, // Flags - Level-tiggered, Active High\r
+ {\r
+ {\r
+ //\r
+ // IRQ0=>IRQ2 Interrupt Source Override Structure\r
+ //\r
+ EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE, // Type\r
+ sizeof (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE),// Length\r
+ 0x00, // Bus - ISA\r
+ 0x00, // Source - IRQ0\r
+ 0x00000002, // Global System Interrupt - IRQ2\r
+ 0x0000 // Flags - Conforms to specifications of the bus\r
+ },\r
+\r
+ {\r
+ //\r
+ // ISO (SCI Active High) Interrupt Source Override Structure\r
+ //\r
+ EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE, // Type\r
+ sizeof (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE),// Length\r
+ 0x00, // Bus - ISA\r
+ 0x09, // Source - IRQ0\r
+ 0x00000009, // Global System Interrupt - IRQ2\r
+ 0x000D // Flags - Level-tiggered, Active High\r
+ }\r
+ },\r
\r
//\r
// IO APIC Structure\r
//\r
- EFI_ACPI_1_0_IO_APIC, // Type\r
- sizeof (EFI_ACPI_1_0_IO_APIC_STRUCTURE), // Length\r
- 0x02, // IO APIC ID\r
- EFI_ACPI_RESERVED_BYTE, // Reserved\r
- 0xFEC00000, // IO APIC Address (physical)\r
- 0x00000000 // Global System Interrupt Base\r
+ {\r
+ {\r
+ EFI_ACPI_1_0_IO_APIC, // Type\r
+ sizeof (EFI_ACPI_1_0_IO_APIC_STRUCTURE), // Length\r
+ 0x02, // IO APIC ID\r
+ EFI_ACPI_RESERVED_BYTE, // Reserved\r
+ 0xFEC00000, // IO APIC Address (physical)\r
+ 0x00000000 // Global System Interrupt Base\r
+ }\r
+ },\r
};\r
\r
\r