[PATCH 3/3] powerpc/pseries: Fixup config space size of OpenCAPI devices
Greg Kurz
groug at kaod.org
Sun Nov 10 00:07:35 AEDT 2019
On Thu, 7 Nov 2019 09:46:25 +0100
christophe lombard <clombard at linux.vnet.ibm.com> wrote:
> On 05/11/2019 06:01, Andrew Donnellan wrote:
> > On 22/10/19 6:52 pm, christophe lombard wrote:
> >> Fix up the pci config size of the OpenCAPI PCIe devices in the pseries
> >> environment.
> >> Most of OpenCAPI PCIe devices have 4096 bytes of configuration space.
> >
> > It's not "most of", it's "all" - the OpenCAPI Discovery and
> > Configuration Spec requires the use of extended capabilities that fall
> > in the 0x100-0xFFF range.
> >
> >>
> >> Signed-off-by: Christophe Lombard <clombard at linux.vnet.ibm.com>
> >> ---
> >> arch/powerpc/platforms/pseries/pci.c | 9 +++++++++
> >> 1 file changed, 9 insertions(+)
> >>
> >> diff --git a/arch/powerpc/platforms/pseries/pci.c
> >> b/arch/powerpc/platforms/pseries/pci.c
> >> index 1eae1d09980c..3397784767b0 100644
> >> --- a/arch/powerpc/platforms/pseries/pci.c
> >> +++ b/arch/powerpc/platforms/pseries/pci.c
> >> @@ -291,6 +291,15 @@ static void fixup_winbond_82c105(struct pci_dev*
> >> dev)
> >> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND,
> >> PCI_DEVICE_ID_WINBOND_82C105,
> >> fixup_winbond_82c105);
> >> +static void fixup_opencapi_cfg_size(struct pci_dev *pdev)
> >> +{
> >> + if (!machine_is(pseries))
> >> + return;
> >> +
> >> + pdev->cfg_size = PCI_CFG_SPACE_EXP_SIZE;
> >> +}
> >> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IBM, 0x062b,
> >> fixup_opencapi_cfg_size);
> >
> > An OpenCAPI device can have any PCI ID, is there a particular reason
> > we're limiting this to 1014:062b? On PowerNV, we check the PHB type to
> > determine whether the device is OpenCAPI or not, what's the equivalent
> > for pseries?
> >
>
> Thanks for the review. For pseries, there is no specific OpenCapi PHB
> type which constraints this kind of request.
> We are working to found an other solution.
>
Well... we have an old PAPR+ addendum draft that mentions an "open-capi"
PHB type. The specification was never finalized and AFAIK PowerVM doesn't
support the OpenCAPI interface, so we didn't stick to the addendum during
our in-house prototyping. But now that we want to upstream things, I think
we should probably come up with a dedicated PHB type.
> >> +
> >> int pseries_root_bridge_prepare(struct pci_host_bridge *bridge)
> >> {
> >> struct device_node *dn, *pdn;
> >>
> >
>
More information about the Linuxppc-dev
mailing list