mbox series

[v6,0/7] Add SR-IOV support in PCIe Endpoint Core

Message ID 20210517074723.10212-1-kishon@ti.com (mailing list archive)
Headers show
Series Add SR-IOV support in PCIe Endpoint Core | expand

Message

Kishon Vijay Abraham I May 17, 2021, 7:47 a.m. UTC
Patch series
*) Adds support to add virtual functions to enable endpoint controller
   which supports SR-IOV capability
*) Add support in Cadence endpoint driver to configure virtual functions
*) Enable pci_endpoint_test driver to create pci_device for virtual
   functions

v1 of the patch series can be found at [1]
v2 of the patch series can be found at [2]
v3 of the patch series can be found at [3]
v4 of the patch series can be found at [4]
v5 of the patch series can be found at [5]

Here both physical functions and virtual functions use the same
pci_endpoint_test driver and existing pcitest utility can be used
to test virtual functions as well.

Changes from v5:
*) Rebased to 5.13-rc1

Changes from v4:
*) Added a fix in Cadence driver which was overwriting BAR configuration
   of physical function.
*) Didn't include Tom's Acked-by since Cadence driver is modified in
   this revision.

Changes from v3:
*) Fixed Rob's comment and added his Reviewed-by as suggested by him.

Changes from v2:
*) Fixed DT binding documentation comment by Rob
*) Fixed the error check in pci-epc-core.c

Changes from v1:
*) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
   binding for EP)

