RK3588 适用性、DTS 与配置核对

RK3588 适用性、DTS 与配置核对

1. 直接结论

drivers/bus没有Rockchip专用源文件。本树rk3588*.dts*未发现以下compatible:

  • simple-pm-bus
  • ARM CCI;
  • FSL-MC;
  • MHI platform controller;
  • OMAP/TI SYSC;
  • Tegra/Sunxi/QCOM/Broadcom等本目录bus controller。

Rockchip defconfig也未显式启用MHI、FSL-MC或本目录其它平台bus选项。

2. 为什么仍会编译部分代码

Makefile规定:

1
2
obj-$(CONFIG_OF) += simple-pm-bus.o
obj-y += mhi/

第一行表示启用OF时编译simple-pm-bus对象,不代表RK3588存在匹配设备。第二行只是进入MHI子目录,其内部对象仍由CONFIG_MHI_BUS/MHI_BUS_EP决定。

“进入链接/模块目录”“driver注册”“匹配设备”是三个不同阶段。

3. 普通Simple Bus

RK3588 DTS包含大量SoC地址层次和simple-bus语义。它们主要由OF Core创建platform devices。

simple-pm-bus.csimple-bus使用ONLY_BUS保护逻辑,不会把所有普通SoC节点都接管成power-managed bus。

因此不能通过:

1
lsmod | grep simple

判断RK3588子设备枚举是否正常。

4. RK3588内部互连

RK3588使用AXI/AHB/APB/NoC,但协议名称不等于驱动兼容。相关实现分散在:

  • drivers/soc/rockchip:PM domain、QoS、system monitor等;
  • drivers/clk/rockchip:总线clock;
  • drivers/devfreq及DDR驱动:频率/带宽;
  • drivers/interconnect:若厂商树提供带宽provider;
  • firmware/PMU:部分电源与安全配置;
  • 各功能driver自身。

本目录Baikal AXI/APB、OMAP L3或Broadcom GISB的寄存器完全不同,不能用于RK3588。

本树RK3588 DTS约有50个qos@... syscon节点,power-domain通过pm_qos phandle引用;drivers/soc/rockchip/pm_domains.c解析这些regmap并在域切换时管理QoS。它们不是独立的drivers/bus设备。

另外:

  • drivers/devfreq/rockchip_bus.c虽然包含rockchip,rk3588-bus匹配且defconfig启用,但当前rk3588*.dts*没有对应节点;
  • drivers/devfreq/event/rockchip-nocp.c及配置存在,但match表没有RK3588且RK3588 DTS无NOCP节点。

故不能只凭Kconfig已启用就宣称RK3588正在运行bus devfreq或NoC monitor。

5. Cache Coherency

RK3588 CPU cluster使用DSU,不通过DTS中的CCI-400/500/550节点。本目录arm-cci.c不参与CPU coherency初始化。

PCIe/设备DMA一致性由arm64 DMA coherency属性、SMMU/IOMMU和设备driver共同决定。

RK3588的PL330 DMA以arm,primecell设备存在,由drivers/amba/bus.c和OF Core创建AMBA device,再绑定drivers/dma/pl330.c;AMBA总线本体不在drivers/bus

6. MHI扩展可能

如果RK3588产品通过PCIe连接受支持的5G modem,MHI Host可能成为实际路径:

1
2
3
4
5
RK3588 PCIe RC
-> PCI modem
-> mhi_pci_generic
-> mhi bus
-> WWAN/QMI/MBIM功能driver

需要额外启用:

1
2
CONFIG_MHI_BUS=m
CONFIG_MHI_BUS_PCI_GENERIC=m

并确认PCI ID、MSI、DMA、firmware、供电、reset和WWAN client驱动。仅打开MHI Kconfig不会自动让任意PCIe modem工作。

7. Endpoint MHI

MHI_BUS_EP针对modem/endpoint设备侧。RK3588作为PCIe Root Complex时不需要;若使用RK3588 PCIe endpoint mode,还需专门MHI endpoint controller glue,本目录没有Rockchip实现。

8. DTS验证

1
2
grep -R "simple-pm-bus\|arm,cci\|fsl,mc\|mhi" \
arch/arm64/boot/dts/rockchip/rk3588*

最终仍应反编译运行DTB验证,因为板级overlay和构建选择可能改变源DTS结果。

9. 运行时验证

1
2
3
4
5
cat /proc/config.gz | grep -E 'MHI|FSL_MC|ARM_CCI|TI_SYSC'
ls /sys/bus | grep -E 'mhi|fsl'
find /sys/bus/platform/drivers -maxdepth 1 -name '*bus*'
lspci -nn
dmesg | grep -Ei 'mhi|bus error|interconnect|noc'

不要仅凭驱动目录存在或模块文件存在断言硬件启用。

10. RK3588调优边界

若目标是RK3588总线性能,应优先分析:

  • DDR devfreq和DMC;
  • Rockchip QoS节点/驱动;
  • NOC monitor;
  • CPU/DSU/CCI之外的互连clock;
  • PCIe Max Link Speed/Width;
  • IOMMU/TLB;
  • IRQ affinity;
  • 功能模块devfreq。

这些并非本目录大多数源文件的职责。

文章互动

阅读 --

留言

0 条留言

正在加载留言…