Re: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete.

2016-10-25 Thread Dong, Guo

Thanks Jiewen and Giri!
The patch has been updated by all the comments.

Thanks,
Guo

From: Yao, Jiewen
Sent: Monday, October 24, 2016 9:55 PM
To: Mudusuru, Giri P ; Dong, Guo 
; edk2-devel@lists.01.org
Cc: Ma, Maurice 
Subject: RE: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if 
signaling PciEnumerationComplete.

Agree all.

From: Mudusuru, Giri P
Sent: Tuesday, October 25, 2016 11:43 AM
To: Yao, Jiewen >; Dong, Guo 
>; 
edk2-devel@lists.01.org
Cc: Ma, Maurice >
Subject: RE: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if 
signaling PciEnumerationComplete.

We can add full description with note that only skip NotifyPhase Post PCI 
enumeration is implemented.

1) Change "BIT0~15 is for function:" to "BIT[15:0] is for function:" and 
"BIT16~32 is for sub-function:" to "BIT[32:16] is for sub-function:" for 
consistency
2)  Suggest to rename fix below define 
FSP_API_NOTIFY_PHASE_AFTER_PCI_ENUMERATION to be consistent with other usage
+#define   PCI_ENUMERATION_COMPLETE_API BIT16
3) Also for PCD naming suggest to change PcdSkipFspApi

Thanks,
-Giri

> -Original Message-
> From: Yao, Jiewen
> Sent: Monday, October 24, 2016 4:18 PM
> To: Dong, Guo >; 
> edk2-devel@lists.01.org
> Cc: Mudusuru, Giri P 
> >; Ma, Maurice
> >
> Subject: RE: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> signaling PciEnumerationComplete.
>
> Thanks Guo. Can we add full description for the PCD?
>
> # BIT0~15 is for function:
> #   BIT0 - Mask TempRamInit
> #   BIT1 - Mask MemoryInit
> #   BIT2 - Mask TempRamExit
> #   BIT3 - Mask SiliconInit
> #   BIT4 - Mask NotifyPhase
> # BIT16~32 is for sub-function:
> #   BIT16 - Mask NotifyPhase (AfterPciEnumeration)
> #   BIT17 - Mask NotifyPhase (ReadyToBoot)
> #   BIT18 - Mask NotifyPhase (EndOfFirmware)
> # Any undefined BITs are reserved for future use
>
>
> Thank you
> Yao Jiewen
>
> > -Original Message-
> > From: Dong, Guo
> > Sent: Tuesday, October 25, 2016 1:03 AM
> > To: edk2-devel@lists.01.org
> > Cc: Yao, Jiewen >; 
> > Mudusuru, Giri P
> > >; Ma, Maurice 
> > >; Dong,
> > Guo >
> > Subject: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> > signaling PciEnumerationComplete.
> >
> >  PciEnumerationComplete might be signaled to FSP in Coreboot. So FSP
> >  wrapper driver don't need send it again. Add a PCD to control if a
> >  FSP API could be skipped from FspWrapperNotifyDxe driver.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Guo Dong >
> > Reviewed-by: Maurice Ma >
> > Reviewed-by: Jiewen Yao >
> > Reviewed-by: Giri P Mudusuru 
> > >
> > ---
> >  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.c  | 22
> > ++
> >  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf|  1 +
> >  IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec|  8 
> >  3 files changed, 23 insertions(+), 8 deletions(-)
> >
> > diff --git
> > a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > index 0797f44..969debc 100644
> > --- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > +++ b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > @@ -26,6 +26,8 @@
> >  #include 
> >  #include 
> >
> > +#define   PCI_ENUMERATION_COMPLETE_API BIT16
> > +
> >  typedef
> >  EFI_STATUS
> >  (EFIAPI * ADD_PERFORMANCE_RECORDS)(
> > @@ -237,6 +239,7 @@ FspWrapperNotifyDxeEntryPoint (
> >EFI_EVENT  ReadyToBootEvent;
> >VOID   *Registration;
> >EFI_EVENT  ProtocolNotifyEvent;
> > +  UINT32   FspApiMask;
> >
> >//
> >// Load this driver's image to memory
> > @@ -246,14 +249,17 @@ FspWrapperNotifyDxeEntryPoint (
> >  return EFI_SUCCESS;
> >}
> >
> > -  ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> > -
> > ,
> > -  TPL_CALLBACK,
> > -  OnPciEnumerationComplete,
> > -  NULL,
> > -  
> > -  );
> > -  ASSERT (ProtocolNotifyEvent != NULL);
> > +  

Re: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete.

2016-10-24 Thread Yao, Jiewen
Agree all.

From: Mudusuru, Giri P
Sent: Tuesday, October 25, 2016 11:43 AM
To: Yao, Jiewen ; Dong, Guo ; 
edk2-devel@lists.01.org
Cc: Ma, Maurice 
Subject: RE: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if 
signaling PciEnumerationComplete.

We can add full description with note that only skip NotifyPhase Post PCI 
enumeration is implemented.

1) Change "BIT0~15 is for function:" to "BIT[15:0] is for function:" and 
"BIT16~32 is for sub-function:" to "BIT[32:16] is for sub-function:" for 
consistency
2)  Suggest to rename fix below define 
FSP_API_NOTIFY_PHASE_AFTER_PCI_ENUMERATION to be consistent with other usage
+#define   PCI_ENUMERATION_COMPLETE_API BIT16
3) Also for PCD naming suggest to change PcdSkipFspApi

