#ifndef _LEGACY_BIOS_MPTABLE_H_\r
#define _LEGACY_BIOS_MPTABLE_H_\r
\r
-#define EFI_LEGACY_MP_TABLE_REV_1_4 0x04\r
+#define EFI_LEGACY_MP_TABLE_REV_1_4 0x04\r
\r
//\r
// Define MP table structures. All are packed.\r
\r
#define EFI_LEGACY_MP_TABLE_FLOATING_POINTER_SIGNATURE SIGNATURE_32 ('_', 'M', 'P', '_')\r
typedef struct {\r
- UINT32 Reserved1 : 6;\r
- UINT32 MutipleClk : 1;\r
- UINT32 Imcr : 1;\r
- UINT32 Reserved2 : 24;\r
+ UINT32 Reserved1 : 6;\r
+ UINT32 MutipleClk : 1;\r
+ UINT32 Imcr : 1;\r
+ UINT32 Reserved2 : 24;\r
} FEATUREBYTE2_5;\r
\r
typedef struct {\r
- UINT32 Signature;\r
- UINT32 PhysicalAddress;\r
- UINT8 Length;\r
- UINT8 SpecRev;\r
- UINT8 Checksum;\r
- UINT8 FeatureByte1;\r
- FEATUREBYTE2_5 FeatureByte2_5;\r
+ UINT32 Signature;\r
+ UINT32 PhysicalAddress;\r
+ UINT8 Length;\r
+ UINT8 SpecRev;\r
+ UINT8 Checksum;\r
+ UINT8 FeatureByte1;\r
+ FEATUREBYTE2_5 FeatureByte2_5;\r
} EFI_LEGACY_MP_TABLE_FLOATING_POINTER;\r
\r
#define EFI_LEGACY_MP_TABLE_HEADER_SIGNATURE SIGNATURE_32 ('P', 'C', 'M', 'P')\r
typedef struct {\r
- UINT32 Signature;\r
- UINT16 BaseTableLength;\r
- UINT8 SpecRev;\r
- UINT8 Checksum;\r
- CHAR8 OemId[8];\r
- CHAR8 OemProductId[12];\r
- UINT32 OemTablePointer;\r
- UINT16 OemTableSize;\r
- UINT16 EntryCount;\r
- UINT32 LocalApicAddress;\r
- UINT16 ExtendedTableLength;\r
- UINT8 ExtendedChecksum;\r
- UINT8 Reserved;\r
+ UINT32 Signature;\r
+ UINT16 BaseTableLength;\r
+ UINT8 SpecRev;\r
+ UINT8 Checksum;\r
+ CHAR8 OemId[8];\r
+ CHAR8 OemProductId[12];\r
+ UINT32 OemTablePointer;\r
+ UINT16 OemTableSize;\r
+ UINT16 EntryCount;\r
+ UINT32 LocalApicAddress;\r
+ UINT16 ExtendedTableLength;\r
+ UINT8 ExtendedChecksum;\r
+ UINT8 Reserved;\r
} EFI_LEGACY_MP_TABLE_HEADER;\r
\r
typedef struct {\r
- UINT8 EntryType;\r
+ UINT8 EntryType;\r
} EFI_LEGACY_MP_TABLE_ENTRY_TYPE;\r
\r
//\r
//\r
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_PROCESSOR 0x00\r
typedef struct {\r
- UINT8 Enabled : 1;\r
- UINT8 Bsp : 1;\r
- UINT8 Reserved : 6;\r
+ UINT8 Enabled : 1;\r
+ UINT8 Bsp : 1;\r
+ UINT8 Reserved : 6;\r
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS;\r
\r
typedef struct {\r
- UINT32 Stepping : 4;\r
- UINT32 Model : 4;\r
- UINT32 Family : 4;\r
- UINT32 Reserved : 20;\r
+ UINT32 Stepping : 4;\r
+ UINT32 Model : 4;\r
+ UINT32 Family : 4;\r
+ UINT32 Reserved : 20;\r
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE;\r
\r
typedef struct {\r
- UINT32 Fpu : 1;\r
- UINT32 Reserved1 : 6;\r
- UINT32 Mce : 1;\r
- UINT32 Cx8 : 1;\r
- UINT32 Apic : 1;\r
- UINT32 Reserved2 : 22;\r
+ UINT32 Fpu : 1;\r
+ UINT32 Reserved1 : 6;\r
+ UINT32 Mce : 1;\r
+ UINT32 Cx8 : 1;\r
+ UINT32 Apic : 1;\r
+ UINT32 Reserved2 : 22;\r
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES;\r
\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 Id;\r
- UINT8 Ver;\r
- EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS Flags;\r
- EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE Signature;\r
- EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES Features;\r
- UINT32 Reserved1;\r
- UINT32 Reserved2;\r
+ UINT8 EntryType;\r
+ UINT8 Id;\r
+ UINT8 Ver;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS Flags;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE Signature;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES Features;\r
+ UINT32 Reserved1;\r
+ UINT32 Reserved2;\r
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR;\r
\r
//\r
//\r
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_BUS 0x01\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 Id;\r
- CHAR8 TypeString[6];\r
+ UINT8 EntryType;\r
+ UINT8 Id;\r
+ CHAR8 TypeString[6];\r
} EFI_LEGACY_MP_TABLE_ENTRY_BUS;\r
\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUS "CBUS " // Corollary CBus\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUSII "CBUSII" // Corollary CBUS II\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_EISA "EISA " // Extended ISA\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_FUTURE "FUTURE" // IEEE FutureBus\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_INTERN "INTERN" // Internal bus\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_ISA "ISA " // Industry Standard Architecture\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBI "MBI " // Multibus I\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBII "MBII " // Multibus II\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MCA "MCA " // Micro Channel Architecture\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPI "MPI " // MPI\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPSA "MPSA " // MPSA\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_NUBUS "NUBUS " // Apple Macintosh NuBus\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCI "PCI " // Peripheral Component Interconnect\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCMCIA "PCMCIA" // PC Memory Card International Assoc.\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_TC "TC " // DEC TurboChannel\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VL "VL " // VESA Local Bus\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VME "VME " // VMEbus\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_XPRESS "XPRESS" // Express System Bus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUS "CBUS " // Corollary CBus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUSII "CBUSII" // Corollary CBUS II\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_EISA "EISA " // Extended ISA\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_FUTURE "FUTURE" // IEEE FutureBus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_INTERN "INTERN" // Internal bus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_ISA "ISA " // Industry Standard Architecture\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBI "MBI " // Multibus I\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBII "MBII " // Multibus II\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MCA "MCA " // Micro Channel Architecture\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPI "MPI " // MPI\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPSA "MPSA " // MPSA\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_NUBUS "NUBUS " // Apple Macintosh NuBus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCI "PCI " // Peripheral Component Interconnect\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCMCIA "PCMCIA" // PC Memory Card International Assoc.\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_TC "TC " // DEC TurboChannel\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VL "VL " // VESA Local Bus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VME "VME " // VMEbus\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_XPRESS "XPRESS" // Express System Bus\r
//\r
// Entry Type 2: I/O APIC.\r
//\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IOAPIC 0x02\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IOAPIC 0x02\r
typedef struct {\r
- UINT8 Enabled : 1;\r
- UINT8 Reserved : 7;\r
+ UINT8 Enabled : 1;\r
+ UINT8 Reserved : 7;\r
} EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS;\r
\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 Id;\r
- UINT8 Ver;\r
- EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS Flags;\r
- UINT32 Address;\r
+ UINT8 EntryType;\r
+ UINT8 Id;\r
+ UINT8 Ver;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS Flags;\r
+ UINT32 Address;\r
} EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC;\r
\r
//\r
// Entry Type 3: I/O Interrupt Assignment.\r
//\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IO_INT 0x03\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IO_INT 0x03\r
typedef struct {\r
- UINT16 Polarity : 2;\r
- UINT16 Trigger : 2;\r
- UINT16 Reserved : 12;\r
+ UINT16 Polarity : 2;\r
+ UINT16 Trigger : 2;\r
+ UINT16 Reserved : 12;\r
} EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS;\r
\r
typedef struct {\r
- UINT8 IntNo : 2;\r
- UINT8 Dev : 5;\r
- UINT8 Reserved : 1;\r
+ UINT8 IntNo : 2;\r
+ UINT8 Dev : 5;\r
+ UINT8 Reserved : 1;\r
} EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS;\r
\r
typedef union {\r
- EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS fields;\r
- UINT8 byte;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS fields;\r
+ UINT8 byte;\r
} EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ;\r
\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 IntType;\r
- EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags;\r
- UINT8 SourceBusId;\r
- EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq;\r
- UINT8 DestApicId;\r
- UINT8 DestApicIntIn;\r
+ UINT8 EntryType;\r
+ UINT8 IntType;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags;\r
+ UINT8 SourceBusId;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq;\r
+ UINT8 DestApicId;\r
+ UINT8 DestApicIntIn;\r
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT;\r
\r
typedef enum {\r
- EfiLegacyMpTableEntryIoIntTypeInt = 0,\r
- EfiLegacyMpTableEntryIoIntTypeNmi = 1,\r
- EfiLegacyMpTableEntryIoIntTypeSmi = 2,\r
- EfiLegacyMpTableEntryIoIntTypeExtInt= 3,\r
+ EfiLegacyMpTableEntryIoIntTypeInt = 0,\r
+ EfiLegacyMpTableEntryIoIntTypeNmi = 1,\r
+ EfiLegacyMpTableEntryIoIntTypeSmi = 2,\r
+ EfiLegacyMpTableEntryIoIntTypeExtInt = 3,\r
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_TYPE;\r
\r
typedef enum {\r
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_FLAGS_POLARITY;\r
\r
typedef enum {\r
- EfiLegacyMpTableEntryIoIntFlagsTriggerSpec = 0x0,\r
- EfiLegacyMpTableEntryIoIntFlagsTriggerEdge = 0x1,\r
- EfiLegacyMpTableEntryIoIntFlagsTriggerReserved = 0x2,\r
- EfiLegacyMpTableEntryIoIntFlagsTriggerLevel = 0x3,\r
+ EfiLegacyMpTableEntryIoIntFlagsTriggerSpec = 0x0,\r
+ EfiLegacyMpTableEntryIoIntFlagsTriggerEdge = 0x1,\r
+ EfiLegacyMpTableEntryIoIntFlagsTriggerReserved = 0x2,\r
+ EfiLegacyMpTableEntryIoIntFlagsTriggerLevel = 0x3,\r
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_FLAGS_TRIGGER;\r
\r
//\r
//\r
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_LOCAL_INT 0x04\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 IntType;\r
- EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags;\r
- UINT8 SourceBusId;\r
- EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq;\r
- UINT8 DestApicId;\r
- UINT8 DestApicIntIn;\r
+ UINT8 EntryType;\r
+ UINT8 IntType;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags;\r
+ UINT8 SourceBusId;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq;\r
+ UINT8 DestApicId;\r
+ UINT8 DestApicIntIn;\r
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT;\r
\r
typedef enum {\r
- EfiLegacyMpTableEntryLocalIntTypeInt = 0,\r
- EfiLegacyMpTableEntryLocalIntTypeNmi = 1,\r
- EfiLegacyMpTableEntryLocalIntTypeSmi = 2,\r
- EfiLegacyMpTableEntryLocalIntTypeExtInt = 3,\r
+ EfiLegacyMpTableEntryLocalIntTypeInt = 0,\r
+ EfiLegacyMpTableEntryLocalIntTypeNmi = 1,\r
+ EfiLegacyMpTableEntryLocalIntTypeSmi = 2,\r
+ EfiLegacyMpTableEntryLocalIntTypeExtInt = 3,\r
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_TYPE;\r
\r
typedef enum {\r
- EfiLegacyMpTableEntryLocalIntFlagsPolaritySpec = 0x0,\r
- EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveHigh= 0x1,\r
- EfiLegacyMpTableEntryLocalIntFlagsPolarityReserved = 0x2,\r
- EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveLow = 0x3,\r
+ EfiLegacyMpTableEntryLocalIntFlagsPolaritySpec = 0x0,\r
+ EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveHigh = 0x1,\r
+ EfiLegacyMpTableEntryLocalIntFlagsPolarityReserved = 0x2,\r
+ EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveLow = 0x3,\r
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_FLAGS_POLARITY;\r
\r
typedef enum {\r
- EfiLegacyMpTableEntryLocalIntFlagsTriggerSpec = 0x0,\r
- EfiLegacyMpTableEntryLocalIntFlagsTriggerEdge = 0x1,\r
- EfiLegacyMpTableEntryLocalIntFlagsTriggerReserved = 0x2,\r
- EfiLegacyMpTableEntryLocalIntFlagsTriggerLevel = 0x3,\r
+ EfiLegacyMpTableEntryLocalIntFlagsTriggerSpec = 0x0,\r
+ EfiLegacyMpTableEntryLocalIntFlagsTriggerEdge = 0x1,\r
+ EfiLegacyMpTableEntryLocalIntFlagsTriggerReserved = 0x2,\r
+ EfiLegacyMpTableEntryLocalIntFlagsTriggerLevel = 0x3,\r
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_FLAGS_TRIGGER;\r
\r
//\r
// Entry Type 128: System Address Space Mapping.\r
//\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_SYS_ADDR_SPACE_MAPPING 0x80\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_SYS_ADDR_SPACE_MAPPING 0x80\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 Length;\r
- UINT8 BusId;\r
- UINT8 AddressType;\r
- UINT64 AddressBase;\r
- UINT64 AddressLength;\r
+ UINT8 EntryType;\r
+ UINT8 Length;\r
+ UINT8 BusId;\r
+ UINT8 AddressType;\r
+ UINT64 AddressBase;\r
+ UINT64 AddressLength;\r
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_SYS_ADDR_SPACE_MAPPING;\r
\r
typedef enum {\r
//\r
#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_BUS_HIERARCHY 0x81\r
typedef struct {\r
- UINT8 SubtractiveDecode : 1;\r
- UINT8 Reserved : 7;\r
+ UINT8 SubtractiveDecode : 1;\r
+ UINT8 Reserved : 7;\r
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO;\r
\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 Length;\r
- UINT8 BusId;\r
- EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO BusInfo;\r
- UINT8 ParentBus;\r
- UINT8 Reserved1;\r
- UINT8 Reserved2;\r
- UINT8 Reserved3;\r
+ UINT8 EntryType;\r
+ UINT8 Length;\r
+ UINT8 BusId;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO BusInfo;\r
+ UINT8 ParentBus;\r
+ UINT8 Reserved1;\r
+ UINT8 Reserved2;\r
+ UINT8 Reserved3;\r
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY;\r
\r
//\r
// Entry Type 130: Compatibility Bus Address Space Modifier.\r
//\r
-#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_COMPAT_BUS_ADDR_SPACE_MODIFIER 0x82\r
+#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_COMPAT_BUS_ADDR_SPACE_MODIFIER 0x82\r
typedef struct {\r
- UINT8 RangeMode : 1;\r
- UINT8 Reserved : 7;\r
+ UINT8 RangeMode : 1;\r
+ UINT8 Reserved : 7;\r
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE;\r
\r
typedef struct {\r
- UINT8 EntryType;\r
- UINT8 Length;\r
- UINT8 BusId;\r
- EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE AddrMode;\r
- UINT32 PredefinedRangeList;\r
+ UINT8 EntryType;\r
+ UINT8 Length;\r
+ UINT8 BusId;\r
+ EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE AddrMode;\r
+ UINT32 PredefinedRangeList;\r
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER;\r
\r
#pragma pack()\r