/** @file
The GUID definition for SaConfigHob
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _SA_CONFIG_HOB_H_
#define _SA_CONFIG_HOB_H_
#include
#include
#include "CpuPcieInfo.h"
#include
extern EFI_GUID gSaConfigHobGuid;
#define SA_VTD_ENGINE_NUMBER 3
#pragma pack (push,1)
///
/// DPR Directory Types
///
typedef enum {
EnumDprDirectoryTxt = 0,
} DPR_DIRECTORY_ELEMENT;
#define DPR_DIRECTORY_TYPE_TXT 0x01 ///< DPR directory type - TXT
#define DPR_DIRECTORY_TYPE_BIOSGUARD 0x02 ///< DPR directory type - BIOS Guard
#define DPR_DIRECTORY_MAX 1 ///< DPR Maximum Size
///
/// DPR directory entry definition
///
typedef struct {
UINT8 Type; ///< DPR Directory Type
UINT8 Size; ///< DPR Size in MB
UINT32 PhysBase; ///< Must be 4K aligned (bits 11..0 must be clear)
UINT16 Reserved; ///< Must be 0
} DPR_DIRECTORY_ENTRY;
///
/// System Agent Config Hob
///
typedef struct {
EFI_HOB_GUID_TYPE EfiHobGuidType; ///< GUID Hob type structure for gSaConfigHobGuid
DPR_DIRECTORY_ENTRY DprDirectory[DPR_DIRECTORY_MAX]; ///< DPR directory entry definition
UINT8 ApertureSize; ///< Aperture size value
BOOLEAN CridEnable; ///< This field inidicates if CRID is enabled or disabled (to support Intel(R) SIPP)
} SA_CONFIG_HOB;
#pragma pack (pop)
#endif