Thanks,
-Giri

> -Original Message-
> From: Yao, Jiewen
> Sent: Monday, October 24, 2016 4:18 PM
> To: Dong, Guo >; 
> edk2-devel@lists.01.org
> Cc: Mudusuru, Giri P 
> >; Ma, Maurice
> >
> Subject: RE: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> signaling PciEnumerationComplete.
>
> Thanks Guo. Can we add full description for the PCD?
>
> # BIT0~15 is for function:
> #   BIT0 - Mask TempRamInit
> #   BIT1 - Mask MemoryInit
> #   BIT2 - Mask TempRamExit
> #   BIT3 - Mask SiliconInit
> #   BIT4 - Mask NotifyPhase
> # BIT16~32 is for sub-function:
> #   BIT16 - Mask NotifyPhase (AfterPciEnumeration)
> #   BIT17 - Mask NotifyPhase (ReadyToBoot)
> #   BIT18 - Mask NotifyPhase (EndOfFirmware)
> # Any undefined BITs are reserved for future use
>
>
> Thank you
> Yao Jiewen
>
> > -Original Message-
> > From: Dong, Guo
> > Sent: Tuesday, October 25, 2016 1:03 AM
> > To: edk2-devel@lists.01.org
> > Cc: Yao, Jiewen >; 
> > Mudusuru, Giri P
> > >; Ma, Maurice 
> > >; Dong,
> > Guo >
> > Subject: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> > signaling PciEnumerationComplete.
> >
> >  PciEnumerationComplete might be signaled to FSP in Coreboot. So FSP
> >  wrapper driver don't need send it again. Add a PCD to control if a
> >  FSP API could be skipped from FspWrapperNotifyDxe driver.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Guo Dong >
> > Reviewed-by: Maurice Ma >
> > Reviewed-by: Jiewen Yao >
> > Reviewed-by: Giri P Mudusuru 
> > >
> > ---
> >  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.c  | 22
> > ++
> >  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf|  1 +
> >  IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec|  8 
> >  3 files changed, 23 insertions(+), 8 deletions(-)
> >
> > diff --git
> > a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > index 0797f44..969debc 100644
> > --- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > +++ b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > @@ -26,6 +26,8 @@
> >  #include 
> >  #include 
> >
> > +#define   PCI_ENUMERATION_COMPLETE_API BIT16
> > +
> >  typedef
> >  EFI_STATUS
> >  (EFIAPI * ADD_PERFORMANCE_RECORDS)(
> > @@ -237,6 +239,7 @@ FspWrapperNotifyDxeEntryPoint (
> >EFI_EVENT  ReadyToBootEvent;
> >VOID   *Registration;
> >EFI_EVENT  ProtocolNotifyEvent;
> > +  UINT32   FspApiMask;
> >
> >//
> >// Load this driver's image to memory
> > @@ -246,14 +249,17 @@ FspWrapperNotifyDxeEntryPoint (
> >  return EFI_SUCCESS;
> >}
> >
> > -  ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> > -
> > ,
> > -  TPL_CALLBACK,
> > -  OnPciEnumerationComplete,
> > -  NULL,
> > -  
> > -  );
> > -  ASSERT (ProtocolNotifyEvent != NULL);
> > +  FspApiMask = PcdGet32 (PcdFspApiSkipMask);
> > +  if ((FspApiMask & PCI_ENUMERATION_COMPLETE_API) == 0) {
> > +ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> > +
> > ,
> > +TPL_CALLBACK,
> > +OnPciEnumerationComplete,
> > +NULL,
> > +
> > +);
> > +ASSERT (ProtocolNotifyEvent != NULL);
> > +  }
> >
> >Status = EfiCreateEventReadyToBootEx (
> >   

Re: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete.

2016-10-24 Thread Mudusuru, Giri P
We can add full description with note that only skip NotifyPhase Post PCI 
enumeration is implemented.

1) Change "BIT0~15 is for function:" to "BIT[15:0] is for function:" and 
"BIT16~32 is for sub-function:" to "BIT[32:16] is for sub-function:" for 
consistency
2)  Suggest to rename fix below define 
FSP_API_NOTIFY_PHASE_AFTER_PCI_ENUMERATION to be consistent with other usage
+#define   PCI_ENUMERATION_COMPLETE_API BIT16
3) Also for PCD naming suggest to change PcdSkipFspApi 

