pcie: Add quirk for the Arm Neoverse N1SDP platform
The Arm N1SDP SoC suffers from some PCIe integration issues, most prominently config space accesses to not existing BDFs being answered with a bus abort, resulting in an SError. To mitigate this, the firmware scans the bus before boot (catching the SErrors) and creates a table with valid BDFs, which acts as a filter for Linux' config space accesses. Add code consulting the table as an ACPI PCIe quirk, also register the corresponding device tree based description of the host controller. Also fix the other two minor issues on the way, namely not being fully ECAM compliant and config space accesses being restricted to 32-bit accesses only. This allows the Arm Neoverse N1SDP board to boot Linux without crashing and to access *any* devices (there are no platform devices except UART). Signed-off-by:Deepak Pandey <Deepak.Pandey@arm.com> [Sudipto: extend to cover the CCIX root port as well] Signed-off-by:
Sudipto Paul <sudipto.paul@arm.com> [Andre: fix coding style issues, rewrite some parts, add DT support] Signed-off-by:
Andre Przywara <andre.przywara@arm.com> Change-Id: I1d3a4b9bf6b3b883d262e3c4ff1f88a0eb81c1fe [rm: hack out problematic SR-IOV check] Signed-off-by:
Robin Murphy <robin.murphy@arm.com>
Loading
Please register or sign in to comment