rcar_gen3: plat: Prevent PCIe hang during L1X config access
authorMarek Vasut <marek.vasut+renesas@gmail.com>
Mon, 11 Feb 2019 23:09:46 +0000 (00:09 +0100)
committerMarek Vasut <marek.vasut+renesas@gmail.com>
Wed, 20 Feb 2019 15:18:08 +0000 (16:18 +0100)
commit0969397f295621aa26b3d14b76dd397d22be58bf
treed09641e1c1bb15c72eaf67452cd0eb400de77418
parent41bd188266d78807bf4b78d7ef31c83fa51a58cd
rcar_gen3: plat: Prevent PCIe hang during L1X config access

In case the PCIe controller receives a L1_Enter_PM DLLP, it will
disable the internal PLLs. The system software cannot predict it
and can attempt to perform device config space access across the
PCIe link while the controller is in this transitional state. If
such condition happens, the PCIe controller register access will
trigger ARM64 SError exception.

This patch adds checks for which PCIe controller is enabled,
checks whether the PCIe controller is in such a transitional
state and if so, first completes the transition and then restarts
the instruction which caused the SError.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
plat/renesas/rcar/platform.mk
plat/renesas/rcar/rcar_common.c [new file with mode: 0644]