/** @file
Struct and GUID definitions for CpuInitDataHob.
Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _CPU_INIT_DATA_HOB_H_
#define _CPU_INIT_DATA_HOB_H_
#include
extern EFI_GUID gCpuInitDataHobGuid;
#define MAX_PROCESSOR_THREADS 0x40
///
/// CPU Configuration Structure passed from PEI to DXE phase
///
typedef struct {
UINT32 ApHandoffManner : 2;
UINT32 ApIdleManner : 2;
UINT32 EnableDts : 2;
UINT32 HdcControl : 2;
UINT32 Hwp : 2;
UINT32 ConfigTdpBios : 1;
UINT32 RsvdBits :21;
UINT8 SmmbaseSwSmiNumber;
UINT8 Rsvd[3];
} CPU_CONFIG_DATA;
///
/// This HOB is used to pass only the required information from PEI for DXE consumption.
///
typedef struct {
UINT32 Revision;
EFI_PHYSICAL_ADDRESS CpuConfigData; ///< CPU RC Config for DXE consumption
EFI_PHYSICAL_ADDRESS CpuGnvsPointer; ///< CPU_GLOBAL_NVS_AREA Pointer.
EFI_PHYSICAL_ADDRESS MpData; ///< Deprecated. Points to ACPI_CPU_DATA structure with multiprocessor data.
EFI_PHYSICAL_ADDRESS FvidTable; ///< FVID Table.
UINT32 SiliconInfo; ///< SILICON_INFO data
} CPU_INIT_DATA_HOB;
#endif