On 06.04.20 19:12, Soeren Moch wrote:
On 06.04.20 14:52, Robin Murphy wrote:Unfortunately it seems to be not that easy. Only when PCIe device
On 2020-04-04 7:41 pm, Soeren Moch wrote:Thanks Robin!
I want to use a PCIe switch on a RK3399 based RockPro64 V2.1 board.See the thread here:
"Normal" PCIe cards work (mostly) just fine on this board. The PCIe
switches (I tried Pericom and ASMedia based switches) also work fine on
other boards. The RK3399 PCIe controller with pcie_rockchip_host driver
also recognises the switch, but fails to initialize the buses behind the
bridge properly, see syslog from linux-5.6.0.
Any ideas what I do wrong, or any suggestions what I can test here?
https://lore.kernel.org/linux-pci/CAMdYzYoTwjKz4EN8PtD5pZfu3+SX+68JL+dfvmCrSnLL=K6Few@xxxxxxxxxxxxxx/
I also found out in the meantime that device enumeration fails in this
fatal way when probing non-existent devices. So if I hack my complete
bus topology into rockchip_pcie_valid_device, then all existing devices
come up properly. Of course this is not how PCIe should work.
The conclusion there seems to be that the RK3399 root complex justHm, at least there is the promising suggestion to take over the SError
doesn't handle certain types of response in a sensible manner, and
there's not much that can reasonably be done to change that.
handler, maybe in ATF, as workaround.
probing runs on one of the Cortex-A72 cores of rk3399 we see the SError.
When probing runs on one of the A53 cores, we get a synchronous external
abort instead.
Is this expected to see different error types on big.LITTLE systems? Or
is this another special property of the rk3399 pcie controller?