Skip to content
Commit 25653cb9 authored by Deepak Pandey's avatar Deepak Pandey Committed by Robin Murphy
Browse files

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: default avatarDeepak Pandey <Deepak.Pandey@arm.com>
[Sudipto: extend to cover the CCIX root port as well]
Signed-off-by: default avatarSudipto Paul <sudipto.paul@arm.com>
[Andre: fix coding style issues, rewrite some parts, add DT support]
Signed-off-by: Andre Przywara's avatarAndre Przywara <andre.przywara@arm.com>
Change-Id: I1d3a4b9bf6b3b883d262e3c4ff1f88a0eb81c1fe
[rm: hack out problematic SR-IOV check]
Signed-off-by: Robin Murphy's avatarRobin Murphy <robin.murphy@arm.com>
parent 19272b37
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment