rk3399 u-boot 并没有支持 pcie 及其 phy 驱动,但是上游代码有支持。这里通过从上游 v2024.01-rc3 分支移植这部分驱动到 rk u-boot。
通过 rk3399.dtsi 知道 pci 匹配项为 rockchip,rk3399-pcie
:
pcie0: pcie@f8000000 {
compatible = "rockchip,rk3399-pcie";
...
}
准备好主线 u-boot v2024.01-rc3,拷贝驱动文件到对应目录:
cp drivers/pci/pcie_rockchip.c /rk-linux/rk3399/u-boot/drivers/pci/
cp drivers/phy/rockchip/phy-rockchip-pcie.c /rk-linux/rk3399/u-boot/drivers/phy/
注意是否包含相关头文件。
参考上游代码,添加 pcie_rockchip Makefile 与 Kconfig:
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
index a076e48189..b9401ceb47 100644
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
@@ -79,6 +79,15 @@ config PCIE_LAYERSCAPE
PCIe controllers. The PCIe may works in RC or EP mode according to
RC