Re: [PATCH v2] powerpc: fsl_pci: Add forced PCI Agent enumeration
- Original Message - > From: "Scott Wood" > Sent: Tuesday, August 26, 2014 3:52:56 PM > > On Mon, 2014-08-25 at 18:54 -0500, Aaron Sierra wrote: > > The following commit prevents the MPC8548E on the XPedite5200 PrPMC > > module from enumerating its PCI/PCI-X bus: > > > > powerpc/fsl-pci: use 'Header Type' to identify PCIE mode > > > > The previous patch prevents any Freescale PCI-X bridge from enumerating > > the bus, if it is hardware strapped into Agent mode. > > > > In PCI-X, the Host is responsible for driving the PCI-X initialization > > pattern to devices on the bus, so that they know whether to operate in > > conventional PCI or PCI-X mode as well as what the bus timing will be. > > For a PCI-X PrPMC, the pattern is driven by the mezzanine carrier it is > > installed onto. Therefore, PrPMCs are PCI-X Agents, but one per system > > may still enumerate the bus. > > > > This patch causes the device node of any PCI/PCI-X bridge strapped into > > Agent mode to be checked for the fsl,pci-agent-force-enum property. If > > the property is present in the node, the bridge will be allowed to > > enumerate the bus. > > > > Cc: Minghuan Lian > > Signed-off-by: Aaron Sierra > > --- > > .../bindings/pci/fsl,pci-agent-force-enum.txt | 27 > > ++ > > arch/powerpc/sysdev/fsl_pci.c | 3 ++- > > 2 files changed, 29 insertions(+), 1 deletion(-) > > create mode 100644 > > Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > > > > diff --git > > a/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > > b/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > > new file mode 100644 > > index 000..d8ac4a7 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > > This ought to be part of a general fsl,pci binding, rather than its own > file. Unfortunately there isn't such a binding yet, but let's call this > something like "fsl,pci.txt" anyway so that there's a place to add the > rest of the binding to. Ok, no problem. > Also, CC devicet...@vger.kernel.org on all device tree patches. Will do. > Otherwise it looks OK. > > -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH v2] powerpc: fsl_pci: Add forced PCI Agent enumeration
On Mon, 2014-08-25 at 18:54 -0500, Aaron Sierra wrote: > The following commit prevents the MPC8548E on the XPedite5200 PrPMC > module from enumerating its PCI/PCI-X bus: > > powerpc/fsl-pci: use 'Header Type' to identify PCIE mode > > The previous patch prevents any Freescale PCI-X bridge from enumerating > the bus, if it is hardware strapped into Agent mode. > > In PCI-X, the Host is responsible for driving the PCI-X initialization > pattern to devices on the bus, so that they know whether to operate in > conventional PCI or PCI-X mode as well as what the bus timing will be. > For a PCI-X PrPMC, the pattern is driven by the mezzanine carrier it is > installed onto. Therefore, PrPMCs are PCI-X Agents, but one per system > may still enumerate the bus. > > This patch causes the device node of any PCI/PCI-X bridge strapped into > Agent mode to be checked for the fsl,pci-agent-force-enum property. If > the property is present in the node, the bridge will be allowed to > enumerate the bus. > > Cc: Minghuan Lian > Signed-off-by: Aaron Sierra > --- > .../bindings/pci/fsl,pci-agent-force-enum.txt | 27 > ++ > arch/powerpc/sysdev/fsl_pci.c | 3 ++- > 2 files changed, 29 insertions(+), 1 deletion(-) > create mode 100644 > Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > > diff --git > a/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > b/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt > new file mode 100644 > index 000..d8ac4a7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt This ought to be part of a general fsl,pci binding, rather than its own file. Unfortunately there isn't such a binding yet, but let's call this something like "fsl,pci.txt" anyway so that there's a place to add the rest of the binding to. Also, CC devicet...@vger.kernel.org on all device tree patches. Otherwise it looks OK. -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH v2] powerpc: fsl_pci: Add forced PCI Agent enumeration
The following commit prevents the MPC8548E on the XPedite5200 PrPMC module from enumerating its PCI/PCI-X bus: powerpc/fsl-pci: use 'Header Type' to identify PCIE mode The previous patch prevents any Freescale PCI-X bridge from enumerating the bus, if it is hardware strapped into Agent mode. In PCI-X, the Host is responsible for driving the PCI-X initialization pattern to devices on the bus, so that they know whether to operate in conventional PCI or PCI-X mode as well as what the bus timing will be. For a PCI-X PrPMC, the pattern is driven by the mezzanine carrier it is installed onto. Therefore, PrPMCs are PCI-X Agents, but one per system may still enumerate the bus. This patch causes the device node of any PCI/PCI-X bridge strapped into Agent mode to be checked for the fsl,pci-agent-force-enum property. If the property is present in the node, the bridge will be allowed to enumerate the bus. Cc: Minghuan Lian Signed-off-by: Aaron Sierra --- .../bindings/pci/fsl,pci-agent-force-enum.txt | 27 ++ arch/powerpc/sysdev/fsl_pci.c | 3 ++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt diff --git a/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt b/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt new file mode 100644 index 000..d8ac4a7 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/fsl,pci-agent-force-enum.txt @@ -0,0 +1,27 @@ +* Bus Enumeration by Freescale PCI-X Agent + +Typically any Freescale PCI-X bridge hardware strapped into Agent mode +is prevented from enumerating the bus. The PrPMC form-factor requires +all mezzanines to be PCI-X Agents, but one per system may still +enumerate the bus. + +The property defined below will allow a PCI-X bridge to be used for bus +enumeration despite being strapped into Agent mode. + +Required properties: +- fsl,pci-agent-force-enum : There is no value associated with this + property. The property itself is treated as a boolean. + +Example: + + /* PCI-X bridge known to be PrPMC Monarch */ + pci0: pci@ef008000 { + fsl,pci-agent-force-enum; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; + device_type = "pci"; + ... + ... + }; diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 4bd091a..d13663f 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -522,7 +522,8 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary) } else { /* For PCI read PROG to identify controller mode */ early_read_config_byte(hose, 0, 0, PCI_CLASS_PROG, &progif); - if ((progif & 1) == 1) + if ((progif & 1) && + !of_property_read_bool(dev, "fsl,pci-agent-force-enum")) goto no_bridge; } -- 1.9.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev