Re: [PATCH v3 4/7] PCI: brcmstb: add Broadcom STB PCIe host controller driver
From: Nicolas Saenz Julienne <hidden>
Date: 2019-12-03 17:23:09
Also in:
linux-pci, lkml
On Tue, 2019-12-03 at 10:31 -0600, Jeremy Linton wrote:
Hi, On 11/26/19 3:19 AM, Nicolas Saenz Julienne wrote:quoted
From: Jim Quinlan <redacted> 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 <redacted> Co-developed-by: Nicolas Saenz Julienne <redacted> Signed-off-by: Nicolas Saenz Julienne <redacted> --- 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 replyI 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 <redacted>
Thanks! Regards, Nicolas