About configuring the PCIe device MPS
From: Ray Jui
Date: Thu Oct 20 2016 - 18:54:24 EST
Hi Bjorn,
Alex Barba (CCed in the email thread) from Broadcom discovered that PCIe
endpoint devices attached to our ARM64 based iProc platforms are not
configured to their optimal MPS size. Through some digging in the PCIe
stack of the kernel, I found that:
1. For ARM32 based PCIe core code, 'pcie_bus_configure_settings' is
called from 'pci_common_init_dev' before the devices are added to be bus
2. For ARM64 based PCIe core code, 'pcie_bus_configure_settings' is
called similarly in 'pci_acpi_scan_root' for ACPI based ARM64 platform
3. But for ARM64 platforms that have not yet supported ACPI, there does
not appear to be a common place for this configuration. Obviously, we
have the option of calling it in our iProc PCIe host driver (right
before devices are added to the bus). I'd like to check with you if
that's the expected way of handling it. We do see a couple PCIe host
drivers already handle it this way.
Thanks,
Ray