[edk2-devel] [PATCH] DynamicTablesPkg: AcpiSsdtPcieLibArm : Add UID to slot creation

Jeff Brasen via groups.io jbrasen=nvidia.com at groups.io
Mon Aug 22 16:21:01 UTC 2022


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



Signed-off-by: Jeff Brasen <jbrasen at nvidia.com>

---

 DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h     | 8 +++++---

 .../Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c       | 5 ++++-

 .../Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c        | 8 +++++---

 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 ceffe2838c..24e074ea90 100644

--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c

+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c

@@ -295,6 +295,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.

@@ -308,6 +309,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

   )

 {

@@ -416,7 +418,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;

@@ -687,6 +689,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

   )

 {

-- 

2.25.1





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92621): https://edk2.groups.io/g/devel/message/92621
Mute This Topic: https://groups.io/mt/93185094/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list