/** @file
IntelDieInfo definition
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _DIE_INFO_PROTOCOL_H_
#define _DIE_INFO_PROTOCOL_H_
typedef struct _EDKII_INTEL_DIE_INFO_PROTOCOL EDKII_INTEL_DIE_INFO_PROTOCOL;
typedef EDKII_INTEL_DIE_INFO_PROTOCOL EDKII_INTEL_DIE_INFO_PPI;
extern EFI_GUID gIntelDieInfoProtocolGuid;
extern EFI_GUID gIntelDieInfoPpiGuid;
extern EFI_GUID gIntelDieInfoPchGuid;
extern EFI_GUID gIntelDieInfoSocGuid;
extern EFI_GUID gIntelDieInfoIoGuid;
extern EFI_GUID gIntelDieInfoCpuGuid;
extern EFI_GUID gIntelDieInfoGfxGuid;
#define DIE_INFO_PROTOCOL_REVISION 1
/**
Returns pointer to constant string representing die name.
Name is specific to die type.
@param[in] This Pointer to the DieInfoProtocol context structure
@retval Pointer to the const string
**/
typedef
CONST CHAR8*
(EFIAPI *EDKII_INTEL_DIE_INFO_GET_DIE_NAME_STR) (
IN EDKII_INTEL_DIE_INFO_PROTOCOL *This
);
/**
Returns pointer to constant string representing stepping of the die.
@param[in] This Pointer to the DieInfoProtocol context structure
@retval Pointer to the const string
**/
typedef
CONST CHAR8*
(EFIAPI *EDKII_INTEL_DIE_INFO_GET_STEPPING_STR) (
IN EDKII_INTEL_DIE_INFO_PROTOCOL *This
);
/**
Returns pointer to constant string representing SKU of the die.
@param[in] This Pointer to the DieInfoProtocol context structure
@retval Pointer to the const string
**/
typedef
CONST CHAR8*
(EFIAPI *EDKII_INTEL_DIE_INFO_GET_SKU_STR) (
IN EDKII_INTEL_DIE_INFO_PROTOCOL *This
);
/**
Protocol/PPI definition.
The purpose of this interface is to serve die-specific informations in a unified, generic way.
It will be produced by silicon code per die, and can be consumed by any module that needs contained information.
Revision 1:
- Initial version.
**/
struct _EDKII_INTEL_DIE_INFO_PROTOCOL {
UINT32 Revision; ///< Current protocol revision
/**
Type of the die that particular instance is reffering to.
**/
EFI_GUID Type;
/**
Index of the die in the package.
**/
UINT32 DieIndex;
/**
Unique ID specific to the die and the associated generation.
**/
UINT64 DieId;
/**
Generation and die specific stepping ID.
**/
UINT32 SteppingId;
EDKII_INTEL_DIE_INFO_GET_DIE_NAME_STR GetNameStr;
EDKII_INTEL_DIE_INFO_GET_STEPPING_STR GetSteppingStr;
EDKII_INTEL_DIE_INFO_GET_SKU_STR GetSkuStr;
};
#endif // _DIE_INFO_PROTOCOL_H_