spacemit: Add PCIe controller and combo-PHY support for K3#307
spacemit: Add PCIe controller and combo-PHY support for K3#307EncrowThorne19 wants to merge 4 commits into
Conversation
|
开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/27496248994 参数解析结果
测试完成 详细结果:
Kunit Test Result[10:44:15] Testing complete. Ran 482 tests: passed: 466, skipped: 16
Kernel Build Result
Check Patch Result
LAVA Check (qemu)
result: Lava check done!
|
riscv inclusion category: feature bugzilla: RVCK-Project#306 -------------------------------- Backport the SpacemiT K3 combo-PHY driver from upstream 7.1-rc4 to 6.6.141, providing the PHY lanes for the K3 PCIe controller. Signed-off-by: EncrowThorne <jyc0019@gmail.com> Signed-off-by: Yongchao Jia <yongchao.jia@spacemit.com> Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
riscv inclusion category: feature bugzilla: RVCK-Project#306 -------------------------------- Backport the SpacemiT K3 DesignWare-based PCIe host controller driver from upstream 7.1-rc4 to 6.6.141. It drives the on-board NVMe SSD on PortA. Signed-off-by: EncrowThorne <jyc0019@gmail.com> Signed-off-by: Yongchao Jia <yongchao.jia@spacemit.com> Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
riscv inclusion category: feature bugzilla: RVCK-Project#306 -------------------------------- Add the comb-PHY and PCIe host nodes to the K3 dtsi and enable them on the com260 board with the PortA pinctrl. Signed-off-by: EncrowThorne <jyc0019@gmail.com> Signed-off-by: Yongchao Jia <yongchao.jia@spacemit.com> Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
4b21dcb to
045b840
Compare
|
开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/27497362172 参数解析结果
测试完成 详细结果:
Kunit Test Result[11:31:46] Testing complete. Ran 482 tests: passed: 466, skipped: 16
Kernel Build Result
Check Patch Result
LAVA Check (qemu)
result: Lava check done!
|
riscv inclusion category: config bugzilla: RVCK-Project#306 -------------------------------- Enable CONFIG_PCIE_SPACEMIT_K1 in the default config so the SpacemiT K3 PCIe host controller is built in by default. Signed-off-by: EncrowThorne <jyc0019@gmail.com> Signed-off-by: Yongchao Jia <yongchao.jia@spacemit.com>
|
开始测试 log: https://github.com/RVCK-Project/rvck/actions/runs/27519533881 参数解析结果
测试完成 详细结果:
Kunit Test Result[02:01:54] Testing complete. Ran 482 tests: passed: 466, skipped: 16
Kernel Build Result
Check Patch Result
LAVA Check (qemu)
result: Lava check done!
|
问题描述
SpacemiT K3 的 PCIe 控制器(PortA)通过 K3 combo-PHY 连接板载
NVMe SSD,但当前 6.6.141(rvck)内核树中既没有 PCIe 控制器驱动,也没有
combo-PHY 驱动。导致 SSD 无法被枚举,也无法作为根文件系统启动。
相关驱动在上游(7.1-rc4)中已存在,但因框架 API 与行为差异,无法在 6.6.141 上
直接编译和工作,需要移植适配。
参考的上游 Patch
PCIe 控制器驱动Patch
PHY 驱动Patch
解决方案
从上游 7.1-rc4 移植并适配 PCIe 与 combo-PHY 支持,新增/修改以下文件:
PHY 驱动:
新增 K3 combo-PHY 驱动,为 PCIe 提供物理层。
挂接编译。
PCIe 控制器驱动:
控制器驱动,驱动 PortA 上的 NVMe SSD。
DTS:
验证方法
需开启以下内核配置:
验证结果
~ # uname -a
Linux HummingBird 6.6.141+ #4 SMP Thu Jun 11 20:18:40 CST 2026 riscv64 GNU/Linux
~ # lspci
00:00.0 Class 0604: Device 201f:0002 (rev 01)
01:00.0 Class 0108: Device 126f:2263 (rev 03)
~ # lspci -s 01:00.0 -v
01:00.0 Class 0108: Device 126f:2263 (rev 03) (prog-if 02)
Subsystem: Device 126f:2263
Flags: bus master, fast devsel, latency 0, IRQ 62
Memory at 1100200000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
Capabilities: [70] Express Endpoint, IntMsgNum 0
Capabilities: [b0] MSI-X: Enable- Count=16 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [158] Secondary PCI Express
Capabilities: [178] Latency Tolerance Reporting
Capabilities: [180] L1 PM Substates
Kernel driver in use: nvme