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 | obj-$(CONFIG_OF) += simple-pm-bus.o |
第一行表示启用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.c对simple-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 | RK3588 PCIe RC |
需要额外启用:
1 | CONFIG_MHI_BUS=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 | grep -R "simple-pm-bus\|arm,cci\|fsl,mc\|mhi" \ |
最终仍应反编译运行DTB验证,因为板级overlay和构建选择可能改变源DTS结果。
9. 运行时验证
1 | cat /proc/config.gz | grep -E 'MHI|FSL_MC|ARM_CCI|TI_SYSC' |
不要仅凭驱动目录存在或模块文件存在断言硬件启用。
10. RK3588调优边界
若目标是RK3588总线性能,应优先分析:
- DDR devfreq和DMC;
- Rockchip QoS节点/驱动;
- NOC monitor;
- CPU/DSU/CCI之外的互连clock;
- PCIe Max Link Speed/Width;
- IOMMU/TLB;
- IRQ affinity;
- 功能模块devfreq。
这些并非本目录大多数源文件的职责。
正在加载留言…