/** @file
|
Interface definition details between System Agent and platform drivers during DXE phase.
|
|
Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#ifndef _SA_POLICY_H_
|
#define _SA_POLICY_H_
|
|
#include <SaAccess.h>
|
#include <ConfigBlock.h>
|
#include <ConfigBlock/GraphicsDxeConfig.h>
|
#include <ConfigBlock/MemoryDxeConfig.h>
|
#include <ConfigBlock/MiscDxeConfig.h>
|
#include <ConfigBlock/PcieDxeConfig.h>
|
#include <ConfigBlock/VbiosDxeConfig.h>
|
|
///
|
/// Extern the GUID for protocol users.
|
///
|
extern EFI_GUID gSaPolicyProtocolGuid;
|
extern EFI_GUID gGraphicsDxeConfigGuid;
|
extern EFI_GUID gMiscDxeConfigGuid;
|
extern EFI_GUID gPcieDxeConfigGuid;
|
extern EFI_GUID gMemoryDxeConfigGuid;
|
extern EFI_GUID gVbiosDxeConfigGuid;
|
|
/**
|
Don't change the original SA_POLICY_PROTOCOL_REVISION macro, external
|
modules maybe have consumed this macro in their source code. Directly
|
update the SA_POLICY_PROTOCOL_REVISION version number may cause those
|
external modules to auto mark themselves wrong version info.
|
Always create new version macro for new Policy protocol interface.
|
**/
|
#define SA_POLICY_PROTOCOL_REVISION 1
|
|
#define SA_PCIE_DEV_END_OF_TABLE 0xFFFF
|
|
#define LTR_MAX_SNOOP_LATENCY_VALUE 0x0846 ///< Intel recommended maximum value for Snoop Latency
|
#define LTR_MAX_NON_SNOOP_LATENCY_VALUE 0x0846 ///< Intel recommended maximum value for Non-Snoop Latency
|
|
|
/**
|
SA DXE Policy
|
|
The SA_POLICY_PROTOCOL producer drvier is recommended to
|
set all the SA_POLICY_PROTOCOL size buffer zero before init any member parameter,
|
this clear step can make sure no random value for those unknow new version parameters.
|
|
Make sure to update the Revision if any change to the protocol, including the existing
|
internal structure definations.\n
|
Note: Here revision will be bumped up when adding/removing any config block under this structure.\n
|
<b>Revision 1</b>:
|
- Initial version.
|
**/
|
typedef struct {
|
CONFIG_BLOCK_TABLE_HEADER TableHeader; ///< Offset 0-31
|
/*
|
Individual Config Block Structures are added here in memory as part of AddConfigBlock()
|
*/
|
} SA_POLICY_PROTOCOL;
|
|
#endif
|