/** @file
This file contains definitions of PCH Info HOB.
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _PCH_INFO_HOB_H_
#define _PCH_INFO_HOB_H_
extern EFI_GUID gPchInfoHobGuid;
#define PCH_INFO_HOB_REVISION 2
#pragma pack (push,1)
/**
This structure is used to provide the information of PCH controller.
Revision 1:
- Initial version.
Revision 2:
- Add CridSupport, CridOrgRid, and CridNewRid.
Revision 3:
- Added LaneReversal Field
**/
typedef struct {
/**
This member specifies the revision of the PCH Info HOB. This field is used
to indicate backwards compatible changes to the protocol. Platform code that
consumes this protocol must read the correct revision value to correctly interpret
the content of the protocol fields.
**/
UINT8 Revision;
UINT8 PcieControllerCfg[6];
/**
GbE over PCIe port number when GbE is enabled
>0 - Root port number (1-based)
0 - GbE over PCIe disabled
This information needs to be passed through HOB as FIA registers
are not accessible with POSTBOOT_SAI
**/
UINT8 GbePciePortNumber;
UINT32 PciePortFuses;
/**
Bit map for PCIe Root Port Lane setting. If bit is set it means that
corresponding Root Port has its lane enabled.
BIT0 - RP0, BIT1 - RP1, ...
This information needs to be passed through HOB as FIA registers
are not accessible with POSTBOOT_SAI
**/
UINT32 PciePortLaneEnabled;
/**
Publish Hpet BDF and IoApic BDF information for VTD.
**/
UINT32 HpetBusNum : 8;
UINT32 HpetDevNum : 5;
UINT32 HpetFuncNum : 3;
UINT32 IoApicBusNum : 8;
UINT32 IoApicDevNum : 5;
UINT32 IoApicFuncNum : 3;
/**
Publish the CRID information.
**/
UINT32 CridOrgRid : 8;
UINT32 CridNewRid : 8;
UINT32 CridSupport : 1;
UINT32 Rsvdbits : 15;
/**
This member specifies if lane reversal is enabled on the specific
Pcie Root port controller.
**/
UINT8 PcieControllerLaneReversal[6];
} PCH_INFO_HOB;
#pragma pack (pop)
#endif // _PCH_INFO_HOB_H_