Re: [PATCH v3 4/7] PCI: brcmstb: add Broadcom STB PCIe host controller driver

From: Nicolas Saenz Julienne
Date: Tue Dec 03 2019 - 12:23:09 EST


On Tue, 2019-12-03 at 10:31 -0600, Jeremy Linton wrote:
> Hi,
>
> On 11/26/19 3:19 AM, Nicolas Saenz Julienne wrote:
> > From: Jim Quinlan <james.quinlan@xxxxxxxxxxxx>
> >
> > This adds a basic driver for Broadcom's STB PCIe controller, for now
> > aimed at Raspberry Pi 4's SoC, bcm2711.
> >
> > Signed-off-by: Jim Quinlan <james.quinlan@xxxxxxxxxxxx>
> > Co-developed-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>
> > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>
> >
> > ---
> >
> > Changes since v2:
> > - Correct rc_bar2_offset sign
> > - Invert IRQ clear and masking in setup code
> > - Use bitfield.h, redo all register ops while keeping the register
> > names intact
> > - Remove all SHIFT register definitions
> > - Get rid of all _RB writes
> > - Get rid of of_data
> > - Don't iterate over inexisting dma-ranges
> > - Add comment regarding dma-ranges validation
> > - Small cosmetic cleanups
> > - Fix license mismatch
> > - Set driver Kconfig tristate
> > - Didn't add any comment about the controller not being I/O coherent
> > for now as I wait for Jeremy's reply
>
> I guess its fine.. In answer to the original query. It seems that this
> PCIe bridge requires explicit cache operations for DMA from PCIe
> endpoints. This wasn't obvious to me at first reading because I was
> assuming the custom DMA ops were strictly to deal with the stated DMA
> limits.

Thanks, I now see what you meant.

> So if you end up respinning, it still might be worthy mentioning
> somewhere that this is a non-coherent PCIe implementation. I still hold
> much of my original reservations about pieces of this driver.
> Particularly, how it might look if someone wanted to boot the RPi using
> ACPI on linux. But, I was shown a clever bit of AML recently, which
> solves those problems for the RPi and the attached XHCI.

I don't know much about ACPI, but ultimately if you're booting trough ACPI,
you're unlikely to use device-tree at all, right? And if you where and this
driver clashed with your ACPI implementation you'd simply have to disable it on
the device-tree.

> So, given how much time I've looked at the root port configuration/etc
> sections of this driver and I've not found a serious bug:
>
> Reviewed-by: Jeremy Linton <jeremy.linton@xxxxxxx>

Thanks!

Regards,
Nicolas

Attachment: signature.asc
Description: This is a digitally signed message part