With the new protocol discussed in https://bugzilla.tianocore.org/show_bug.cgi?id=1954, this patch review is skipped.
> -----Original Message----- > From: Javeed, Ashraf <ashraf.jav...@intel.com> > Sent: Wednesday, November 13, 2019 11:22 AM > To: devel@edk2.groups.io; Javeed, Ashraf <ashraf.jav...@intel.com> > Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A <hao.a...@intel.com>; Ni, > Ray <ray...@intel.com> > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH 01/12] > MdeModulePkg/PciBusDxe:New PCI features > separation with PCD > > This patch is also uploaded in the following Repo:- > https://github.com/ashrafj/edk2-staging/commit/0cc1a9555e1546ad94dd368160ece526d10d96a6 > > Please review. > 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 01/12] > > MdeModulePkg/PciBusDxe:New PCI features separation with PCD > > > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2194 > > > > Definition of bit masks for the new PCD for the following new PCI feature > > set:- > > 1. Maximum Payload Size (MPS) > > 2. Maximum Read Request Size (MRRS) > > 3. Completion Timeout (CTO) > > 4. Relax Order (RO) Enable > > 5. No Snoop (NS) Enable > > 6. Extended Tag > > 7. ASPM support > > 8. Common Clock Configuration > > 9. Extended SYNC > > 10. Atomic Op > > 11. LTR Enable > > 12. PTM support > > > > Code changes made to the PCI Bus driver to adopt to these new PCD defini- > > tion, > > helper routines defined for features that needs to be supported in. > > future. > > > > 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/PciBusDxe.inf | 5 ++++- > > MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c | 177 > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > +++++++++++++++++++++++++++++++++++++++++++++++ > > MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h | 26 > > ++++++++++++++++++++++++++ > > MdeModulePkg/MdeModulePkg.dec | 22 > > ++++++++++++++++++++++ > > 4 files changed, 229 insertions(+), 1 deletion(-) > > > > diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > > b/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > > index 05c2202..6dab970 100644 > > --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > > +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf > > @@ -2,7 +2,7 @@ > > # The PCI bus driver will probe all PCI devices and allocate MMIO and IO > > space > > for these devices. > > # Please use PCD feature flag PcdPciBusHotplugDeviceSupport to enable hot > > plug supporting. > > # > > -# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > > +# Copyright (c) 2006 - 2019, Intel Corporation. All rights > > +reserved.<BR> > > # > > # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -57,6 +57,8 @@ > > PciCommand.h > > PciIo.h > > PciBus.h > > + PciFeatureSupport.c > > + PciFeatureSupport.h > > > > [Packages] > > MdePkg/MdePkg.dec > > @@ -104,6 +106,7 @@ > > gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport ## CONSUMES > > gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport ## CONSUMES > > gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration ## > > SOMETIMES_CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdOtherPciFeatures ## > > CONSUMES > > > > [UserExtensions.TianoCore."ExtraFiles"] > > PciBusDxeExtra.uni > > diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c > > b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c > > new file mode 100644 > > index 0000000..8be227a > > --- /dev/null > > +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.c > > @@ -0,0 +1,177 @@ > > +/** @file > > + PCI standard feature support functions implementation for PCI Bus > > module.. > > + > > +Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > > +SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#include "PciBus.h" > > +#include "PciFeatureSupport.h" > > + > > +/** > > + Main routine to indicate whether the platform has selected the > > +Max_Payload_Size > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Max_Payload_Size to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupMaxPayloadSize ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_MPS) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the > > +Max_Read_Req_Size > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Max_Read_Req_Size to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupMaxReadReqSize ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_MRRS) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the Relax > > +Ordering > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Relax Ordering to be configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupRelaxOrder ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & PCI_FEATURE_SUPPORT_FLAG_RO) > > +? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the > > +No-Snoop > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the No-Snoop to be configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupNoSnoop ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & PCI_FEATURE_SUPPORT_FLAG_NS) > > +? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the > > +Completion Timeout > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupCompletionTimeout ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_CTO) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the > > +Extended Tag > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupExtendedTag ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_ETAG) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the Atomic > > +Op > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupAtomicOp ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_AOP) ? TRUE : FALSE; } > > +/** > > + Main routine to indicate whether the platform has selected the LTR > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupLtr ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_LTR) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the ASPM > > +state > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupAspm ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_ASPM) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the Common > > +Clock Configuration > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupCommonClkCfg ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_CCC) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the > > +Extended Synch > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupExtendedSynch ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_ESYN) ? TRUE : FALSE; } > > + > > +/** > > + Main routine to indicate whether the platform has selected the PIM > > +Control > > + PCI feature to be configured by this driver > > + > > + @retval TRUE platform has selected the Completion Timeout to be > > configured > > + FALSE platform has not selected this feature > > +**/ > > +BOOLEAN > > +SetupPtm ( > > + ) > > +{ > > + return (PcdGet32 (PcdOtherPciFeatures) & > > +PCI_FEATURE_SUPPORT_FLAG_PTM) ? TRUE : FALSE; } > > diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h > > b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h > > new file mode 100644 > > index 0000000..d06a5e8 > > --- /dev/null > > +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciFeatureSupport.h > > @@ -0,0 +1,26 @@ > > +/** @file > > + PCI standard feature support functions implementation for PCI Bus > > module.. > > + > > +Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> > > +SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef _EFI_PCI_FEATURES_SUPPORT_H_ > > +#define _EFI_PCI_FEATURES_SUPPORT_H_ > > +// > > +// Macro definitions for the PCI Features support PCD // #define > > +PCI_FEATURE_SUPPORT_FLAG_MPS BIT0 #define > > +PCI_FEATURE_SUPPORT_FLAG_MRRS BIT1 > > +#define PCI_FEATURE_SUPPORT_FLAG_RO BIT2 > > +#define PCI_FEATURE_SUPPORT_FLAG_NS BIT3 > > +#define PCI_FEATURE_SUPPORT_FLAG_CTO BIT4 #define > > +PCI_FEATURE_SUPPORT_FLAG_ETAG BIT5 #define > > PCI_FEATURE_SUPPORT_FLAG_AOP > > +BIT6 #define PCI_FEATURE_SUPPORT_FLAG_LTR BIT7 #define > > +PCI_FEATURE_SUPPORT_FLAG_ASPM BIT12 #define > > +PCI_FEATURE_SUPPORT_FLAG_CCC BIT13 #define > > +PCI_FEATURE_SUPPORT_FLAG_ESYN BIT14 #define > > +PCI_FEATURE_SUPPORT_FLAG_PTM BIT20 #endif > > diff --git a/MdeModulePkg/MdeModulePkg.dec > > b/MdeModulePkg/MdeModulePkg.dec index 12e0bbf..ed82e85 100644 > > --- a/MdeModulePkg/MdeModulePkg.dec > > +++ b/MdeModulePkg/MdeModulePkg.dec > > @@ -1036,6 +1036,28 @@ > > # @Prompt Enable UEFI Stack Guard. > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard|FALSE|BOOLEAN|0x30 > > 001055 > > > > + ## This PCD is to indicate the PCI Bus driver to setup other new PCI > > features. > > + # Each PCI feature is represented by its mask bit position and it > > + configures # if that bit is set. > > + # > > + # Bit 0 - if set, the PCI Bus driver programs the device's > > Max_Payload_Size.<BR> > > + # Bit 1 - if set, the PCI Bus driver programs the device's > > Max_Read_Req_Size.<BR> > > + # Bit 2 - if set, the PCI Bus driver programs the device's Relax > > Ordering > > state.<BR> > > + # Bit 3 - if set, the PCI Bus driver programs the device's No-Snoop > > state.<BR> > > + # Bit 4 - if set, the PCI Bus driver programs the device's Completion > > Timeout > > range.<BR> > > + # Bit 5 - if set, the PCI Bus driver programs the device's Extended Tag > > range.<BR> > > + # Bit 6 - if set, the PCI Bus driver programs the device's AtomicOp > > feature.<BR> > > + # Bit 7 - if set, the PCI Bus driver programs the device's LTR > > feature.<BR> > > + # Bit 8 to 11 - Reserved for future use by the PCI Bus driver.<BR> > > + # Bit 12 - if set, the PCI Bus driver programs the PCIe link ASPM > > state.<BR> > > + # Bit 13 - if set, the PCI Bus driver programs the PCIe link Common > > Clock > > Configuration.<BR> > > + # Bit 14 - if set, the PCI Bus driver programs the PCIe link Extended > > Synch > > state.<BR> > > + # Bit 15 to 19 - Reserved for future use by the PCI Bus driver.<BR> > > + # Bit 20 - if set, the PCI Bus driver programs the device's PTM > > feature.<BR> > > + # Bit 21 to 31 - Reserved for future use by the PCI Bus driver.<BR> > > + # @Prompt The UEFI PCI Bus driver enables the new set of other PCI > > Features. > > + > > + > > gEfiMdeModulePkgTokenSpaceGuid.PcdOtherPciFeatures|0x001070FF|UINT32| > > 0 > > + x30001056 > > + > > [PcdsFixedAtBuild, PcdsPatchableInModule] > > ## Dynamic type PCD can be registered callback function for Pcd setting > > action. > > # PcdMaxPeiPcdCallBackNumberPerPcdEntry indicates the maximum number > > of callback function > > -- > > 2.21.0.windows.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#52249): https://edk2.groups.io/g/devel/message/52249 Mute This Topic: https://groups.io/mt/55153389/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-