DynamicTablesPkg: Move PCI device Handle object to Arch Common
Move the PCI device Handle object from Arm Namespace to the Arch Common namespace. Correspondingly also update the following modules to reflect the changes introduced by the move: - SRAT generator - ConfigurationManagerObjectParser - Dynamic Plat Repo TokenFixer map. Cc: Pierre Gondois <Pierre.Gondois@arm.com> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com> Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com> Cc: Jeshua Smith <jeshuas@nvidia.com> Cc: Jeff Brasen <jbrasen@nvidia.com> Cc: Girish Mahadevan <gmahadevan@nvidia.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
This commit is contained in:
parent
0ca10ddc0f
commit
3a644f4a43
|
@ -33,6 +33,7 @@ typedef enum ArchCommonObjectID {
|
||||||
EArchCommonObjPciInterruptMapInfo, ///< 10 - Pci Interrupt Map Info
|
EArchCommonObjPciInterruptMapInfo, ///< 10 - Pci Interrupt Map Info
|
||||||
EArchCommonObjMemoryAffinityInfo, ///< 11 - Memory Affinity Info
|
EArchCommonObjMemoryAffinityInfo, ///< 11 - Memory Affinity Info
|
||||||
EArchCommonObjDeviceHandleAcpi, ///< 12 - Device Handle Acpi
|
EArchCommonObjDeviceHandleAcpi, ///< 12 - Device Handle Acpi
|
||||||
|
EArchCommonObjDeviceHandlePci, ///< 13 - Device Handle Pci
|
||||||
EArchCommonObjMax
|
EArchCommonObjMax
|
||||||
} EARCH_COMMON_OBJECT_ID;
|
} EARCH_COMMON_OBJECT_ID;
|
||||||
|
|
||||||
|
@ -256,6 +257,25 @@ typedef struct CmArchCommonDeviceHandleAcpi {
|
||||||
UINT32 Uid;
|
UINT32 Uid;
|
||||||
} CM_ARCH_COMMON_DEVICE_HANDLE_ACPI;
|
} CM_ARCH_COMMON_DEVICE_HANDLE_ACPI;
|
||||||
|
|
||||||
|
/** A structure that describes the PCI Device Handle (Type 1) in the
|
||||||
|
Generic Initiator Affinity structure in SRAT
|
||||||
|
|
||||||
|
ID: EArchCommonObjDeviceHandlePci
|
||||||
|
*/
|
||||||
|
typedef struct CmArchCommonDeviceHandlePci {
|
||||||
|
/// PCI Segment Number
|
||||||
|
UINT16 SegmentNumber;
|
||||||
|
|
||||||
|
/// PCI Bus Number - Max 256 busses (Bits 15:8 of BDF)
|
||||||
|
UINT8 BusNumber;
|
||||||
|
|
||||||
|
/// PCI Device Number - Max 32 devices (Bits 7:3 of BDF)
|
||||||
|
UINT8 DeviceNumber;
|
||||||
|
|
||||||
|
/// PCI Function Number - Max 8 functions (Bits 2:0 of BDF)
|
||||||
|
UINT8 FunctionNumber;
|
||||||
|
} CM_ARCH_COMMON_DEVICE_HANDLE_PCI;
|
||||||
|
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
|
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
|
||||||
|
|
|
@ -50,21 +50,20 @@ typedef enum ArmObjectID {
|
||||||
EArmObjSmmuInterruptArray, ///< 19 - SMMU Interrupt Array
|
EArmObjSmmuInterruptArray, ///< 19 - SMMU Interrupt Array
|
||||||
EArmObjProcHierarchyInfo, ///< 20 - Processor Hierarchy Info
|
EArmObjProcHierarchyInfo, ///< 20 - Processor Hierarchy Info
|
||||||
EArmObjCacheInfo, ///< 21 - Cache Info
|
EArmObjCacheInfo, ///< 21 - Cache Info
|
||||||
EArmObjDeviceHandlePci, ///< 22 - Device Handle Pci
|
EArmObjGenericInitiatorAffinityInfo, ///< 22 - Generic Initiator Affinity
|
||||||
EArmObjGenericInitiatorAffinityInfo, ///< 23 - Generic Initiator Affinity
|
EArmObjCmn600Info, ///< 23 - CMN-600 Info
|
||||||
EArmObjCmn600Info, ///< 24 - CMN-600 Info
|
EArmObjLpiInfo, ///< 24 - Lpi Info
|
||||||
EArmObjLpiInfo, ///< 25 - Lpi Info
|
EArmObjRmr, ///< 25 - Reserved Memory Range Node
|
||||||
EArmObjRmr, ///< 26 - Reserved Memory Range Node
|
EArmObjMemoryRangeDescriptor, ///< 26 - Memory Range Descriptor
|
||||||
EArmObjMemoryRangeDescriptor, ///< 27 - Memory Range Descriptor
|
EArmObjCpcInfo, ///< 27 - Continuous Performance Control Info
|
||||||
EArmObjCpcInfo, ///< 28 - Continuous Performance Control Info
|
EArmObjPccSubspaceType0Info, ///< 28 - Pcc Subspace Type 0 Info
|
||||||
EArmObjPccSubspaceType0Info, ///< 29 - Pcc Subspace Type 0 Info
|
EArmObjPccSubspaceType1Info, ///< 29 - Pcc Subspace Type 2 Info
|
||||||
EArmObjPccSubspaceType1Info, ///< 30 - Pcc Subspace Type 2 Info
|
EArmObjPccSubspaceType2Info, ///< 30 - Pcc Subspace Type 2 Info
|
||||||
EArmObjPccSubspaceType2Info, ///< 31 - Pcc Subspace Type 2 Info
|
EArmObjPccSubspaceType3Info, ///< 31 - Pcc Subspace Type 3 Info
|
||||||
EArmObjPccSubspaceType3Info, ///< 32 - Pcc Subspace Type 3 Info
|
EArmObjPccSubspaceType4Info, ///< 32 - Pcc Subspace Type 4 Info
|
||||||
EArmObjPccSubspaceType4Info, ///< 33 - Pcc Subspace Type 4 Info
|
EArmObjPccSubspaceType5Info, ///< 33 - Pcc Subspace Type 5 Info
|
||||||
EArmObjPccSubspaceType5Info, ///< 34 - Pcc Subspace Type 5 Info
|
EArmObjEtInfo, ///< 34 - Embedded Trace Extension/Module Info
|
||||||
EArmObjEtInfo, ///< 35 - Embedded Trace Extension/Module Info
|
EArmObjPsdInfo, ///< 35 - P-State Dependency (PSD) Info
|
||||||
EArmObjPsdInfo, ///< 36 - P-State Dependency (PSD) Info
|
|
||||||
EArmObjMax
|
EArmObjMax
|
||||||
} EARM_OBJECT_ID;
|
} EARM_OBJECT_ID;
|
||||||
|
|
||||||
|
@ -719,25 +718,6 @@ typedef struct CmArmCacheInfo {
|
||||||
UINT32 CacheId;
|
UINT32 CacheId;
|
||||||
} CM_ARM_CACHE_INFO;
|
} CM_ARM_CACHE_INFO;
|
||||||
|
|
||||||
/** A structure that describes the PCI Device Handle (Type 1) in the
|
|
||||||
Generic Initiator Affinity structure in SRAT
|
|
||||||
|
|
||||||
ID: EArmObjDeviceHandlePci
|
|
||||||
*/
|
|
||||||
typedef struct CmArmDeviceHandlePci {
|
|
||||||
/// PCI Segment Number
|
|
||||||
UINT16 SegmentNumber;
|
|
||||||
|
|
||||||
/// PCI Bus Number - Max 256 busses (Bits 15:8 of BDF)
|
|
||||||
UINT8 BusNumber;
|
|
||||||
|
|
||||||
/// PCI Device Number - Max 32 devices (Bits 7:3 of BDF)
|
|
||||||
UINT8 DeviceNumber;
|
|
||||||
|
|
||||||
/// PCI Function Number - Max 8 functions (Bits 2:0 of BDF)
|
|
||||||
UINT8 FunctionNumber;
|
|
||||||
} CM_ARM_DEVICE_HANDLE_PCI;
|
|
||||||
|
|
||||||
/** A structure that describes the Generic Initiator Affinity structure in SRAT
|
/** A structure that describes the Generic Initiator Affinity structure in SRAT
|
||||||
|
|
||||||
ID: EArmObjGenericInitiatorAffinityInfo
|
ID: EArmObjGenericInitiatorAffinityInfo
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
- EArchCommonObjMemoryAffinityInfo (OPTIONAL)
|
- EArchCommonObjMemoryAffinityInfo (OPTIONAL)
|
||||||
- EArmObjGenericInitiatorAffinityInfo (OPTIONAL)
|
- EArmObjGenericInitiatorAffinityInfo (OPTIONAL)
|
||||||
- EArchCommonObjDeviceHandleAcpi (OPTIONAL)
|
- EArchCommonObjDeviceHandleAcpi (OPTIONAL)
|
||||||
- EArmObjDeviceHandlePci (OPTIONAL)
|
- EArchCommonObjDeviceHandlePci (OPTIONAL)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** This macro expands to a function that retrieves the GIC
|
/** This macro expands to a function that retrieves the GIC
|
||||||
|
@ -92,9 +92,9 @@ GET_OBJECT_LIST (
|
||||||
information from the Configuration Manager.
|
information from the Configuration Manager.
|
||||||
*/
|
*/
|
||||||
GET_OBJECT_LIST (
|
GET_OBJECT_LIST (
|
||||||
EObjNameSpaceArm,
|
EObjNameSpaceArchCommon,
|
||||||
EArmObjDeviceHandlePci,
|
EArchCommonObjDeviceHandlePci,
|
||||||
CM_ARM_DEVICE_HANDLE_PCI
|
CM_ARCH_COMMON_DEVICE_HANDLE_PCI
|
||||||
);
|
);
|
||||||
|
|
||||||
/** Return the PCI Device information in BDF format
|
/** Return the PCI Device information in BDF format
|
||||||
|
@ -110,7 +110,7 @@ GET_OBJECT_LIST (
|
||||||
STATIC
|
STATIC
|
||||||
UINT16
|
UINT16
|
||||||
GetBdf (
|
GetBdf (
|
||||||
IN CONST CM_ARM_DEVICE_HANDLE_PCI *DeviceHandlePci
|
IN CONST CM_ARCH_COMMON_DEVICE_HANDLE_PCI *DeviceHandlePci
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT16 Bdf;
|
UINT16 Bdf;
|
||||||
|
@ -302,7 +302,7 @@ AddGenericInitiatorAffinity (
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_ACPI_6_3_GENERIC_INITIATOR_AFFINITY_STRUCTURE *GenInitAff;
|
EFI_ACPI_6_3_GENERIC_INITIATOR_AFFINITY_STRUCTURE *GenInitAff;
|
||||||
CM_ARCH_COMMON_DEVICE_HANDLE_ACPI *DeviceHandleAcpi;
|
CM_ARCH_COMMON_DEVICE_HANDLE_ACPI *DeviceHandleAcpi;
|
||||||
CM_ARM_DEVICE_HANDLE_PCI *DeviceHandlePci;
|
CM_ARCH_COMMON_DEVICE_HANDLE_PCI *DeviceHandlePci;
|
||||||
UINT32 DeviceHandleCount;
|
UINT32 DeviceHandleCount;
|
||||||
|
|
||||||
ASSERT (Srat != NULL);
|
ASSERT (Srat != NULL);
|
||||||
|
@ -362,7 +362,7 @@ AddGenericInitiatorAffinity (
|
||||||
} else if (GenInitAffInfo->DeviceHandleType ==
|
} else if (GenInitAffInfo->DeviceHandleType ==
|
||||||
EFI_ACPI_6_3_PCI_DEVICE_HANDLE)
|
EFI_ACPI_6_3_PCI_DEVICE_HANDLE)
|
||||||
{
|
{
|
||||||
Status = GetEArmObjDeviceHandlePci (
|
Status = GetEArchCommonObjDeviceHandlePci (
|
||||||
CfgMgrProtocol,
|
CfgMgrProtocol,
|
||||||
GenInitAffInfo->DeviceHandleToken,
|
GenInitAffInfo->DeviceHandleToken,
|
||||||
&DeviceHandlePci,
|
&DeviceHandlePci,
|
||||||
|
|
|
@ -165,21 +165,20 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
|
||||||
NULL, ///< 19 - SMMU Interrupt Array
|
NULL, ///< 19 - SMMU Interrupt Array
|
||||||
TokenFixerNotImplemented, ///< 20 - Processor Hierarchy Info
|
TokenFixerNotImplemented, ///< 20 - Processor Hierarchy Info
|
||||||
TokenFixerNotImplemented, ///< 21 - Cache Info
|
TokenFixerNotImplemented, ///< 21 - Cache Info
|
||||||
NULL, ///< 22 - Device Handle Pci
|
NULL, ///< 22 - Generic Initiator Affinity
|
||||||
NULL, ///< 23 - Generic Initiator Affinity
|
NULL, ///< 23 - CMN-600 Info
|
||||||
NULL, ///< 24 - CMN-600 Info
|
NULL, ///< 24 - Lpi Info
|
||||||
NULL, ///< 25 - Lpi Info
|
NULL, ///< 25 - Reserved Memory Range Node
|
||||||
NULL, ///< 26 - Reserved Memory Range Node
|
NULL, ///< 26 - Memory Range Descriptor
|
||||||
NULL, ///< 27 - Memory Range Descriptor
|
NULL, ///< 27 - Continuous Performance Control Info
|
||||||
NULL, ///< 28 - Continuous Performance Control Info
|
NULL, ///< 28 - Pcc Subspace Type 0 Info
|
||||||
NULL, ///< 29 - Pcc Subspace Type 0 Info
|
NULL, ///< 29 - Pcc Subspace Type 2 Info
|
||||||
NULL, ///< 30 - Pcc Subspace Type 2 Info
|
NULL, ///< 30 - Pcc Subspace Type 2 Info
|
||||||
NULL, ///< 31 - Pcc Subspace Type 2 Info
|
NULL, ///< 31 - Pcc Subspace Type 3 Info
|
||||||
NULL, ///< 32 - Pcc Subspace Type 3 Info
|
NULL, ///< 32 - Pcc Subspace Type 4 Info
|
||||||
NULL, ///< 33 - Pcc Subspace Type 4 Info
|
NULL, ///< 33 - Pcc Subspace Type 5 Info
|
||||||
NULL, ///< 34 - Pcc Subspace Type 5 Info
|
NULL, ///< 34 - Embedded Trace Extension/Module Info
|
||||||
NULL, ///< 35 - Embedded Trace Extension/Module Info
|
NULL ///< 35 - P-State Dependency (PSD) Info
|
||||||
NULL ///< 36 - P-State Dependency (PSD) Info
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** CmObj token fixer.
|
/** CmObj token fixer.
|
||||||
|
|
|
@ -372,9 +372,9 @@ STATIC CONST CM_OBJ_PARSER CmArchCommonDeviceHandleAcpiParser[] = {
|
||||||
{ "Uid", 4, "0x%x", NULL }
|
{ "Uid", 4, "0x%x", NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A parser for EArmObjDeviceHandlePci.
|
/** A parser for EArchCommonObjDeviceHandlePci.
|
||||||
*/
|
*/
|
||||||
STATIC CONST CM_OBJ_PARSER CmArmDeviceHandlePciParser[] = {
|
STATIC CONST CM_OBJ_PARSER CmArchCommonDeviceHandlePciParser[] = {
|
||||||
{ "SegmentNumber", 2, "0x%x", NULL },
|
{ "SegmentNumber", 2, "0x%x", NULL },
|
||||||
{ "BusNumber", 1, "0x%x", NULL },
|
{ "BusNumber", 1, "0x%x", NULL },
|
||||||
{ "DeviceNumber", 1, "0x%x", NULL },
|
{ "DeviceNumber", 1, "0x%x", NULL },
|
||||||
|
@ -683,6 +683,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
|
||||||
CM_PARSER_ADD_OBJECT (EArchCommonObjPciInterruptMapInfo, CmArchCommonPciInterruptMapInfoParser),
|
CM_PARSER_ADD_OBJECT (EArchCommonObjPciInterruptMapInfo, CmArchCommonPciInterruptMapInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryAffinityInfo, CmArchCommonMemoryAffinityInfoParser),
|
CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryAffinityInfo, CmArchCommonMemoryAffinityInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandleAcpi, CmArchCommonDeviceHandleAcpiParser),
|
CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandleAcpi, CmArchCommonDeviceHandleAcpiParser),
|
||||||
|
CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandlePci, CmArchCommonDeviceHandlePciParser),
|
||||||
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
|
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -711,7 +712,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArchCommonGenericInterruptParser),
|
CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArchCommonGenericInterruptParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjProcHierarchyInfo, CmArmProcHierarchyInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjProcHierarchyInfo, CmArmProcHierarchyInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjCacheInfo, CmArmCacheInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjCacheInfo, CmArmCacheInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser),
|
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser),
|
||||||
|
|
|
@ -462,21 +462,20 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
|
||||||
| 19 | SMMU Interrupt Array | |
|
| 19 | SMMU Interrupt Array | |
|
||||||
| 20 | Processor Hierarchy Info | Move to Arch Common NS |
|
| 20 | Processor Hierarchy Info | Move to Arch Common NS |
|
||||||
| 21 | Cache Info | Move to Arch Common NS |
|
| 21 | Cache Info | Move to Arch Common NS |
|
||||||
| 22 | Device Handle PCI | Move to Arch Common NS |
|
| 22 | Generic Initiator Affinity Info | Move to Arch Common NS |
|
||||||
| 23 | Generic Initiator Affinity Info | Move to Arch Common NS |
|
| 23 | CMN 600 Info | |
|
||||||
| 24 | CMN 600 Info | |
|
| 24 | Low Power Idle State Info | Move to Arch Common NS |
|
||||||
| 25 | Low Power Idle State Info | Move to Arch Common NS |
|
| 25 | Reserved Memory Range Node | |
|
||||||
| 26 | Reserved Memory Range Node | |
|
| 26 | Memory Range Descriptor | |
|
||||||
| 27 | Memory Range Descriptor | |
|
| 27 | Continuous Performance Control Info | Move to Arch Common NS |
|
||||||
| 28 | Continuous Performance Control Info | Move to Arch Common NS |
|
| 28 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
|
||||||
| 29 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
|
| 29 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
|
||||||
| 30 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
|
| 30 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
|
||||||
| 31 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
|
| 31 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
|
||||||
| 32 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
|
| 32 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
|
||||||
| 33 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
|
| 33 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
|
||||||
| 34 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
|
| 34 | Embedded Trace Extension/Module Info | |
|
||||||
| 35 | Embedded Trace Extension/Module Info | |
|
| 35 | P-State Dependency (PSD) Info | Move to Arch Common NS |
|
||||||
| 36 | P-State Dependency (PSD) Info | Move to Arch Common NS |
|
|
||||||
| `*` | All other values are reserved. | |
|
| `*` | All other values are reserved. | |
|
||||||
|
|
||||||
#### Object ID's in the Arch Common Namespace:
|
#### Object ID's in the Arch Common Namespace:
|
||||||
|
@ -496,4 +495,5 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
|
||||||
| 10 | PCI Interrupt Map Info | |
|
| 10 | PCI Interrupt Map Info | |
|
||||||
| 11 | Memory Affinity Info | |
|
| 11 | Memory Affinity Info | |
|
||||||
| 12 | Device Handle Acpi | |
|
| 12 | Device Handle Acpi | |
|
||||||
|
| 13 | Device Handle PCI | |
|
||||||
| `*` | All other values are reserved. | |
|
| `*` | All other values are reserved. | |
|
||||||
|
|
Loading…
Reference in New Issue