Re: [PATCH v2 2/2] PCI: Rockchip: Add Rockchip PCIe controller support

From: Marc Zyngier
Date: Fri Jun 10 2016 - 03:38:02 EST


On Thu, 9 Jun 2016 21:00:08 -0700
Doug Anderson <dianders@xxxxxxxxxxxx> wrote:

Hi Doug,

> Shawn,
>
> On Wed, Jun 8, 2016 at 1:05 AM, Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> wrote:
> > This patch adds Rockchip PCIe controller support found
> > on RK3399 Soc platform.
> >
> > Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
> >
> > ---
> >
> > Changes in v2:
> > - remove phy related stuff and call phy API
> > - add new head file and define lots of macro to make
> > the code more readable
> > - remove lots msi related code suggested by Marc
> > - add IO window address translation
> > - init_port and parse_dt reconstruction suggested by Bharat
> > - improve wr_own_conf suggested by Arnd
> > - make pcie as an interrupt controller and fix wrong int handler
> > suggested by Marc
> > - remove PCI_PROBE_ONLY suggested by Lorenzo
> >
> > drivers/pci/host/Kconfig | 11 +
> > drivers/pci/host/Makefile | 1 +
> > drivers/pci/host/pcie-rockchip.c | 1049 ++++++++++++++++++++++++++++++++++++++
> > drivers/pci/host/pcie-rockchip.h | 209 ++++++++
> > 4 files changed, 1270 insertions(+)
>
> A few drive-by comments for things I ran into trying to get this
> working. I'm no PCI expert.
>
>
> > +config PCIE_ROCKCHIP
> > + bool "Rockchip PCIe controller"
> > + depends on ARM64 && ARCH_ROCKCHIP
> > + depends on OF
> > + select MFD_SYSCON
> > + select PCI_MSI_IRQ_DOMAIN if PCI_MSI
>
> Probably because I don't know what I'm doing, but when I had PCI_MSI
> configured I had trouble getting interrupts. Figured I'd mention it
> even though it's probably user error.

Could you please elaborate on this? Do you see MSIs being
allocated but not delivered? Or something else?

The reason I'm asking is that it is very easy to end-up with MSIs
issues with the GICv3 ITS if there is *anything* between the RC and the
ITS. Typically, you'd have an SMMU that could potentially remap PCIe
Requested IDs to Device IDs. Short of describing transformations in the
msi-map property, you could end-up with no MSI being delivered.

Please let me know if I can help.

Thanks,

M.
--
Jazz is not dead. It just smells funny.