Thanks,
-Giri

> -Original Message-
> From: Yao, Jiewen
> Sent: Monday, October 24, 2016 4:18 PM
> To: Dong, Guo ; edk2-devel@lists.01.org
> Cc: Mudusuru, Giri P ; Ma, Maurice
> 
> Subject: RE: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> signaling PciEnumerationComplete.
> 
> Thanks Guo. Can we add full description for the PCD?
> 
> # BIT0~15 is for function:
> #   BIT0 - Mask TempRamInit
> #   BIT1 - Mask MemoryInit
> #   BIT2 - Mask TempRamExit
> #   BIT3 - Mask SiliconInit
> #   BIT4 - Mask NotifyPhase
> # BIT16~32 is for sub-function:
> #   BIT16 - Mask NotifyPhase (AfterPciEnumeration)
> #   BIT17 - Mask NotifyPhase (ReadyToBoot)
> #   BIT18 - Mask NotifyPhase (EndOfFirmware)
> # Any undefined BITs are reserved for future use
> 
> 
> Thank you
> Yao Jiewen
> 
> > -Original Message-
> > From: Dong, Guo
> > Sent: Tuesday, October 25, 2016 1:03 AM
> > To: edk2-devel@lists.01.org
> > Cc: Yao, Jiewen ; Mudusuru, Giri P
> > ; Ma, Maurice ; Dong,
> > Guo 
> > Subject: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> > signaling PciEnumerationComplete.
> >
> >  PciEnumerationComplete might be signaled to FSP in Coreboot. So FSP
> >  wrapper driver don't need send it again. Add a PCD to control if a
> >  FSP API could be skipped from FspWrapperNotifyDxe driver.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Guo Dong 
> > Reviewed-by: Maurice Ma 
> > Reviewed-by: Jiewen Yao 
> > Reviewed-by: Giri P Mudusuru 
> > ---
> >  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.c  | 22
> > ++
> >  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf|  1 +
> >  IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec|  8 
> >  3 files changed, 23 insertions(+), 8 deletions(-)
> >
> > diff --git
> > a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > index 0797f44..969debc 100644
> > --- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > +++ b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> > @@ -26,6 +26,8 @@
> >  #include 
> >  #include 
> >
> > +#define   PCI_ENUMERATION_COMPLETE_API BIT16
> > +
> >  typedef
> >  EFI_STATUS
> >  (EFIAPI * ADD_PERFORMANCE_RECORDS)(
> > @@ -237,6 +239,7 @@ FspWrapperNotifyDxeEntryPoint (
> >EFI_EVENT  ReadyToBootEvent;
> >VOID   *Registration;
> >EFI_EVENT  ProtocolNotifyEvent;
> > +  UINT32   FspApiMask;
> >
> >//
> >// Load this driver's image to memory
> > @@ -246,14 +249,17 @@ FspWrapperNotifyDxeEntryPoint (
> >  return EFI_SUCCESS;
> >}
> >
> > -  ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> > -
> > ,
> > -  TPL_CALLBACK,
> > -  OnPciEnumerationComplete,
> > -  NULL,
> > -  
> > -  );
> > -  ASSERT (ProtocolNotifyEvent != NULL);
> > +  FspApiMask = PcdGet32 (PcdFspApiSkipMask);
> > +  if ((FspApiMask & PCI_ENUMERATION_COMPLETE_API) == 0) {
> > +ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> > +
> > ,
> > +TPL_CALLBACK,
> > +OnPciEnumerationComplete,
> > +NULL,
> > +
> > +);
> > +ASSERT (ProtocolNotifyEvent != NULL);
> > +  }
> >
> >Status = EfiCreateEventReadyToBootEx (
> >   TPL_CALLBACK,
> > diff --git
> > a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> > b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> > index f851f68..9ef81ff 100644
> > --- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> > +++
> > b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> > @@ -62,6 +62,7 @@
> >
> >  [Pcd]
> >gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress  ##
> > CONSUMES
> > +  gIntelFsp2WrapperTokenSpaceGuid.PcdFspApiSkipMask   ##
> > CONSUMES
> >
> >  [Depex]
> >TRUE
> > diff --git a/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec
> > b/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec
> > index d9d2d80..534f482 100644
> > --- 

Re: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete.

2016-10-24 Thread Yao, Jiewen
Thanks Guo. Can we add full description for the PCD?

# BIT0~15 is for function:
#   BIT0 - Mask TempRamInit
#   BIT1 - Mask MemoryInit
#   BIT2 - Mask TempRamExit
#   BIT3 - Mask SiliconInit
#   BIT4 - Mask NotifyPhase
# BIT16~32 is for sub-function:
#   BIT16 - Mask NotifyPhase (AfterPciEnumeration)
#   BIT17 - Mask NotifyPhase (ReadyToBoot)
#   BIT18 - Mask NotifyPhase (EndOfFirmware)
# Any undefined BITs are reserved for future use


Thank you
Yao Jiewen

> -Original Message-
> From: Dong, Guo
> Sent: Tuesday, October 25, 2016 1:03 AM
> To: edk2-devel@lists.01.org
> Cc: Yao, Jiewen ; Mudusuru, Giri P
> ; Ma, Maurice ; Dong,
> Guo 
> Subject: [edk2] [PATCH v2] IntelFsp2WrapperPkg: Add a PCD to control if
> signaling PciEnumerationComplete.
> 
>  PciEnumerationComplete might be signaled to FSP in Coreboot. So FSP
>  wrapper driver don't need send it again. Add a PCD to control if a
>  FSP API could be skipped from FspWrapperNotifyDxe driver.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Guo Dong 
> Reviewed-by: Maurice Ma 
> Reviewed-by: Jiewen Yao 
> Reviewed-by: Giri P Mudusuru 
> ---
>  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.c  | 22
> ++
>  .../FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf|  1 +
>  IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec|  8 
>  3 files changed, 23 insertions(+), 8 deletions(-)
> 
> diff --git
> a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> index 0797f44..969debc 100644
> --- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> +++ b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
> @@ -26,6 +26,8 @@
>  #include 
>  #include 
> 
> +#define   PCI_ENUMERATION_COMPLETE_API BIT16
> +
>  typedef
>  EFI_STATUS
>  (EFIAPI * ADD_PERFORMANCE_RECORDS)(
> @@ -237,6 +239,7 @@ FspWrapperNotifyDxeEntryPoint (
>EFI_EVENT  ReadyToBootEvent;
>VOID   *Registration;
>EFI_EVENT  ProtocolNotifyEvent;
> +  UINT32   FspApiMask;
> 
>//
>// Load this driver's image to memory
> @@ -246,14 +249,17 @@ FspWrapperNotifyDxeEntryPoint (
>  return EFI_SUCCESS;
>}
> 
> -  ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> -
> ,
> -  TPL_CALLBACK,
> -  OnPciEnumerationComplete,
> -  NULL,
> -  
> -  );
> -  ASSERT (ProtocolNotifyEvent != NULL);
> +  FspApiMask = PcdGet32 (PcdFspApiSkipMask);
> +  if ((FspApiMask & PCI_ENUMERATION_COMPLETE_API) == 0) {
> +ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
> +
> ,
> +TPL_CALLBACK,
> +OnPciEnumerationComplete,
> +NULL,
> +
> +);
> +ASSERT (ProtocolNotifyEvent != NULL);
> +  }
> 
>Status = EfiCreateEventReadyToBootEx (
>   TPL_CALLBACK,
> diff --git
> a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> index f851f68..9ef81ff 100644
> --- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> +++
> b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.inf
> @@ -62,6 +62,7 @@
> 
>  [Pcd]
>gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress  ##
> CONSUMES
> +  gIntelFsp2WrapperTokenSpaceGuid.PcdFspApiSkipMask   ##
> CONSUMES
> 
>  [Depex]
>TRUE
> diff --git a/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec
> b/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec
> index d9d2d80..534f482 100644
> --- a/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec
> +++ b/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec
> @@ -75,6 +75,14 @@
> 
> gIntelFsp2WrapperTokenSpaceGuid.PcdFsptBaseAddress|0x|UINT3
> 2|0x0300
> 
> gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress|0x|UINT
> 32|0x0301
> 
> +  ## This PCD indicates if FSP APIs are skipped from FSP wrapper.
> +  #  If a bit is set, that means this FSP API is skipped.
> +  #  If a bit is clear, that means this FSP API is NOT skipped.
> +  #BIT16   - Mask NotifyPhase (AfterPciEnumeration).
> +  #Any undefined BITs are reserved for future use.
> +  # @Prompt FSP API skip mask from FSP wrapper.
> +
> gIntelFsp2WrapperTokenSpaceGuid.PcdFspApiSkipMask|0x|UINT3
> 2|0x4009
> +
>  [PcdsFixedAtBuild, PcdsPatchableInModule,PcdsDynamic,PcdsDynamicEx]
> 
> gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress|0x|UINT
> 32|0x1001
> 
> \ No newline at end of file
> --
> 2.7.0.windows.1

___
edk2-devel mailing list
edk2-devel@lists.01.org