Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
For this patch, I am OK to add it into edk2-staging/UEFI_PCI_ENHANCE-2 first, and for further discussion. Thanks Liming > -Original Message- > From: Javeed, Ashraf > Sent: Monday, July 29, 2019 10:40 PM > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, Liming > > Cc: Kinney, Michael D ; Ni, Ray > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat > protocol > > I did discuss this option with Ray; the thing is there is already a pair of > protocols defined to retrieve platform policy - PCI Platform Protocol > and its alias PCI Override Protocol; a new protocol would be third one for > the same purpose, to be consumed by the PCI Bus driver or PCI > Root Bridge Resource allocation driver; it appeared better to avoid new one > and utilize existing one by enhancing it. > However, I am open for further suggestions. > Thanks > Ashraf > > > -Original Message- > > From: Yao, Jiewen > > Sent: Monday, July 29, 2019 5:55 PM > > To: devel@edk2.groups.io; Yao, Jiewen ; Javeed, > > Ashraf ; Gao, Liming > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > Forgot to mention: since we want to handle device policy, another option is > > to > > create PCI_DEVICE_POLICY_PROTOCOL. No need to update previous one. > > > > Thank you > > Yao Jiewen > > > > > -Original Message- > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > > > Yao, Jiewen > > > Sent: Monday, July 29, 2019 8:19 PM > > > To: Javeed, Ashraf ; devel@edk2.groups.io; > > > Gao, Liming > > > Cc: Kinney, Michael D ; Ni, Ray > > > > > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > I think the request makes sense. > > > > > > I am not sure if I understand your question on PCI attributes. It is > > > generic concept and defined in UEFI spec. Here we are discussing > > > device policy in PCIE spec. > > > > > > I checked ECR in https://bugzilla.tianocore.org/show_bug.cgi?id=1954, > > > it defines > > > typedef struct { > > > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > > > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > > > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > > > EFI_PCI_CONF_RELAX_ORDERDeviceCtlRelaxOrder; > > > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > > > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > > > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > > > EFI_PCI_CONF_EXTENDED_SYNCH LinkCtlExtSynch; > > > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > > > EFI_PCI_CONF_LTRDeviceCtl2LTR; > > > EFI_PCI_CONF_PTMPTMControl; > > > EFI_PCI_CONF_RESERVES Reserves[117]; > > > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > > > > > But in below patch, it is already changed to: > > > > > > typedef struct { > > > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > > > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > > > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > > > EFI_PCI_CONF_RELAX_ORDER DeviceCtlRelaxOrder; > > > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > > > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > > > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > > > EFI_PCI_CONF_EXTENDED_SYNCHLinkCtlExtSynch; > > > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > > > EFI_PCI_CONF_LTR DeviceCtl2LTR; > > > EFI_PCI_CONF_PTM PTMControl; > > > EFI_PCI_CONF_CTO_SUPPORT CTOsupport; > > > EFI_PCI_CONF_RESERVES Reserves[116]; > > > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > > > > > That means, *the policy structure is changed within 1 month.* > > > > > > I am not sure how stable the current version is. But changing spec is > > > time consuming. > > > > > > Maybe we can start with EDKII interface only. > > > Wait for a while, to see if we need add something, then decide if > > > there is need to add to PI sp
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
I did discuss this option with Ray; the thing is there is already a pair of protocols defined to retrieve platform policy - PCI Platform Protocol and its alias PCI Override Protocol; a new protocol would be third one for the same purpose, to be consumed by the PCI Bus driver or PCI Root Bridge Resource allocation driver; it appeared better to avoid new one and utilize existing one by enhancing it. However, I am open for further suggestions. Thanks Ashraf > -Original Message- > From: Yao, Jiewen > Sent: Monday, July 29, 2019 5:55 PM > To: devel@edk2.groups.io; Yao, Jiewen ; Javeed, > Ashraf ; Gao, Liming > Cc: Kinney, Michael D ; Ni, Ray > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > Forgot to mention: since we want to handle device policy, another option is to > create PCI_DEVICE_POLICY_PROTOCOL. No need to update previous one. > > Thank you > Yao Jiewen > > > -Original Message- > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > > Yao, Jiewen > > Sent: Monday, July 29, 2019 8:19 PM > > To: Javeed, Ashraf ; devel@edk2.groups.io; > > Gao, Liming > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > I think the request makes sense. > > > > I am not sure if I understand your question on PCI attributes. It is > > generic concept and defined in UEFI spec. Here we are discussing > > device policy in PCIE spec. > > > > I checked ECR in https://bugzilla.tianocore.org/show_bug.cgi?id=1954, > > it defines > > typedef struct { > > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > > EFI_PCI_CONF_RELAX_ORDERDeviceCtlRelaxOrder; > > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > > EFI_PCI_CONF_EXTENDED_SYNCH LinkCtlExtSynch; > > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > > EFI_PCI_CONF_LTRDeviceCtl2LTR; > > EFI_PCI_CONF_PTMPTMControl; > > EFI_PCI_CONF_RESERVES Reserves[117]; > > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > > > But in below patch, it is already changed to: > > > > typedef struct { > > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > > EFI_PCI_CONF_RELAX_ORDER DeviceCtlRelaxOrder; > > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > > EFI_PCI_CONF_EXTENDED_SYNCHLinkCtlExtSynch; > > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > > EFI_PCI_CONF_LTR DeviceCtl2LTR; > > EFI_PCI_CONF_PTM PTMControl; > > EFI_PCI_CONF_CTO_SUPPORT CTOsupport; > > EFI_PCI_CONF_RESERVES Reserves[116]; > > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > > > That means, *the policy structure is changed within 1 month.* > > > > I am not sure how stable the current version is. But changing spec is > > time consuming. > > > > Maybe we can start with EDKII interface only. > > Wait for a while, to see if we need add something, then decide if > > there is need to add to PI spec. > > > > Thank you > > Yao Jiewen > > > > > > > > > -Original Message- > > > From: Javeed, Ashraf > > > Sent: Monday, July 29, 2019 7:18 PM > > > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, > > > Liming > > > Cc: Kinney, Michael D ; Ni, Ray > > > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > My response inline below... > > > > > > Thanks > > > Ashraf > > > > > > > -Original Message- > > > > From: Yao, Jiewen > > > > Sent: Monday, July 29, 2019 2:26 PM > > > > To: Javeed, Ashraf ; > > > > devel@edk2.groups.io; > > >
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Hello Yao Jeiwen, Thanks for reviewing in detail! I used the PCIe attribute in the context of my ECR; say MPS is a PCI standard feature which has to be set to defined set of values only, thus I called it as its attributes. I had updated about this latest additional PCI feature (CTO) inclusion in this Bugzilla feature request itself (Reference: https://bugzilla.tianocore.org/show_bug.cgi?id=1954#c2) Regards Ashraf > -Original Message- > From: Yao, Jiewen > Sent: Monday, July 29, 2019 5:49 PM > To: Javeed, Ashraf ; devel@edk2.groups.io; Gao, > Liming > Cc: Kinney, Michael D ; Ni, Ray > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > I think the request makes sense. > > I am not sure if I understand your question on PCI attributes. It is generic > concept and defined in UEFI spec. Here we are discussing device policy in PCIE > spec. > > I checked ECR in https://bugzilla.tianocore.org/show_bug.cgi?id=1954, it > defines > typedef struct { > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > EFI_PCI_CONF_RELAX_ORDERDeviceCtlRelaxOrder; > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > EFI_PCI_CONF_EXTENDED_SYNCH LinkCtlExtSynch; > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > EFI_PCI_CONF_LTRDeviceCtl2LTR; > EFI_PCI_CONF_PTMPTMControl; > EFI_PCI_CONF_RESERVES Reserves[117]; > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > But in below patch, it is already changed to: > > typedef struct { > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > EFI_PCI_CONF_RELAX_ORDER DeviceCtlRelaxOrder; > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > EFI_PCI_CONF_EXTENDED_SYNCHLinkCtlExtSynch; > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > EFI_PCI_CONF_LTR DeviceCtl2LTR; > EFI_PCI_CONF_PTM PTMControl; > EFI_PCI_CONF_CTO_SUPPORT CTOsupport; > EFI_PCI_CONF_RESERVES Reserves[116]; > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > That means, *the policy structure is changed within 1 month.* > > I am not sure how stable the current version is. But changing spec is time > consuming. > > Maybe we can start with EDKII interface only. > Wait for a while, to see if we need add something, then decide if there is > need > to add to PI spec. > > Thank you > Yao Jiewen > > > > > -----Original Message- > > From: Javeed, Ashraf > > Sent: Monday, July 29, 2019 7:18 PM > > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, > > Liming > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > My response inline below... > > > > Thanks > > Ashraf > > > > > -Original Message- > > > From: Yao, Jiewen > > > Sent: Monday, July 29, 2019 2:26 PM > > > To: Javeed, Ashraf ; devel@edk2.groups.io; > > Gao, > > > Liming > > > Cc: Kinney, Michael D ; Ni, Ray > > > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > Oh. This patch is for staging. Not for EDKII master, right? > > > If so, I have no concern. > > > For the master, I think MdePkg should only include what has been defined. > > > > > > For this patch, I am curious on how to maintain the compatibility? > > [Ashraf] I had discussion with Ray related to compatibility; the new > > GUID is defined to maintain both backward and forward compatibility, > > hence the name PCI Platform Protocol 2. > > > > > > For example, what happen, if PCIE 5.0 or PCIE 6.0 add new device policy? > > [Ashraf] There is major/minor version defined in the PCI Platform > > Protocol 2, which can be used for extending it in future if required. > > > It seems weird to bind
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Forgot to mention: since we want to handle device policy, another option is to create PCI_DEVICE_POLICY_PROTOCOL. No need to update previous one. Thank you Yao Jiewen > -Original Message- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > Yao, Jiewen > Sent: Monday, July 29, 2019 8:19 PM > To: Javeed, Ashraf ; devel@edk2.groups.io; Gao, > Liming > Cc: Kinney, Michael D ; Ni, Ray > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > I think the request makes sense. > > I am not sure if I understand your question on PCI attributes. It is generic > concept and defined in UEFI spec. Here we are discussing device policy in > PCIE spec. > > I checked ECR in https://bugzilla.tianocore.org/show_bug.cgi?id=1954, it > defines > typedef struct { > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > EFI_PCI_CONF_RELAX_ORDERDeviceCtlRelaxOrder; > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > EFI_PCI_CONF_EXTENDED_SYNCH LinkCtlExtSynch; > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > EFI_PCI_CONF_LTRDeviceCtl2LTR; > EFI_PCI_CONF_PTMPTMControl; > EFI_PCI_CONF_RESERVES Reserves[117]; > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > But in below patch, it is already changed to: > > typedef struct { > EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; > EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; > EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; > EFI_PCI_CONF_RELAX_ORDER DeviceCtlRelaxOrder; > EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; > EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; > EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; > EFI_PCI_CONF_EXTENDED_SYNCHLinkCtlExtSynch; > EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; > EFI_PCI_CONF_LTR DeviceCtl2LTR; > EFI_PCI_CONF_PTM PTMControl; > EFI_PCI_CONF_CTO_SUPPORT CTOsupport; > EFI_PCI_CONF_RESERVES Reserves[116]; > } EFI_PCI_PLATFORM_EXTENDED_POLICY; > > That means, *the policy structure is changed within 1 month.* > > I am not sure how stable the current version is. But changing spec is time > consuming. > > Maybe we can start with EDKII interface only. > Wait for a while, to see if we need add something, then decide if there is > need to add to PI spec. > > Thank you > Yao Jiewen > > > > > -----Original Message- > > From: Javeed, Ashraf > > Sent: Monday, July 29, 2019 7:18 PM > > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, > > Liming > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > My response inline below... > > > > Thanks > > Ashraf > > > > > -----Original Message- > > > From: Yao, Jiewen > > > Sent: Monday, July 29, 2019 2:26 PM > > > To: Javeed, Ashraf ; devel@edk2.groups.io; > > Gao, > > > Liming > > > Cc: Kinney, Michael D ; Ni, Ray > > > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH > V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > Oh. This patch is for staging. Not for EDKII master, right? > > > If so, I have no concern. > > > For the master, I think MdePkg should only include what has been > defined. > > > > > > For this patch, I am curious on how to maintain the compatibility? > > [Ashraf] I had discussion with Ray related to compatibility; the new GUID is > > defined > > to maintain both backward and forward compatibility, hence the name PCI > > Platform > > Protocol 2. > > > > > > For example, what happen, if PCIE 5.0 or PCIE 6.0 add new device policy? > > [Ashraf] There is major/minor version defined in the PCI Platform Protocol > 2, > > which can > > be used for extending it in future if required. > > > It seems weird to bind a PI protocol to another industry standard. We > had > > better > > > decouple them. > > [Ashraf] The abstraction for the
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
I think the request makes sense. I am not sure if I understand your question on PCI attributes. It is generic concept and defined in UEFI spec. Here we are discussing device policy in PCIE spec. I checked ECR in https://bugzilla.tianocore.org/show_bug.cgi?id=1954, it defines typedef struct { EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; EFI_PCI_CONF_RELAX_ORDERDeviceCtlRelaxOrder; EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; EFI_PCI_CONF_EXTENDED_SYNCH LinkCtlExtSynch; EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; EFI_PCI_CONF_LTRDeviceCtl2LTR; EFI_PCI_CONF_PTMPTMControl; EFI_PCI_CONF_RESERVES Reserves[117]; } EFI_PCI_PLATFORM_EXTENDED_POLICY; But in below patch, it is already changed to: typedef struct { EFI_PCI_CONF_MAX_PAYLOAD_SIZE DeviceCtlMPS; EFI_PCI_CONF_MAX_READ_REQ_SIZE DeviceCtlMRRS; EFI_PCI_CONF_EXTENDED_TAG DeviceCtlExtTag; EFI_PCI_CONF_RELAX_ORDER DeviceCtlRelaxOrder; EFI_PCI_CONF_NO_SNOOP DeviceCtlNoSnoop; EFI_PCI_CONF_ASPM_SUPPORT LinkCtlASPMState; EFI_PCI_CONF_COMMON_CLOCK_CFG LinkCtlCommonClkCfg; EFI_PCI_CONF_EXTENDED_SYNCHLinkCtlExtSynch; EFI_PCI_CONF_ATOMIC_OP DeviceCtl2AtomicOp; EFI_PCI_CONF_LTR DeviceCtl2LTR; EFI_PCI_CONF_PTM PTMControl; EFI_PCI_CONF_CTO_SUPPORT CTOsupport; EFI_PCI_CONF_RESERVES Reserves[116]; } EFI_PCI_PLATFORM_EXTENDED_POLICY; That means, *the policy structure is changed within 1 month.* I am not sure how stable the current version is. But changing spec is time consuming. Maybe we can start with EDKII interface only. Wait for a while, to see if we need add something, then decide if there is need to add to PI spec. Thank you Yao Jiewen > -Original Message- > From: Javeed, Ashraf > Sent: Monday, July 29, 2019 7:18 PM > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, > Liming > Cc: Kinney, Michael D ; Ni, Ray > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > My response inline below... > > Thanks > Ashraf > > > -Original Message- > > From: Yao, Jiewen > > Sent: Monday, July 29, 2019 2:26 PM > > To: Javeed, Ashraf ; devel@edk2.groups.io; > Gao, > > Liming > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > Oh. This patch is for staging. Not for EDKII master, right? > > If so, I have no concern. > > For the master, I think MdePkg should only include what has been defined. > > > > For this patch, I am curious on how to maintain the compatibility? > [Ashraf] I had discussion with Ray related to compatibility; the new GUID is > defined > to maintain both backward and forward compatibility, hence the name PCI > Platform > Protocol 2. > > > > For example, what happen, if PCIE 5.0 or PCIE 6.0 add new device policy? > [Ashraf] There is major/minor version defined in the PCI Platform Protocol 2, > which can > be used for extending it in future if required. > > It seems weird to bind a PI protocol to another industry standard. We had > better > > decouple them. > [Ashraf] The abstraction for the PCI attributes are done in similar way as it > is > done in > the existing PI spec for the EFI_PCI_PLATFORM_POLICY. Please suggest how > to represent > the PCI attributes defined in the EFI_PCI_PLATFORM_EXTENDED_POLICY of > the PciPlatform2.h? > > > > As such, we don't need update PI spec again and again just because PCIE > spec > > update. > > Thinking of SMBIOS, ACPI, ATA, SCSI, I don't believe we need update > protocol > > interface just because they are updated. > [Ashraf] As I have indicated in the feature request Id 1954; the reason to > enhance this protocol > is because there is no interface to obtain device specific platform policies > from its platform firmware. > There is a demand from Intel Server products to extend PCI standard feature > set in the PCI Bus driver > of the MdeModulePkg, and this protocol needs to be enhanced to > accommodate device-specific > platform policies which would be used directly by the PCI Bus driver. > I strongly believe enhancing this protocol will help t
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
My response inline below... Thanks Ashraf > -Original Message- > From: Yao, Jiewen > Sent: Monday, July 29, 2019 2:26 PM > To: Javeed, Ashraf ; devel@edk2.groups.io; Gao, > Liming > Cc: Kinney, Michael D ; Ni, Ray > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > Oh. This patch is for staging. Not for EDKII master, right? > If so, I have no concern. > For the master, I think MdePkg should only include what has been defined. > > For this patch, I am curious on how to maintain the compatibility? [Ashraf] I had discussion with Ray related to compatibility; the new GUID is defined to maintain both backward and forward compatibility, hence the name PCI Platform Protocol 2. > > For example, what happen, if PCIE 5.0 or PCIE 6.0 add new device policy? [Ashraf] There is major/minor version defined in the PCI Platform Protocol 2, which can be used for extending it in future if required. > It seems weird to bind a PI protocol to another industry standard. We had > better > decouple them. [Ashraf] The abstraction for the PCI attributes are done in similar way as it is done in the existing PI spec for the EFI_PCI_PLATFORM_POLICY. Please suggest how to represent the PCI attributes defined in the EFI_PCI_PLATFORM_EXTENDED_POLICY of the PciPlatform2.h? > > As such, we don't need update PI spec again and again just because PCIE spec > update. > Thinking of SMBIOS, ACPI, ATA, SCSI, I don't believe we need update protocol > interface just because they are updated. [Ashraf] As I have indicated in the feature request Id 1954; the reason to enhance this protocol is because there is no interface to obtain device specific platform policies from its platform firmware. There is a demand from Intel Server products to extend PCI standard feature set in the PCI Bus driver of the MdeModulePkg, and this protocol needs to be enhanced to accommodate device-specific platform policies which would be used directly by the PCI Bus driver. I strongly believe enhancing this protocol will help the PCI Bus driver to support many PCI features seamlessly in future, without further changes to PI specification. Otherwise, please provide an alternative to consider the device-specific platform policies which the MdeModulePkg's PCI Bus driver can adhere to support those PCI standard features in future? > > Thank you > Yao Jiewen > > > -Original Message- > > From: Javeed, Ashraf > > Sent: Monday, July 29, 2019 4:12 PM > > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, > > Liming > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > Hi Yao Jiewen, > > Can you please elaborate your concern? > > The PCI Platform Protocol / PCI Override Protocol are defined in PI Spec > > 1.7. > > These same protocols are enhanced here. > > The producer would be the platform firmware, and consumer would be the > > MdeModulePkg's PCI Bus driver. > > The detailed document is attached to Bugzilla feature request Id 1954. > > > > Thanks > > Ashraf > > > > > -Original Message- > > > From: Yao, Jiewen > > > Sent: Monday, July 29, 2019 1:36 PM > > > To: devel@edk2.groups.io; Gao, Liming ; > > > Javeed, > > Ashraf > > > > > > Cc: Kinney, Michael D ; Ni, Ray > > > ; Yao, Jiewen > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > Hi > > > I think this policy protocol should be EDKII specific. Currently it > > > is no in PI > > spec. > > > Should it be in MdeModulePkg ? > > > > > > Thank you > > > Yao Jiewen > > > > > > > -Original Message- > > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf > > Of > > > > Liming Gao > > > > Sent: Monday, July 29, 2019 3:52 PM > > > > To: Javeed, Ashraf ; devel@edk2.groups.io > > > > Cc: Kinney, Michael D ; Ni, Ray > > > > > > > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH > > V2] > > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat > > > > protocol > > > > > > > > Ashraf: > > > > For new files, please use license: SPDX-License-Identifier: > > > > BSD-2-Clause-Patent. > > > > > > >
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Oh. This patch is for staging. Not for EDKII master, right? If so, I have no concern. For the master, I think MdePkg should only include what has been defined. For this patch, I am curious on how to maintain the compatibility? For example, what happen, if PCIE 5.0 or PCIE 6.0 add new device policy? It seems weird to bind a PI protocol to another industry standard. We had better decouple them. As such, we don't need update PI spec again and again just because PCIE spec update. Thinking of SMBIOS, ACPI, ATA, SCSI, I don't believe we need update protocol interface just because they are updated. Thank you Yao Jiewen > -Original Message- > From: Javeed, Ashraf > Sent: Monday, July 29, 2019 4:12 PM > To: Yao, Jiewen ; devel@edk2.groups.io; Gao, > Liming > Cc: Kinney, Michael D ; Ni, Ray > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > Hi Yao Jiewen, > Can you please elaborate your concern? > The PCI Platform Protocol / PCI Override Protocol are defined in PI Spec 1.7. > These same protocols are enhanced here. > The producer would be the platform firmware, and consumer would be the > MdeModulePkg's PCI Bus driver. > The detailed document is attached to Bugzilla feature request Id 1954. > > Thanks > Ashraf > > > -Original Message- > > From: Yao, Jiewen > > Sent: Monday, July 29, 2019 1:36 PM > > To: devel@edk2.groups.io; Gao, Liming ; Javeed, > Ashraf > > > > Cc: Kinney, Michael D ; Ni, Ray > > ; Yao, Jiewen > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > Hi > > I think this policy protocol should be EDKII specific. Currently it is no > > in PI > spec. > > Should it be in MdeModulePkg ? > > > > Thank you > > Yao Jiewen > > > > > -Original Message- > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf > Of > > > Liming Gao > > > Sent: Monday, July 29, 2019 3:52 PM > > > To: Javeed, Ashraf ; devel@edk2.groups.io > > > Cc: Kinney, Michael D ; Ni, Ray > > > > > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH > V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > Ashraf: > > > For new files, please use license: SPDX-License-Identifier: > > > BSD-2-Clause-Patent. > > > > > > Other change is good. Reviewed-by: Liming Gao > > > > > > > Thanks > > > Liming > > > >-Original Message- > > > >From: Javeed, Ashraf > > > >Sent: Monday, July 29, 2019 2:52 PM > > > >To: devel@edk2.groups.io > > > >Cc: Kinney, Michael D ; Gao, Liming > > > >; Ni, Ray > > > >Subject: [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > > MdePkg/Protocols: > > > >New interface, EFI encodings to PCI Plat protocol > > > > > > > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > > > > > > >New interface added to PCI Platform Protocol / PCI Override Protocol > > > >to retrieve device-specific platform policy for the following PCI > > > >standard features, like Maximum Payload Size (MPS), Maximum Read > > > >Request Size (MRRS),Extended Tags, Relax Order, No-Snoop, Active > > > >State Power Management (ASPM),Latency Time Reporting (LTR), > AtomicOp, > > > >Reference Clock Configuration, Extended SYNCH, PTM support, and > > > >Completion Timeout > > > (CTO). > > > >New source files added with enhanced definitions are in: > > > >MdePkg/Include/Protocol/PciPlatform2.h, > > > >MdePkg/Include/Protocol/PciOverride2.h > > > > > > > >Signed-off-by: Ashraf Javeed > > > >Cc: Michael D Kinney > > > >Cc: Liming Gao > > > >Cc: Ray Ni > > > >--- > > > > > > > >In V2: Correction made to header sections of source files > > > >--- > > > > MdePkg/Include/Protocol/PciOverride2.h | 43 > > > >+++ > > > > MdePkg/Include/Protocol/PciPlatform2.h | 393 > > > >++ > + > > > >++ > + > > > >++ > + > > > >+++
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Hi Yao Jiewen, Can you please elaborate your concern? The PCI Platform Protocol / PCI Override Protocol are defined in PI Spec 1.7. These same protocols are enhanced here. The producer would be the platform firmware, and consumer would be the MdeModulePkg's PCI Bus driver. The detailed document is attached to Bugzilla feature request Id 1954. Thanks Ashraf > -Original Message- > From: Yao, Jiewen > Sent: Monday, July 29, 2019 1:36 PM > To: devel@edk2.groups.io; Gao, Liming ; Javeed, Ashraf > > Cc: Kinney, Michael D ; Ni, Ray > ; Yao, Jiewen > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > Hi > I think this policy protocol should be EDKII specific. Currently it is no in > PI spec. > Should it be in MdeModulePkg ? > > Thank you > Yao Jiewen > > > -Original Message- > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > > Liming Gao > > Sent: Monday, July 29, 2019 3:52 PM > > To: Javeed, Ashraf ; devel@edk2.groups.io > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > Ashraf: > > For new files, please use license: SPDX-License-Identifier: > > BSD-2-Clause-Patent. > > > > Other change is good. Reviewed-by: Liming Gao > > > > Thanks > > Liming > > >-Original Message- > > >From: Javeed, Ashraf > > >Sent: Monday, July 29, 2019 2:52 PM > > >To: devel@edk2.groups.io > > >Cc: Kinney, Michael D ; Gao, Liming > > >; Ni, Ray > > >Subject: [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: > > >New interface, EFI encodings to PCI Plat protocol > > > > > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > > > > >New interface added to PCI Platform Protocol / PCI Override Protocol > > >to retrieve device-specific platform policy for the following PCI > > >standard features, like Maximum Payload Size (MPS), Maximum Read > > >Request Size (MRRS),Extended Tags, Relax Order, No-Snoop, Active > > >State Power Management (ASPM),Latency Time Reporting (LTR), AtomicOp, > > >Reference Clock Configuration, Extended SYNCH, PTM support, and > > >Completion Timeout > > (CTO). > > >New source files added with enhanced definitions are in: > > >MdePkg/Include/Protocol/PciPlatform2.h, > > >MdePkg/Include/Protocol/PciOverride2.h > > > > > >Signed-off-by: Ashraf Javeed > > >Cc: Michael D Kinney > > >Cc: Liming Gao > > >Cc: Ray Ni > > >--- > > > > > >In V2: Correction made to header sections of source files > > >--- > > > MdePkg/Include/Protocol/PciOverride2.h | 43 > > >+++ > > > MdePkg/Include/Protocol/PciPlatform2.h | 393 > > >+++ > > >+++ > > >+++ > > >+++ > > >+++ > > >+++ > > >+++ > > > MdePkg/MdePkg.dec | 6 ++ > > > 3 files changed, 442 insertions(+) > > > > > >diff --git a/MdePkg/Include/Protocol/PciOverride2.h > > >b/MdePkg/Include/Protocol/PciOverride2.h > > >new file mode 100644 > > >index 00..a7f541b4c3 > > >--- /dev/null > > >+++ b/MdePkg/Include/Protocol/PciOverride2.h > > >@@ -0,0 +1,43 @@ > > >+/** @file > > >+ This file declares EFI PCI Override protocol which provides the > > >+interface > > >between > > >+ the PCI bus driver/PCI Host Bridge Resource Allocation driver and > > >+ an > > >implementation's > > >+ driver to describe the unique features of a platform. > > >+ This protocol is optional. > > >+ > > >+ Copyright (c) 2019, Intel Corporation. All rights reserved. > > >+ This program and the accompanying materials are licensed and made > > >+ available under the terms and conditions of the > > BSD > > >License > > >+ which accompanies this distribution. The full text of the license > > &
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Hi I think this policy protocol should be EDKII specific. Currently it is no in PI spec. Should it be in MdeModulePkg ? Thank you Yao Jiewen > -Original Message- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > Liming Gao > Sent: Monday, July 29, 2019 3:52 PM > To: Javeed, Ashraf ; devel@edk2.groups.io > Cc: Kinney, Michael D ; Ni, Ray > > Subject: Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > Ashraf: > For new files, please use license: SPDX-License-Identifier: > BSD-2-Clause-Patent. > > Other change is good. Reviewed-by: Liming Gao > > Thanks > Liming > >-Original Message- > >From: Javeed, Ashraf > >Sent: Monday, July 29, 2019 2:52 PM > >To: devel@edk2.groups.io > >Cc: Kinney, Michael D ; Gao, Liming > >; Ni, Ray > >Subject: [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: > >New interface, EFI encodings to PCI Plat protocol > > > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > > >New interface added to PCI Platform Protocol / PCI Override Protocol to > >retrieve device-specific platform policy for the following PCI standard > >features, like Maximum Payload Size (MPS), Maximum Read Request Size > >(MRRS),Extended Tags, Relax Order, No-Snoop, Active State Power > >Management > >(ASPM),Latency Time Reporting (LTR), AtomicOp, Reference Clock > >Configuration, Extended SYNCH, PTM support, and Completion Timeout > (CTO). > >New source files added with enhanced definitions are in: > >MdePkg/Include/Protocol/PciPlatform2.h, > >MdePkg/Include/Protocol/PciOverride2.h > > > >Signed-off-by: Ashraf Javeed > >Cc: Michael D Kinney > >Cc: Liming Gao > >Cc: Ray Ni > >--- > > > >In V2: Correction made to header sections of source files > >--- > > MdePkg/Include/Protocol/PciOverride2.h | 43 > >+++ > > MdePkg/Include/Protocol/PciPlatform2.h | 393 > >+++ > >+++ > >+++ > >+++ > >+++ > >+++ > >+++ > > MdePkg/MdePkg.dec | 6 ++ > > 3 files changed, 442 insertions(+) > > > >diff --git a/MdePkg/Include/Protocol/PciOverride2.h > >b/MdePkg/Include/Protocol/PciOverride2.h > >new file mode 100644 > >index 00..a7f541b4c3 > >--- /dev/null > >+++ b/MdePkg/Include/Protocol/PciOverride2.h > >@@ -0,0 +1,43 @@ > >+/** @file > >+ This file declares EFI PCI Override protocol which provides the interface > >between > >+ the PCI bus driver/PCI Host Bridge Resource Allocation driver and an > >implementation's > >+ driver to describe the unique features of a platform. > >+ This protocol is optional. > >+ > >+ Copyright (c) 2019, Intel Corporation. All rights reserved. > >+ This program and the accompanying materials > >+ are licensed and made available under the terms and conditions of the > BSD > >License > >+ which accompanies this distribution. The full text of the license may > be > >found at > >+ http://opensource.org/licenses/bsd-license.php > >+ > >+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS > IS" > >BASIS, > >+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > >EXPRESS OR IMPLIED. > >+ > >+ > >+**/ > >+ > >+#ifndef _PCI_OVERRIDE2_H_ > >+#define _PCI_OVERRIDE2_H_ > >+ > >+/// > >+/// EFI_PCI_OVERRIDE_PROTOCOL has the same structure with > >EFI_PCI_PLATFORM_PROTOCOL > >+/// > >+#include > >+ > >+/// > >+/// Global ID for the EFI_PCI_OVERRIDE_PROTOCOL > >+/// > >+#define EFI_PCI_OVERRIDE2_GUID \ > >+ { \ > >+0xb9d5ea1, 0x66cb, 0x4546, {0xb0, 0xbb, 0x5c, 0x6d, 0xae, 0xd9, > 0x42, 0x47} > >\ > >+ } > >+ > >+/// > >+/// Declaration for EFI_PCI_OVERRIDE_PROTOCOL > >+/// > >+typedef EFI_PCI_PLATFORM_PROTOCOL2 > EFI_PCI_OVERRIDE_PROTOCOL2; > >+ > >+ > >+extern EFI_GUID gEfiPciOverrideProtocol2Guid; > >+ > >+#endif > >diff --git a/MdePkg/Include/Protocol/PciPlatform2.h > >b/MdePkg/Include/Protocol/Pc
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Ashraf: For new files, please use license: SPDX-License-Identifier: BSD-2-Clause-Patent. Other change is good. Reviewed-by: Liming Gao Thanks Liming >-Original Message- >From: Javeed, Ashraf >Sent: Monday, July 29, 2019 2:52 PM >To: devel@edk2.groups.io >Cc: Kinney, Michael D ; Gao, Liming >; Ni, Ray >Subject: [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: >New interface, EFI encodings to PCI Plat protocol > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > >New interface added to PCI Platform Protocol / PCI Override Protocol to >retrieve device-specific platform policy for the following PCI standard >features, like Maximum Payload Size (MPS), Maximum Read Request Size >(MRRS),Extended Tags, Relax Order, No-Snoop, Active State Power >Management >(ASPM),Latency Time Reporting (LTR), AtomicOp, Reference Clock >Configuration, Extended SYNCH, PTM support, and Completion Timeout (CTO). >New source files added with enhanced definitions are in: >MdePkg/Include/Protocol/PciPlatform2.h, >MdePkg/Include/Protocol/PciOverride2.h > >Signed-off-by: Ashraf Javeed >Cc: Michael D Kinney >Cc: Liming Gao >Cc: Ray Ni >--- > >In V2: Correction made to header sections of source files >--- > MdePkg/Include/Protocol/PciOverride2.h | 43 >+++ > MdePkg/Include/Protocol/PciPlatform2.h | 393 >+++ >+++ >+++ >+++ >+++ >+++ >+++ > MdePkg/MdePkg.dec | 6 ++ > 3 files changed, 442 insertions(+) > >diff --git a/MdePkg/Include/Protocol/PciOverride2.h >b/MdePkg/Include/Protocol/PciOverride2.h >new file mode 100644 >index 00..a7f541b4c3 >--- /dev/null >+++ b/MdePkg/Include/Protocol/PciOverride2.h >@@ -0,0 +1,43 @@ >+/** @file >+ This file declares EFI PCI Override protocol which provides the interface >between >+ the PCI bus driver/PCI Host Bridge Resource Allocation driver and an >implementation's >+ driver to describe the unique features of a platform. >+ This protocol is optional. >+ >+ Copyright (c) 2019, Intel Corporation. All rights reserved. >+ This program and the accompanying materials >+ are licensed and made available under the terms and conditions of the BSD >License >+ which accompanies this distribution. The full text of the license may be >found at >+ http://opensource.org/licenses/bsd-license.php >+ >+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+ >+ >+**/ >+ >+#ifndef _PCI_OVERRIDE2_H_ >+#define _PCI_OVERRIDE2_H_ >+ >+/// >+/// EFI_PCI_OVERRIDE_PROTOCOL has the same structure with >EFI_PCI_PLATFORM_PROTOCOL >+/// >+#include >+ >+/// >+/// Global ID for the EFI_PCI_OVERRIDE_PROTOCOL >+/// >+#define EFI_PCI_OVERRIDE2_GUID \ >+ { \ >+0xb9d5ea1, 0x66cb, 0x4546, {0xb0, 0xbb, 0x5c, 0x6d, 0xae, 0xd9, 0x42, >0x47} >\ >+ } >+ >+/// >+/// Declaration for EFI_PCI_OVERRIDE_PROTOCOL >+/// >+typedef EFI_PCI_PLATFORM_PROTOCOL2 EFI_PCI_OVERRIDE_PROTOCOL2; >+ >+ >+extern EFI_GUID gEfiPciOverrideProtocol2Guid; >+ >+#endif >diff --git a/MdePkg/Include/Protocol/PciPlatform2.h >b/MdePkg/Include/Protocol/PciPlatform2.h >new file mode 100644 >index 00..717938e68d >--- /dev/null >+++ b/MdePkg/Include/Protocol/PciPlatform2.h >@@ -0,0 +1,393 @@ >+/** @file >+ This file declares PCI Platform Protocol that provide the interface between >+ the PCI bus driver/PCI Host Bridge Resource Allocation driver and a >platform-specific >+ driver to describe the unique features of a platform. >+ This protocol is optional. >+ >+Copyright (c) 2019, Intel Corporation. All rights reserved. >+This program and the accompanying materials are licensed and made >available under >+the terms and conditions of the BSD License that accompanies this >distribution. >+The full text of the license may be found at >+http://opensource.org/licenses/bsd-license.php. >+ >+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+ >+ >+**/ >+ >+#ifndef _PCI_PLATFORM2_H_ >+#define _PCI_PLATFORM2_H_ >+ >+/// >+/// This file must be included because the EFI_PCI_PLATFORM_PROTOCOL2 >uses >+/// EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE. >+/// >+#include >+ >+/// >+/// Reuse the existing definition to maintain backward compatibility >+/// >+#include >+ >+/// >+/// Global ID for the EFI_PCI_PLATFORM_PROTOCOL2. >+/// >+#define EFI_PCI_PLATFORM_PROTOCOL2_GUID \ >+ { \ >+0x787b0367, 0xa945, 0x4d60, {0x8d, 0x34, 0xb9, 0xd1, 0x88, 0xd2, 0xd0, >0xb6} \ >+ } >+ >+/// >+///
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Remote repository:- https://github.com/ashrafj/edk2-staging This commit:- https://github.com/ashrafj/edk2-staging/commit/be59cc61f29a67d1bc28a768f3673143b02a7a21 Thanks Ashraf > -Original Message- > From: devel@edk2.groups.io On Behalf Of Javeed, > Ashraf > Sent: Monday, July 29, 2019 12:22 PM > To: devel@edk2.groups.io > Cc: Kinney, Michael D ; Gao, Liming > ; Ni, Ray > Subject: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > New interface added to PCI Platform Protocol / PCI Override Protocol to > retrieve device-specific platform policy for the following PCI standard > features, > like Maximum Payload Size (MPS), Maximum Read Request Size > (MRRS),Extended Tags, Relax Order, No-Snoop, Active State Power > Management (ASPM),Latency Time Reporting (LTR), AtomicOp, Reference Clock > Configuration, Extended SYNCH, PTM support, and Completion Timeout (CTO). > New source files added with enhanced definitions are in: > MdePkg/Include/Protocol/PciPlatform2.h, > MdePkg/Include/Protocol/PciOverride2.h > > Signed-off-by: Ashraf Javeed > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Ray Ni > --- > > In V2: Correction made to header sections of source files > --- > MdePkg/Include/Protocol/PciOverride2.h | 43 > +++ > MdePkg/Include/Protocol/PciPlatform2.h | 393 > + > + > + > + > + > + > +++ > MdePkg/MdePkg.dec | 6 ++ > 3 files changed, 442 insertions(+) > > diff --git a/MdePkg/Include/Protocol/PciOverride2.h > b/MdePkg/Include/Protocol/PciOverride2.h > new file mode 100644 > index 00..a7f541b4c3 > --- /dev/null > +++ b/MdePkg/Include/Protocol/PciOverride2.h > @@ -0,0 +1,43 @@ > +/** @file > + This file declares EFI PCI Override protocol which provides the > +interface between > + the PCI bus driver/PCI Host Bridge Resource Allocation driver and an > +implementation's > + driver to describe the unique features of a platform. > + This protocol is optional. > + > + Copyright (c) 2019, Intel Corporation. All rights reserved. This > + program and the accompanying materials are licensed and made > + available under the terms and conditions of the BSD License which > + accompanies this distribution. The full text of the license may be > + found at http://opensource.org/licenses/bsd-license.php > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > + > + > +**/ > + > +#ifndef _PCI_OVERRIDE2_H_ > +#define _PCI_OVERRIDE2_H_ > + > +/// > +/// EFI_PCI_OVERRIDE_PROTOCOL has the same structure with > +EFI_PCI_PLATFORM_PROTOCOL /// #include > + > +/// > +/// Global ID for the EFI_PCI_OVERRIDE_PROTOCOL /// #define > +EFI_PCI_OVERRIDE2_GUID \ > + { \ > +0xb9d5ea1, 0x66cb, 0x4546, {0xb0, 0xbb, 0x5c, 0x6d, 0xae, 0xd9, > +0x42, 0x47} \ > + } > + > +/// > +/// Declaration for EFI_PCI_OVERRIDE_PROTOCOL /// typedef > +EFI_PCI_PLATFORM_PROTOCOL2 EFI_PCI_OVERRIDE_PROTOCOL2; > + > + > +extern EFI_GUID gEfiPciOverrideProtocol2Guid; > + > +#endif > diff --git a/MdePkg/Include/Protocol/PciPlatform2.h > b/MdePkg/Include/Protocol/PciPlatform2.h > new file mode 100644 > index 00..717938e68d > --- /dev/null > +++ b/MdePkg/Include/Protocol/PciPlatform2.h > @@ -0,0 +1,393 @@ > +/** @file > + This file declares PCI Platform Protocol that provide the interface > +between > + the PCI bus driver/PCI Host Bridge Resource Allocation driver and a > +platform-specific > + driver to describe the unique features of a platform. > + This protocol is optional. > + > +Copyright (c) 2019, Intel Corporation. All rights reserved. This > +program and the accompanying materials are licensed and made available > +under the terms and conditions of the BSD License that accompanies this > distribution. > +The full text of the license may be found at > +http://opensource.org/licenses/bsd-license.php. > + > +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. > + > + > +**/ > + > +#ifndef _PCI_PLATFORM2_H_ > +#define _PCI_PLATFORM2_H_ > + > +/// > +/// This file must be included because the EFI_PCI_PLATFORM_PROTOCOL2 > +uses /// EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE. > +/// > +#include > + > +/// > +/// Reuse the existing definition to maintain backward compatibility > +/// #include > + > +/// > +/// Global ID
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
V2 is still full patch. It is not the change delta since the first patch. If this patch pass review, it will push. The final push patch should be same to the reviewed patch. Thanks Liming > -Original Message- > From: Javeed, Ashraf > Sent: Thursday, July 25, 2019 11:42 PM > To: Gao, Liming ; devel@edk2.groups.io > Cc: Kinney, Michael D ; Ni, Ray > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat > protocol > > Liming, > I meant to create only second patch, I just appended the commit message with > the actual changes details from the previous patch. > > > New interface added to PCI Platform Protocol / PCI Override Protocol > > to retrieve device-specific platform policy for the following PCI > > standard features, like Maximum Payload Size (MPS), Maximum Read > > Request Size (MRRS),Extended Tags, Relax Order, No-Snoop, Active State > > Power Management (ASPM),Latency Time Reporting (LTR), AtomicOp, > > Reference Clock Configuration, Extended SYNCH, PTM support, and Completion > > Timeout (CTO). > > New source files added with enhanced definitions are in: > > MdePkg/Include/Protocol/PciPlatform2.h, > > MdePkg/Include/Protocol/PciOverride2.h > > Thanks > Ashraf > > > -Original Message- > > From: Gao, Liming > > Sent: Thursday, July 25, 2019 9:01 PM > > To: devel@edk2.groups.io; Javeed, Ashraf > > Cc: Kinney, Michael D ; Ni, Ray > > > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > Ashraf: > > V2 is the updated full patch, not patch 2. I think you mean to create > > single > > patch to include all changes instead of create two patches. Right? > > > > Thanks > > Liming > > > -Original Message- > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > > > Javeed, Ashraf > > > Sent: Thursday, July 25, 2019 10:45 PM > > > To: devel@edk2.groups.io > > > Cc: Kinney, Michael D ; Gao, Liming > > > ; Ni, Ray > > > Subject: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > > > > > In V2: Correction made to header sections of source files > > > > > > New interface added to PCI Platform Protocol / PCI Override Protocol > > > to retrieve device-specific platform policy for the following PCI > > > standard features, like Maximum Payload Size (MPS), Maximum Read > > > Request Size (MRRS),Extended Tags, Relax Order, No-Snoop, Active State > > > Power Management (ASPM),Latency Time Reporting (LTR), AtomicOp, > > > Reference Clock Configuration, Extended SYNCH, PTM support, and > > Completion Timeout (CTO). > > > New source files added with enhanced definitions are in: > > > MdePkg/Include/Protocol/PciPlatform2.h, > > > MdePkg/Include/Protocol/PciOverride2.h > > > > > > Signed-off-by: Ashraf Javeed > > > Cc: Michael D Kinney > > > Cc: Liming Gao > > > Cc: Ray Ni > > > --- > > > MdePkg/Include/Protocol/PciOverride2.h | 3 --- > > > MdePkg/Include/Protocol/PciPlatform2.h | 5 + > > > 2 files changed, 1 insertion(+), 7 deletions(-) > > > > > > diff --git a/MdePkg/Include/Protocol/PciOverride2.h > > > b/MdePkg/Include/Protocol/PciOverride2.h > > > index cf452d9f8f..a7f541b4c3 100644 > > > --- a/MdePkg/Include/Protocol/PciOverride2.h > > > +++ b/MdePkg/Include/Protocol/PciOverride2.h > > > @@ -13,9 +13,6 @@ > > >THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > > BASIS, > > >WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > > EXPRESS OR IMPLIED. > > > > > > - @par Revision Reference: > > > - This Protocol is defined in UEFI Platform Initialization > > > Specification 1.2 > > > - Volume 5: Standards > > > > > > **/ > > > > > > diff --git a/MdePkg/Include/Protocol/PciPlatform2.h > > > b/MdePkg/Include/Protocol/PciPlatform2.h > > > index 3ff41b7754..717938e68d 100644 > > > --- a/MdePkg/Include/Protocol/PciPlatform2.h > > > +++ b/MdePkg/Include/Protocol/PciPlatform2.h > > > @@ -4,7 +4,7 @@ > > >driver to describe the unique features of a platform. > > >Th
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Liming, I meant to create only second patch, I just appended the commit message with the actual changes details from the previous patch. > New interface added to PCI Platform Protocol / PCI Override Protocol > to retrieve device-specific platform policy for the following PCI > standard features, like Maximum Payload Size (MPS), Maximum Read > Request Size (MRRS),Extended Tags, Relax Order, No-Snoop, Active State > Power Management (ASPM),Latency Time Reporting (LTR), AtomicOp, > Reference Clock Configuration, Extended SYNCH, PTM support, and Completion > Timeout (CTO). > New source files added with enhanced definitions are in: > MdePkg/Include/Protocol/PciPlatform2.h, > MdePkg/Include/Protocol/PciOverride2.h Thanks Ashraf > -Original Message- > From: Gao, Liming > Sent: Thursday, July 25, 2019 9:01 PM > To: devel@edk2.groups.io; Javeed, Ashraf > Cc: Kinney, Michael D ; Ni, Ray > > Subject: RE: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > Ashraf: > V2 is the updated full patch, not patch 2. I think you mean to create single > patch to include all changes instead of create two patches. Right? > > Thanks > Liming > > -Original Message- > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > > Javeed, Ashraf > > Sent: Thursday, July 25, 2019 10:45 PM > > To: devel@edk2.groups.io > > Cc: Kinney, Michael D ; Gao, Liming > > ; Ni, Ray > > Subject: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > > > In V2: Correction made to header sections of source files > > > > New interface added to PCI Platform Protocol / PCI Override Protocol > > to retrieve device-specific platform policy for the following PCI > > standard features, like Maximum Payload Size (MPS), Maximum Read > > Request Size (MRRS),Extended Tags, Relax Order, No-Snoop, Active State > > Power Management (ASPM),Latency Time Reporting (LTR), AtomicOp, > > Reference Clock Configuration, Extended SYNCH, PTM support, and > Completion Timeout (CTO). > > New source files added with enhanced definitions are in: > > MdePkg/Include/Protocol/PciPlatform2.h, > > MdePkg/Include/Protocol/PciOverride2.h > > > > Signed-off-by: Ashraf Javeed > > Cc: Michael D Kinney > > Cc: Liming Gao > > Cc: Ray Ni > > --- > > MdePkg/Include/Protocol/PciOverride2.h | 3 --- > > MdePkg/Include/Protocol/PciPlatform2.h | 5 + > > 2 files changed, 1 insertion(+), 7 deletions(-) > > > > diff --git a/MdePkg/Include/Protocol/PciOverride2.h > > b/MdePkg/Include/Protocol/PciOverride2.h > > index cf452d9f8f..a7f541b4c3 100644 > > --- a/MdePkg/Include/Protocol/PciOverride2.h > > +++ b/MdePkg/Include/Protocol/PciOverride2.h > > @@ -13,9 +13,6 @@ > >THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > >WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > > > > - @par Revision Reference: > > - This Protocol is defined in UEFI Platform Initialization > > Specification 1.2 > > - Volume 5: Standards > > > > **/ > > > > diff --git a/MdePkg/Include/Protocol/PciPlatform2.h > > b/MdePkg/Include/Protocol/PciPlatform2.h > > index 3ff41b7754..717938e68d 100644 > > --- a/MdePkg/Include/Protocol/PciPlatform2.h > > +++ b/MdePkg/Include/Protocol/PciPlatform2.h > > @@ -4,7 +4,7 @@ > >driver to describe the unique features of a platform. > >This protocol is optional. > > > > -Copyright (c) 2007 - 2019, Intel Corporation. All rights > > reserved. > > +Copyright (c) 2019, Intel Corporation. All rights reserved. > > This program and the accompanying materials are licensed and made > > available under the terms and conditions of the BSD License that > > accompanies > this distribution. > > The full text of the license may be found at @@ -13,9 +13,6 @@ > > http://opensource.org/licenses/bsd-license.php. > > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > > > > - @par Revision Reference: > > - This Protocol is defined in UEFI Platform Initialization > > Specification 1.2 > > - Volume 5: Standards > > > > **/ > > > > -- > > 2.21.0.windows.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#44394): https://edk2.groups.io/g/devel/message/44394 Mute This Topic: https://groups.io/mt/32598671/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol
Ashraf: V2 is the updated full patch, not patch 2. I think you mean to create single patch to include all changes instead of create two patches. Right? Thanks Liming > -Original Message- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Javeed, > Ashraf > Sent: Thursday, July 25, 2019 10:45 PM > To: devel@edk2.groups.io > Cc: Kinney, Michael D ; Gao, Liming > ; Ni, Ray > Subject: [edk2-devel] [edk2-staging/UEFI_PCI_ENHANCE-2 PATCH V2] > MdePkg/Protocols: New interface, EFI encodings to PCI Plat protocol > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1954 > > In V2: Correction made to header sections of source files > > New interface added to PCI Platform Protocol / PCI Override Protocol to > retrieve device-specific platform policy for the following PCI standard > features, like Maximum Payload Size (MPS), Maximum Read Request Size > (MRRS),Extended Tags, Relax Order, No-Snoop, Active State Power Management > (ASPM),Latency Time Reporting (LTR), AtomicOp, Reference Clock > Configuration, Extended SYNCH, PTM support, and Completion Timeout (CTO). > New source files added with enhanced definitions are in: > MdePkg/Include/Protocol/PciPlatform2.h, > MdePkg/Include/Protocol/PciOverride2.h > > Signed-off-by: Ashraf Javeed > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Ray Ni > --- > MdePkg/Include/Protocol/PciOverride2.h | 3 --- > MdePkg/Include/Protocol/PciPlatform2.h | 5 + > 2 files changed, 1 insertion(+), 7 deletions(-) > > diff --git a/MdePkg/Include/Protocol/PciOverride2.h > b/MdePkg/Include/Protocol/PciOverride2.h > index cf452d9f8f..a7f541b4c3 100644 > --- a/MdePkg/Include/Protocol/PciOverride2.h > +++ b/MdePkg/Include/Protocol/PciOverride2.h > @@ -13,9 +13,6 @@ >THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > > - @par Revision Reference: > - This Protocol is defined in UEFI Platform Initialization Specification 1.2 > - Volume 5: Standards > > **/ > > diff --git a/MdePkg/Include/Protocol/PciPlatform2.h > b/MdePkg/Include/Protocol/PciPlatform2.h > index 3ff41b7754..717938e68d 100644 > --- a/MdePkg/Include/Protocol/PciPlatform2.h > +++ b/MdePkg/Include/Protocol/PciPlatform2.h > @@ -4,7 +4,7 @@ >driver to describe the unique features of a platform. >This protocol is optional. > > -Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved. > +Copyright (c) 2019, Intel Corporation. All rights reserved. > This program and the accompanying materials are licensed and made available > under > the terms and conditions of the BSD License that accompanies this > distribution. > The full text of the license may be found at > @@ -13,9 +13,6 @@ http://opensource.org/licenses/bsd-license.php. > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > > - @par Revision Reference: > - This Protocol is defined in UEFI Platform Initialization Specification 1.2 > - Volume 5: Standards > > **/ > > -- > 2.21.0.windows.1 > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#44392): https://edk2.groups.io/g/devel/message/44392 Mute This Topic: https://groups.io/mt/32598671/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-