diff options
author | Jeff Brasen <jbrasen@nvidia.com> | 2022-08-23 22:35:53 -0600 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2022-09-01 13:53:17 +0000 |
commit | 0a4079ad86f5869426bf4278a9a2681642fd7d79 (patch) | |
tree | 31611a542740050615d5aaf9574b3418d10eb9a1 /DynamicTablesPkg | |
parent | b9bb27e1ff40d93fd39c1257df28ecde0642bb07 (diff) | |
download | edk2-0a4079ad86f5869426bf4278a9a2681642fd7d79.tar.gz edk2-0a4079ad86f5869426bf4278a9a2681642fd7d79.tar.bz2 edk2-0a4079ad86f5869426bf4278a9a2681642fd7d79.zip |
DynamicTablesPkg: AcpiSsdtPcieLibArm : Add UID to slot creation
Expose the UID value to GeneratePciSlots().
This is needed for some cases for example:
https://docs.microsoft.com/en-us/windows-hardware/drivers/pci/dsd-for-pcie-root-ports#identifying-externally-exposed-pcie-root-ports
Name (_DSD, Package () {
ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"),
Package () {
Package (2) {"ExternalFacingPort", 1},
Package (2) {"UID", 0},
}
})
Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Diffstat (limited to 'DynamicTablesPkg')
3 files changed, 14 insertions, 7 deletions
diff --git a/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h b/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h index 85e283a994..4171dabc33 100644 --- a/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h +++ b/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h @@ -54,9 +54,10 @@ AddOscMethod ( used. It should be possible to enumerate them, but this is additional
information.
- @param [in] PciInfo Pci device information.
- @param [in] MappingTable The mapping table structure.
- @param [in, out] PciNode Pci node to amend.
+ @param [in] PciInfo Pci device information.
+ @param [in] MappingTable The mapping table structure.
+ @param [in] Uid Unique Id of the Pci device.
+ @param [in, out] PciNode Pci node to amend.
@retval EFI_SUCCESS Success.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -67,6 +68,7 @@ EFIAPI GeneratePciSlots (
IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
IN CONST MAPPING_TABLE *MappingTable,
+ IN UINT32 Uid,
IN OUT AML_OBJECT_NODE_HANDLE PciNode
);
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c index dd75fc27e6..d82f071e85 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c @@ -298,6 +298,7 @@ GeneratePciDeviceInfo ( @param [in] CfgMgrProtocol Pointer to the Configuration Manager
Protocol interface.
@param [in] PciInfo Pci device information.
+ @param [in] Uid Unique Id of the Pci device.
@param [in, out] PciNode Pci node to amend.
@retval EFI_SUCCESS The function completed successfully.
@@ -311,6 +312,7 @@ GeneratePrt ( IN ACPI_PCI_GENERATOR *Generator,
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,
IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN UINT32 Uid,
IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
@@ -419,7 +421,7 @@ GeneratePrt ( PrtNode = NULL;
// Generate the Pci slots once all the device have been added.
- Status = GeneratePciSlots (PciInfo, &Generator->DeviceTable, PciNode);
+ Status = GeneratePciSlots (PciInfo, &Generator->DeviceTable, Uid, PciNode);
if (EFI_ERROR (Status)) {
ASSERT (0);
goto exit_handler;
@@ -814,6 +816,7 @@ GeneratePciDevice ( Generator,
CfgMgrProtocol,
PciInfo,
+ Uid,
PciNode
);
if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c b/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c index e5ab3a3ca8..b35fb6a7dd 100644 --- a/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c +++ b/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c @@ -41,9 +41,10 @@ used. It should be possible to enumerate them, but this is additional
information.
- @param [in] PciInfo Pci device information.
- @param [in] MappingTable The mapping table structure.
- @param [in, out] PciNode Pci node to amend.
+ @param [in] PciInfo Pci device information.
+ @param [in] MappingTable The mapping table structure.
+ @param [in] Uid Unique Id of the Pci device.
+ @param [in, out] PciNode Pci node to amend.
@retval EFI_SUCCESS Success.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -54,6 +55,7 @@ EFIAPI GeneratePciSlots (
IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
IN CONST MAPPING_TABLE *MappingTable,
+ IN UINT32 Uid,
IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
|