mirror of
https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
synced 2025-12-01 12:31:01 +08:00
rk3399 pcie
This commit is contained in:
135
IMX6ULL/doc_pic/10_PCI_PCIe/08_RK3399_PCIe芯片手册解读.md
Normal file
135
IMX6ULL/doc_pic/10_PCI_PCIe/08_RK3399_PCIe芯片手册解读.md
Normal file
@@ -0,0 +1,135 @@
|
||||
## RK3399_PCIe芯片手册解读
|
||||
|
||||
参考资料:
|
||||
|
||||
* 《PCI Express Technology 3.0》,Mike Jackson, Ravi Budruk; MindShare, Inc.
|
||||
* [《PCIe扫盲系列博文》](http://blog.chinaaet.com/justlxy/p/5100053251),作者Felix,这是对《PCI Express Technology》的理解与翻译
|
||||
* 《PCI EXPRESS体系结构导读 (王齐)》
|
||||
* 《PCI Express_ Base Specification Revision 4.0 Version 0.3 ( PDFDrive )》
|
||||
* 《NCB-PCI_Express_Base_5.0r1.0-2019-05-22》
|
||||
* [SOC中AXI总线是如何连接的](https://zhuanlan.zhihu.com/p/157137488)
|
||||
* [AXI总线整理总结](https://blog.csdn.net/tristan_tian/article/details/89393045)
|
||||
* [PCIe中MSI和MSI-X中断机制](https://blog.csdn.net/pieces_thinking/article/details/119431791)
|
||||
|
||||
开发板资料:
|
||||
|
||||
* 芯片手册:Rockchip RK3399TRM V1.3 Part2.pdf
|
||||
|
||||
```shell
|
||||
doc_and_source_for_drivers\IMX6ULL\doc_pic\
|
||||
10_PCI_PCIe\芯片手册\RK3399
|
||||
Rockchip RK3399TRM V1.3 Part2.pdf
|
||||
```
|
||||
|
||||
* https://wiki.t-firefly.com/zh_CN/ROC-RK3399-PC-PLUS/
|
||||
|
||||
AXI相关:
|
||||
|
||||
* ug1037-vivado-axi-reference-guide.pdf
|
||||
|
||||
```shell
|
||||
doc_and_source_for_drivers\IMX6ULL\doc_pic\10_PCI_PCIe\协议\AXI
|
||||
ug1037-vivado-axi-reference-guide.pdf
|
||||
```
|
||||
|
||||
* [AXI总线你需要知道的事儿](https://zhuanlan.zhihu.com/p/96804919)
|
||||
|
||||
* [AXI总线整理总结](https://blog.csdn.net/tristan_tian/article/details/89393045)
|
||||
|
||||
* [AMBA、AHB、APB、AXI总线介绍及对比](https://zhuanlan.zhihu.com/p/161077476)
|
||||
|
||||
### 1. AXI总线
|
||||
|
||||
#### 1.1 连接方式
|
||||
|
||||
我们一直使用这个图来简化CPU与外设之间的连接:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
实际上,我们可以更深入一点,下图是STM32MP157的总线结构图(其他芯片没有画出总线结构图):
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
本节视频我们只关心AXI总线,高速设备之间通过AXI总线连接。Master和Slave是多对多的关系,它们之间读、写可以同时进行的,内部结构图如下:
|
||||
|
||||

|
||||
|
||||
#### 1.2 五个通道
|
||||
|
||||
在AXI总线中,读写可以同时进行,有5个通道:
|
||||
|
||||
* 读:
|
||||
* 读地址通道:传输读操作的地址
|
||||
* 读数据通道:传输读到的数据
|
||||
* 写:
|
||||
* 写地址通道:传输写操作的地址
|
||||
* 写数据通道:传输要写的数据
|
||||
* 写响应通道:传输写操作的结果
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
| 通道名称 | 通道功能 | 数据流向 |
|
||||
| -------------- | -------------------------------------- | ---------- |
|
||||
| read address | 读地址通道 | 主机->从机 |
|
||||
| read data | 读数据通道(包括数据通道和读响应通道) | 从机->主机 |
|
||||
| write address | 写地址通道 | 主机->从机 |
|
||||
| write data | 写数据通道 | 主机->从机 |
|
||||
| write response | 写响应通道 | 从机->主机 |
|
||||
|
||||
|
||||
|
||||
#### 1.3 信号线
|
||||
|
||||
我们只列出本节视频关心的信号线:
|
||||
|
||||
| 信号 | AXI4 | AXI4-Lite |
|
||||
| ------ | -------------------------------- | -------------------------------- |
|
||||
| AWADDR | 写地址通道:地址线,最多可达64位 | 写地址通道:地址线,最多可达64位 |
|
||||
| WDATA | 写数据通道:数据线,32~1024位 | 写数据通道:数据线,32位 |
|
||||
| ARADDR | 读地址通道:地址线,最多可达64位 | 读地址通道:地址线,最多可达64位 |
|
||||
| RDATA | 读数据通道:数据线,32~1024位 | 写数据通道:数据线,32位 |
|
||||
|
||||
|
||||
|
||||
#### 1.4 PCIe控制器
|
||||
|
||||
RK3399的PCIe控制器就是挂在AXI总线上,在芯片手册中可以看到:
|
||||
|
||||
* AWADDR:AXI总线的写地址通道地址线,简单理解就是CPU要写PCIe控制器时发出的地址线
|
||||
* ARADDR :AXI总线的读地址通道地址线,简单理解就是CPU要读PCIe控制器时发出的地址线
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 2. 地址空间
|
||||
|
||||
RK3399访问PCIe控制器时,CPU地址空间可以分为:
|
||||
|
||||
* Client Register Set:地址范围 0xFD000000~0xFD7FFFFF
|
||||
* Core Register Set :地址范围 0xFD800000~0xFDFFFFFF
|
||||
* Region 0:0xF8000000~0xF9FFFFFF , 32MB
|
||||
* Region 1:0xFA000000~0xFA0FFFFF,1MB
|
||||
* Region 2:0xFA100000~0xFA1FFFFF,1MB
|
||||
* ……
|
||||
* Region 32:0xFBF00000~0xFBFFFFFF,1MB
|
||||
|
||||
其中Region 0大小为32MB,Region1~31大小分别为1MB。
|
||||
|
||||
|
||||
|
||||
### 3. 访问流程
|
||||
|
||||
#### 3.1 配置空间读写流程
|
||||
|
||||
|
||||
|
||||
#### 3.2 MEM/IO读写流程
|
||||
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/08_RK3399_PCIe芯片手册解读.tif
Normal file
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/08_RK3399_PCIe芯片手册解读.tif
Normal file
Binary file not shown.
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/52_axi.png
Normal file
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/52_axi.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 121 KiB |
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/53_axi_read.png
Normal file
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/53_axi_read.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/54_axi_write.png
Normal file
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/54_axi_write.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/55_rk3399_pcie.png
Normal file
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/pic/10_PCI_PCIe/55_rk3399_pcie.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 268 KiB |
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/协议/AXI/AXI总线中文详解.doc
Normal file
BIN
IMX6ULL/doc_pic/10_PCI_PCIe/协议/AXI/AXI总线中文详解.doc
Normal file
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user