--- /dev/null
+/*++\r
+\r
+ Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ \r\r
+ This program and the accompanying materials are licensed and made available under\r\r
+ the terms and conditions of the BSD License that accompanies this distribution. \r\r
+ The full text of the license may be found at \r\r
+ http://opensource.org/licenses/bsd-license.php. \r\r
+ \r\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r\r
+ \r\r
+\r
+\r
+Module Name:\r
+\r
+ IdccData.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef _IDCCDATAHUB_GUID_H_\r
+#define _IDCCDATAHUB_GUID_H_\r
+\r
+//\r
+// This GUID is for the IDCC related data found in the Data Hub.\r
+//\r
+#define IDCC_DATA_HUB_GUID \\r
+ { 0x788e1d9f, 0x1eab, 0x47d2, 0xa2, 0xf3, 0x78, 0xca, 0xe8, 0x7d, 0x60, 0x12 }\r
+\r
+extern EFI_GUID gIdccDataHubGuid;\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+ UINT32 Type;\r
+ UINT32 RecordLength;\r
+} EFI_IDCC_DATA_HEADER;\r
+\r
+typedef struct {\r
+ EFI_IDCC_DATA_HEADER IdccHeader;\r
+ UINT32 Tcontrol;\r
+} EFI_IDCC_TCONTROL;\r
+\r
+typedef struct {\r
+ UINT32 EntryCount;\r
+} EFI_IDCC_CLOCK_COMMON;\r
+\r
+typedef struct {\r
+ UINT8 Polarity;\r
+ UINT8 Percent;\r
+ UINT32 FpValue;\r
+} EFI_IDCC_TYPE_2_DATA;\r
+\r
+typedef struct {\r
+ UINT8 SetupVal;\r
+ UINT32 FpValue;\r
+} EFI_IDCC_TYPE_3_4_DATA;\r
+\r
+typedef struct {\r
+ EFI_IDCC_DATA_HEADER IdccHeader;\r
+ UINT32 ProcessorRatio;\r
+} EFI_IDCC_PROCESSOR_RATIO;\r
+\r
+typedef struct {\r
+ EFI_IDCC_DATA_HEADER IdccHeader;\r
+ UINT32 BoardFormFactor;\r
+} EFI_IDCC_BOARD_FORM_FACTOR;\r
+\r
+typedef struct {\r
+ EFI_IDCC_DATA_HEADER IdccHeader;\r
+ UINT32 ProcessorInfo;\r
+} EFI_IDCC_PROCESSOR_INFO;\r
+\r
+#define EFI_IDCC_PROCESSOR_UNCON (1 << 0) // Bit 0: UnCon CPU\r
+#define EFI_IDCC_PROCESSOR_UNLOCK (1 << 1) // Bit 1: UnLock CPU\r
+#define EFI_IDCC_PROCESSOR_CNR (1 << 2) // Bit 2: CNR CPU\r
+#define EFI_IDCC_PROCESSOR_KNF (1 << 3) // Bit 3: KNF CPU\r
+\r
+typedef struct {\r
+ EFI_IDCC_DATA_HEADER IdccHeader;\r
+ UINT32 MinFSB;\r
+ UINT32 MaxFSB;\r
+ UINT8 StepFSB;\r
+} EFI_IDCC_FSB_DATA;\r
+\r
+#pragma pack()\r
+\r
+#define EFI_IDCC_POSITIVE 0\r
+#define EFI_IDCC_NEGATIVE 1\r
+\r
+//\r
+// Board Form Factor equates.\r
+//\r
+#define ATX_FORM_FACTOR 0x00\r
+#define BTX_FORM_FACTOR 0x01\r
+\r
+\r
+#define EFI_IDCC_TCONTROL_TYPE 1\r
+#define EFI_IDCC_FSB_TYPE 2\r
+#define EFI_IDCC_PCI_TYPE 3\r
+#define EFI_IDCC_PCIE_TYPE 4\r
+#define EFI_IDCC_PROC_RATIO_TYPE 5\r
+#define EFI_IDCC_BOARD_FORM_FACTOR_TYPE 6\r
+#define EFI_IDCC_PROC_INFO_TYPE 7\r
+#define EFI_IDCC_FSB_DATA_TYPE 8\r
+\r
+#endif\r