This patch is also uploaded in the following Repo, for review:-
https://github.com/ashrafj/edk2-staging/commit/9e42cc3c6e100c46a65f6e5926686d5f4d9fa58a

thanks
Ashraf

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Javeed,
> Ashraf
> Sent: Friday, November 1, 2019 8:40 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A <hao.a...@intel.com>;
> Ni, Ray <ray...@intel.com>
> Subject: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH 06/12]
> PciBusDxe: Integration of setup for PCI feature enumeration
> 
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2194
> 
> The code changes are made to integrate the setup infrastructure for the PCI
> feature enumeration, in the last phase of the PCI Bus driver, after its 
> registration
> and its option ROM loading phase is complete.
> 
> Signed-off-by: Ashraf Javeed <ashraf.jav...@intel.com>
> Cc: Jian J Wang <jian.j.w...@intel.com>
> Cc: Hao A Wu <hao.a...@intel.com>
> Cc: Ray Ni <ray...@intel.com>
> ---
>  MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c  | 11 +++++++++++
> MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c | 15 ++++++++++++++-
> MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h | 11 +++++++++++
>  3 files changed, 36 insertions(+), 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c
> b/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c
> index 33a0e94..b839102 100644
> --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c
> +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c
> @@ -8,6 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  **/
> 
>  #include "PciBus.h"
> +#include "PciFeatureSupport.h"
> 
>  //
>  // This device structure is serviced as a header.
> @@ -170,6 +171,8 @@ DestroyRootBridgeByHandle (
> 
>      if (Temp->Handle == Controller) {
> 
> +      DestroyRootBridgePciFeaturesConfigCompletionList (Temp);
> +
>        RemoveEntryList (CurrentLink);
> 
>        DestroyPciDeviceTree (Temp);
> @@ -818,6 +821,14 @@ StartPciDevicesOnBridge (
>    if (EFI_ERROR (Status) == EFI_NOT_FOUND) {
>      return Status;
>    } else {
> +    if (CheckOtherPciFeaturesPcd ()) {
> +      //
> +      // the late configuration of PCI features
> +      //
> +      Status = EnumerateOtherPciFeatures (
> +                  RootBridge
> +                );
> +    }
>      //
>      // finally start those PCI bridge port devices only
>      //
> diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c
> b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c
> index ab0e096..9e6671d 100644
> --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c
> +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c
> @@ -25,6 +25,19 @@ PRIMARY_ROOT_PORT_NODE
> *mPrimaryRootPortList;
>  **/
>  PCI_FEATURE_CONFIGURATION_COMPLETION_LIST
> *mPciFeaturesConfigurationCompletionList = NULL;
> 
> +/**
> +  Main routine to indicate platform selection of any of the other PCI
> +features
> +  to be configured by this driver
> +
> +  @retval TRUE    platform has selected the other PCI features to be 
> configured
> +          FALSE   platform has not selected any of the other PCI features
> +**/
> +BOOLEAN
> +CheckOtherPciFeaturesPcd (
> +  )
> +{
> +  return PcdGet32 (PcdOtherPciFeatures) ? TRUE : FALSE; }
> 
>  /**
>    Main routine to indicate whether the platform has selected the
> Max_Payload_Size @@ -699,7 +712,7 @@ ProgramDevicePciFeatures (
>    IN PCI_IO_DEVICE          *PciDevice
>    )
>  {
> -  EFI_STATUS           Status;
> +  EFI_STATUS           Status = EFI_SUCCESS;
> 
>    return Status;
>  }
> diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h
> b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h
> index b06c140..f92d008 100644
> --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h
> +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h
> @@ -138,6 +138,17 @@ typedef enum {
>  }PCI_FEATURE_CONFIGURATION_PHASE;
> 
> 
> +/**
> +  Main routine to indicate platform selection of any of the other PCI
> +features
> +  to be configured by this driver
> +
> +  @retval TRUE    platform has selected the other PCI features to be 
> configured
> +          FALSE   platform has not selected any of the other PCI features
> +**/
> +BOOLEAN
> +CheckOtherPciFeaturesPcd (
> +  );
> +
>  /**
>    Enumerate all the nodes of the specified root bridge or PCI-PCI Bridge, to
>    configure the other PCI features.
> --
> 2.21.0.windows.1
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50506): https://edk2.groups.io/g/devel/message/50506
Mute This Topic: https://groups.io/mt/55159915/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to