mbox series

[v3,0/2] pci: add support for firmware initialized designware RCs

Message ID 20170828180437.2646-1-ard.biesheuvel@linaro.org
Headers show
Series pci: add support for firmware initialized designware RCs | expand

Message

Ard Biesheuvel Aug. 28, 2017, 6:04 p.m. UTC
UEFI based systems incorporating a Synopsys Designware PCIe controller
in RC mode will typically configure it before entering the OS. If this
configuration is fully static and ECAM compliant, there is no need to
expose particulars of the device to the OS, and we can simply describe
it as "pci-host-ecam-generic".

However, the Synopsys IP may be synthesized in a way where a quirk is
needed for config space accesses to the first bus. It makes little sense
to instantiate yet another pcie-designware driver that contains all the
low level setup code, but it is also not justified to add quirks handling
to the generic ECAM driver.

So instead, create a variant of the generic ECAM driver that filters config
space accesses directed at device #1 and up on the first bus.

v3: - use SoC specific compatible strings
    - drop MSI patch [for now], since it turns out we may not need it

v2: - use dev->fwnode directly
    - replace an instance of pr_err with dev_err, and clarify the error message
    - fix Kconfig/Makefile dependency errors reported by kbuild

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Graeme Gregory <graeme.gregory@linaro.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Joao Pinto <Joao.Pinto@synopsys.com>
Cc: Rob Herring <robh@kernel.org>

Ard Biesheuvel (2):
  pci: designware: add driver for DWC controller in ECAM shift mode
  dt-bindings: designware: add binding for Designware PCIe in ECAM mode

 Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt | 42 +++++++++++
 drivers/pci/dwc/Kconfig                                        | 11 +++
 drivers/pci/dwc/Makefile                                       |  1 +
 drivers/pci/dwc/pcie-designware-ecam.c                         | 77 ++++++++++++++++++++
 4 files changed, 131 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt
 create mode 100644 drivers/pci/dwc/pcie-designware-ecam.c

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Marcin Wojtas Aug. 29, 2017, 3:40 p.m. UTC | #1
Hi Ard,

It works on Armada 8040 MacchiatoBin board with e1000 card. You can add my:

Tested-by: Marcin Wojtas <mw@semihalf.com>


Best regards,
Marcin

2017-08-28 20:04 GMT+02:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>:
> UEFI based systems incorporating a Synopsys Designware PCIe controller

> in RC mode will typically configure it before entering the OS. If this

> configuration is fully static and ECAM compliant, there is no need to

> expose particulars of the device to the OS, and we can simply describe

> it as "pci-host-ecam-generic".

>

> However, the Synopsys IP may be synthesized in a way where a quirk is

> needed for config space accesses to the first bus. It makes little sense

> to instantiate yet another pcie-designware driver that contains all the

> low level setup code, but it is also not justified to add quirks handling

> to the generic ECAM driver.

>

> So instead, create a variant of the generic ECAM driver that filters config

> space accesses directed at device #1 and up on the first bus.

>

> v3: - use SoC specific compatible strings

>     - drop MSI patch [for now], since it turns out we may not need it

>

> v2: - use dev->fwnode directly

>     - replace an instance of pr_err with dev_err, and clarify the error message

>     - fix Kconfig/Makefile dependency errors reported by kbuild

>

> Cc: Leif Lindholm <leif.lindholm@linaro.org>

> Cc: Graeme Gregory <graeme.gregory@linaro.org>

> Cc: Bjorn Helgaas <bhelgaas@google.com>

> Cc: Jingoo Han <jingoohan1@gmail.com>

> Cc: Joao Pinto <Joao.Pinto@synopsys.com>

> Cc: Rob Herring <robh@kernel.org>

>

> Ard Biesheuvel (2):

>   pci: designware: add driver for DWC controller in ECAM shift mode

>   dt-bindings: designware: add binding for Designware PCIe in ECAM mode

>

>  Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt | 42 +++++++++++

>  drivers/pci/dwc/Kconfig                                        | 11 +++

>  drivers/pci/dwc/Makefile                                       |  1 +

>  drivers/pci/dwc/pcie-designware-ecam.c                         | 77 ++++++++++++++++++++

>  4 files changed, 131 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt

>  create mode 100644 drivers/pci/dwc/pcie-designware-ecam.c

>

> --

> 2.11.0

>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html