[1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
[2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
[3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
[4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
[5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com

Kishon Vijay Abraham I (7):
  dt-bindings: PCI: pci-ep: Add binding to specify virtual function
  PCI: endpoint: Add support to add virtual function in endpoint core
  PCI: endpoint: Add support to link a physical function to a virtual
    function
  PCI: endpoint: Add virtual function number in pci_epc ops
  PCI: cadence: Add support to configure virtual functions
  misc: pci_endpoint_test: Populate sriov_configure ops to configure
    SR-IOV device
  Documentation: PCI: endpoint/pci-endpoint-cfs: Guide to use SR-IOV

 .../PCI/endpoint/pci-endpoint-cfs.rst         |  12 +-
 .../devicetree/bindings/pci/pci-ep.yaml       |   7 +
 drivers/misc/pci_endpoint_test.c              |   1 +
 .../pci/controller/cadence/pcie-cadence-ep.c  | 285 ++++++++++++++----
 drivers/pci/controller/cadence/pcie-cadence.h |   7 +
 .../pci/controller/dwc/pcie-designware-ep.c   |  36 +--
 drivers/pci/controller/pcie-rcar-ep.c         |  19 +-
 drivers/pci/controller/pcie-rockchip-ep.c     |  18 +-
 drivers/pci/endpoint/functions/pci-epf-ntb.c  |  79 +++--
 drivers/pci/endpoint/functions/pci-epf-test.c |  66 ++--
 drivers/pci/endpoint/pci-ep-cfs.c             |  24 ++
 drivers/pci/endpoint/pci-epc-core.c           | 130 +++++---
 drivers/pci/endpoint/pci-epf-core.c           | 144 ++++++++-
 include/linux/pci-epc.h                       |  57 ++--
 include/linux/pci-epf.h                       |  16 +-
 15 files changed, 684 insertions(+), 217 deletions(-)

Comments

Kishon Vijay Abraham I May 26, 2021, 12:34 p.m. UTC | #1
Hi All,

On 17/05/21 1:17 pm, Kishon Vijay Abraham I wrote:
> Patch series
> *) Adds support to add virtual functions to enable endpoint controller
>    which supports SR-IOV capability
> *) Add support in Cadence endpoint driver to configure virtual functions
> *) Enable pci_endpoint_test driver to create pci_device for virtual
>    functions
> 
> v1 of the patch series can be found at [1]
> v2 of the patch series can be found at [2]
> v3 of the patch series can be found at [3]
> v4 of the patch series can be found at [4]
> v5 of the patch series can be found at [5]
> 
> Here both physical functions and virtual functions use the same
> pci_endpoint_test driver and existing pcitest utility can be used
> to test virtual functions as well.

I request to help test this series in your platform either with SR-IOV
capability or without SR-IOV capability to make sure there are no
regressions.

Thanks in advance for the help!

Best Regards
Kishon

> 
> Changes from v5:
> *) Rebased to 5.13-rc1
> 
> Changes from v4:
> *) Added a fix in Cadence driver which was overwriting BAR configuration
>    of physical function.
> *) Didn't include Tom's Acked-by since Cadence driver is modified in
>    this revision.
> 
> Changes from v3:
> *) Fixed Rob's comment and added his Reviewed-by as suggested by him.
> 
> Changes from v2:
> *) Fixed DT binding documentation comment by Rob
> *) Fixed the error check in pci-epc-core.c
> 
> Changes from v1:
> *) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
>    binding for EP)
> 
> [1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
> [2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
> [3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
> [4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
> [5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com
> 
> Kishon Vijay Abraham I (7):
>   dt-bindings: PCI: pci-ep: Add binding to specify virtual function
>   PCI: endpoint: Add support to add virtual function in endpoint core
>   PCI: endpoint: Add support to link a physical function to a virtual
>     function
>   PCI: endpoint: Add virtual function number in pci_epc ops
>   PCI: cadence: Add support to configure virtual functions
>   misc: pci_endpoint_test: Populate sriov_configure ops to configure
>     SR-IOV device
>   Documentation: PCI: endpoint/pci-endpoint-cfs: Guide to use SR-IOV
> 
>  .../PCI/endpoint/pci-endpoint-cfs.rst         |  12 +-
>  .../devicetree/bindings/pci/pci-ep.yaml       |   7 +
>  drivers/misc/pci_endpoint_test.c              |   1 +
>  .../pci/controller/cadence/pcie-cadence-ep.c  | 285 ++++++++++++++----
>  drivers/pci/controller/cadence/pcie-cadence.h |   7 +
>  .../pci/controller/dwc/pcie-designware-ep.c   |  36 +--
>  drivers/pci/controller/pcie-rcar-ep.c         |  19 +-
>  drivers/pci/controller/pcie-rockchip-ep.c     |  18 +-
>  drivers/pci/endpoint/functions/pci-epf-ntb.c  |  79 +++--
>  drivers/pci/endpoint/functions/pci-epf-test.c |  66 ++--
>  drivers/pci/endpoint/pci-ep-cfs.c             |  24 ++
>  drivers/pci/endpoint/pci-epc-core.c           | 130 +++++---
>  drivers/pci/endpoint/pci-epf-core.c           | 144 ++++++++-
>  include/linux/pci-epc.h                       |  57 ++--
>  include/linux/pci-epf.h                       |  16 +-
>  15 files changed, 684 insertions(+), 217 deletions(-)
>
Kishon Vijay Abraham I June 16, 2021, 2:05 p.m. UTC | #2
Hi Lorenzo, Bjorn,

On 17/05/21 1:17 pm, Kishon Vijay Abraham I wrote:
> Patch series
> *) Adds support to add virtual functions to enable endpoint controller
>    which supports SR-IOV capability
> *) Add support in Cadence endpoint driver to configure virtual functions
> *) Enable pci_endpoint_test driver to create pci_device for virtual
>    functions
> 
> v1 of the patch series can be found at [1]
> v2 of the patch series can be found at [2]
> v3 of the patch series can be found at [3]
> v4 of the patch series can be found at [4]
> v5 of the patch series can be found at [5]
> 
> Here both physical functions and virtual functions use the same
> pci_endpoint_test driver and existing pcitest utility can be used
> to test virtual functions as well.
> 
> Changes from v5:
> *) Rebased to 5.13-rc1
> 
> Changes from v4:
> *) Added a fix in Cadence driver which was overwriting BAR configuration
>    of physical function.
> *) Didn't include Tom's Acked-by since Cadence driver is modified in
>    this revision.
> 
> Changes from v3:
> *) Fixed Rob's comment and added his Reviewed-by as suggested by him.
> 
> Changes from v2:
> *) Fixed DT binding documentation comment by Rob
> *) Fixed the error check in pci-epc-core.c
> 
> Changes from v1:
> *) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
>    binding for EP)
> 
> [1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
> [2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
> [3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
> [4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
> [5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com

Can this series be merged for 5.14? It already includes Ack from Rob for
dt-binding changes and Ack from Tom for Cadence driver changes.

Thanks
Kishon
Bjorn Helgaas June 16, 2021, 9:16 p.m. UTC | #3
On Wed, Jun 16, 2021 at 07:35:33PM +0530, Kishon Vijay Abraham I wrote:
> Hi Lorenzo, Bjorn,
> 
> On 17/05/21 1:17 pm, Kishon Vijay Abraham I wrote:
> > Patch series
> > *) Adds support to add virtual functions to enable endpoint controller
> >    which supports SR-IOV capability
> > *) Add support in Cadence endpoint driver to configure virtual functions
> > *) Enable pci_endpoint_test driver to create pci_device for virtual
> >    functions
> > 
> > v1 of the patch series can be found at [1]
> > v2 of the patch series can be found at [2]
> > v3 of the patch series can be found at [3]
> > v4 of the patch series can be found at [4]
> > v5 of the patch series can be found at [5]
> > 
> > Here both physical functions and virtual functions use the same
> > pci_endpoint_test driver and existing pcitest utility can be used
> > to test virtual functions as well.
> > 
> > Changes from v5:
> > *) Rebased to 5.13-rc1
> > 
> > Changes from v4:
> > *) Added a fix in Cadence driver which was overwriting BAR configuration
> >    of physical function.
> > *) Didn't include Tom's Acked-by since Cadence driver is modified in
> >    this revision.
> > 
> > Changes from v3:
> > *) Fixed Rob's comment and added his Reviewed-by as suggested by him.
> > 
> > Changes from v2:
> > *) Fixed DT binding documentation comment by Rob
> > *) Fixed the error check in pci-epc-core.c
> > 
> > Changes from v1:
> > *) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
> >    binding for EP)
> > 
> > [1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
> > [2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
> > [3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
> > [4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
> > [5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com
> 
> Can this series be merged for 5.14? It already includes Ack from Rob for
> dt-binding changes and Ack from Tom for Cadence driver changes.

Sorry, I think this was assigned to me in patchwork, but Lorenzo
usually takes care of the endpoint stuff.  He's away this week, but no
doubt will look at it when he returns.

Bjorn
Kishon Vijay Abraham I June 24, 2021, 3 p.m. UTC | #4
Hi Lorenzo,

On 17/06/21 2:46 am, Bjorn Helgaas wrote:
> On Wed, Jun 16, 2021 at 07:35:33PM +0530, Kishon Vijay Abraham I wrote:
>> Hi Lorenzo, Bjorn,
>>
>> On 17/05/21 1:17 pm, Kishon Vijay Abraham I wrote:
>>> Patch series
>>> *) Adds support to add virtual functions to enable endpoint controller
>>>    which supports SR-IOV capability
>>> *) Add support in Cadence endpoint driver to configure virtual functions
>>> *) Enable pci_endpoint_test driver to create pci_device for virtual
>>>    functions
>>>
>>> v1 of the patch series can be found at [1]
>>> v2 of the patch series can be found at [2]
>>> v3 of the patch series can be found at [3]
>>> v4 of the patch series can be found at [4]
>>> v5 of the patch series can be found at [5]
>>>
>>> Here both physical functions and virtual functions use the same
>>> pci_endpoint_test driver and existing pcitest utility can be used
>>> to test virtual functions as well.
>>>
>>> Changes from v5:
>>> *) Rebased to 5.13-rc1
>>>
>>> Changes from v4:
>>> *) Added a fix in Cadence driver which was overwriting BAR configuration
>>>    of physical function.
>>> *) Didn't include Tom's Acked-by since Cadence driver is modified in
>>>    this revision.
>>>
>>> Changes from v3:
>>> *) Fixed Rob's comment and added his Reviewed-by as suggested by him.
>>>
>>> Changes from v2:
>>> *) Fixed DT binding documentation comment by Rob
>>> *) Fixed the error check in pci-epc-core.c
>>>
>>> Changes from v1:
>>> *) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
>>>    binding for EP)
>>>
>>> [1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
>>> [2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
>>> [3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
>>> [4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
>>> [5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com
>>
>> Can this series be merged for 5.14? It already includes Ack from Rob for
>> dt-binding changes and Ack from Tom for Cadence driver changes.
> 
> Sorry, I think this was assigned to me in patchwork, but Lorenzo
> usually takes care of the endpoint stuff.  He's away this week, but no
> doubt will look at it when he returns.

Can you consider merging this series for 5.14?

Thank You,
Kishon
Lorenzo Pieralisi June 25, 2021, 4:15 p.m. UTC | #5
On Thu, Jun 24, 2021 at 08:30:09PM +0530, Kishon Vijay Abraham I wrote:
> Hi Lorenzo,
> 
> On 17/06/21 2:46 am, Bjorn Helgaas wrote:
> > On Wed, Jun 16, 2021 at 07:35:33PM +0530, Kishon Vijay Abraham I wrote:
> >> Hi Lorenzo, Bjorn,
> >>
> >> On 17/05/21 1:17 pm, Kishon Vijay Abraham I wrote:
> >>> Patch series
> >>> *) Adds support to add virtual functions to enable endpoint controller
> >>>    which supports SR-IOV capability
> >>> *) Add support in Cadence endpoint driver to configure virtual functions
> >>> *) Enable pci_endpoint_test driver to create pci_device for virtual
> >>>    functions
> >>>
> >>> v1 of the patch series can be found at [1]
> >>> v2 of the patch series can be found at [2]
> >>> v3 of the patch series can be found at [3]
> >>> v4 of the patch series can be found at [4]
> >>> v5 of the patch series can be found at [5]
> >>>
> >>> Here both physical functions and virtual functions use the same
> >>> pci_endpoint_test driver and existing pcitest utility can be used
> >>> to test virtual functions as well.
> >>>
> >>> Changes from v5:
> >>> *) Rebased to 5.13-rc1
> >>>
> >>> Changes from v4:
> >>> *) Added a fix in Cadence driver which was overwriting BAR configuration
> >>>    of physical function.
> >>> *) Didn't include Tom's Acked-by since Cadence driver is modified in
> >>>    this revision.
> >>>
> >>> Changes from v3:
> >>> *) Fixed Rob's comment and added his Reviewed-by as suggested by him.
> >>>
> >>> Changes from v2:
> >>> *) Fixed DT binding documentation comment by Rob
> >>> *) Fixed the error check in pci-epc-core.c
> >>>
> >>> Changes from v1:
> >>> *) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
> >>>    binding for EP)
> >>>
> >>> [1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
> >>> [2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
> >>> [3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
> >>> [4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
> >>> [5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com
> >>
> >> Can this series be merged for 5.14? It already includes Ack from Rob for
> >> dt-binding changes and Ack from Tom for Cadence driver changes.
> > 
> > Sorry, I think this was assigned to me in patchwork, but Lorenzo
> > usually takes care of the endpoint stuff.  He's away this week, but no
> > doubt will look at it when he returns.
> 
> Can you consider merging this series for 5.14?

I am running late this cycle on reviews and the merge window is about
to open, I will review it and queue it first thing for the next cycle.

Apologies.

Lorenzo
Kishon Vijay Abraham I June 28, 2021, 4:09 a.m. UTC | #6
Hi Lorenzo,

On 25/06/21 9:45 pm, Lorenzo Pieralisi wrote:
> On Thu, Jun 24, 2021 at 08:30:09PM +0530, Kishon Vijay Abraham I wrote:
>> Hi Lorenzo,
>>
>> On 17/06/21 2:46 am, Bjorn Helgaas wrote:
>>> On Wed, Jun 16, 2021 at 07:35:33PM +0530, Kishon Vijay Abraham I wrote:
>>>> Hi Lorenzo, Bjorn,
>>>>
>>>> On 17/05/21 1:17 pm, Kishon Vijay Abraham I wrote:
>>>>> Patch series
>>>>> *) Adds support to add virtual functions to enable endpoint controller
>>>>>    which supports SR-IOV capability
>>>>> *) Add support in Cadence endpoint driver to configure virtual functions
>>>>> *) Enable pci_endpoint_test driver to create pci_device for virtual
>>>>>    functions
>>>>>
>>>>> v1 of the patch series can be found at [1]
>>>>> v2 of the patch series can be found at [2]
>>>>> v3 of the patch series can be found at [3]
>>>>> v4 of the patch series can be found at [4]
>>>>> v5 of the patch series can be found at [5]
>>>>>
>>>>> Here both physical functions and virtual functions use the same
>>>>> pci_endpoint_test driver and existing pcitest utility can be used
>>>>> to test virtual functions as well.
>>>>>
>>>>> Changes from v5:
>>>>> *) Rebased to 5.13-rc1
>>>>>
>>>>> Changes from v4:
>>>>> *) Added a fix in Cadence driver which was overwriting BAR configuration
>>>>>    of physical function.
>>>>> *) Didn't include Tom's Acked-by since Cadence driver is modified in
>>>>>    this revision.
>>>>>
>>>>> Changes from v3:
>>>>> *) Fixed Rob's comment and added his Reviewed-by as suggested by him.
>>>>>
>>>>> Changes from v2:
>>>>> *) Fixed DT binding documentation comment by Rob
>>>>> *) Fixed the error check in pci-epc-core.c
>>>>>
>>>>> Changes from v1:
>>>>> *) Re-based and Re-worked to latest kernel 5.10.0-rc2+ (now has generic
>>>>>    binding for EP)
>>>>>
>>>>> [1] -> http://lore.kernel.org/r/20191231113534.30405-1-kishon@ti.com
>>>>> [2] -> http://lore.kernel.org/r/20201112175358.2653-1-kishon@ti.com
>>>>> [3] -> https://lore.kernel.org/r/20210305050410.9201-1-kishon@ti.com
>>>>> [4] -> http://lore.kernel.org/r/20210310160943.7606-1-kishon@ti.com
>>>>> [5] -> https://lore.kernel.org/r/20210419083401.31628-1-kishon@ti.com
>>>>
>>>> Can this series be merged for 5.14? It already includes Ack from Rob for
>>>> dt-binding changes and Ack from Tom for Cadence driver changes.
>>>
>>> Sorry, I think this was assigned to me in patchwork, but Lorenzo
>>> usually takes care of the endpoint stuff.  He's away this week, but no
>>> doubt will look at it when he returns.
>>
>> Can you consider merging this series for 5.14?
> 
> I am running late this cycle on reviews and the merge window is about
> to open, I will review it and queue it first thing for the next cycle.

Sure, thanks!

Best Regards,
Kishon