1. RK3399 PCIe控制器架构解析
1.1 AXI总线与PCIe控制器的连接机制
在RK3399 SoC架构中,AXI总线作为高速设备互联的核心枢纽,其与PCIe控制器的连接方式决定了数据传输的效率上限。AXI协议采用主从架构设计,其中:
- Master端特性:CPU作为典型的主设备,具备发起读写事务的主动权。在PCIe场景中,DMA控制器也可能作为主设备出现
- Slave端特性:PCIe控制器作为从设备,需要响应地址范围内的访问请求。实测表明,当多个主设备同时访问时,AXI交叉开关(Crossbar)的仲裁延迟会直接影响PCIe吞吐量
五通道分离设计是AXI总线实现高并发的关键:
plaintext复制读通道:
ARADDR[31:0] - 读地址总线(位宽可配置)
RDATA[127:0] - 读数据总线(支持128位突发)
写通道:
AWADDR[31:0] - 写地址总线
WDATA[127:0] - 写数据总线
BRESP[1:0] - 写响应信号
实际调试中发现:当PCIe控制器作为AXI从设备时,WDATA位宽必须与AXI主设备保持一致,否则会出现数据截断。建议在uboot阶段通过AXI_CTRL寄存器校验位宽配置。
1.2 地址空间划分精要
RK3399为PCIe控制器预留了精心设计的地址窗口,其物理布局直接影响TLP包的生成逻辑:
| 区域类型 | 地址范围 | 大小 | 功能描述 |
|---|---|---|---|
| Client Registers | 0xFD000000-0xFD7FFFFF | 8MB | 链路训练、电源管理等底层控制 |
| Core Registers | 0xFD800000-0xFDFFFFFF | 8MB | ATU配置、DMA引擎控制 |
| Region 0 | 0xF8000000-0xF9FFFFFF | 32MB | 配置空间访问 |
