PCIe总线-RK3588 PCIe子系统简介(八)

1.PCIe子系统

RK3588 PCIe子系统如下图所示。总共拥有5个PCIe控制器。PCIe30X4(4L)支持RC和EP模式,其他4个仅支持RC模式。ITS port 1连接PCIe30X4(4L)和PCIe30X2(2L)控制器,PCIe30X4(4L)和PCIe30X2(2L)控制器使用PCIe3.0 PIPE PHY。ITS port 0连接PCIe30X1_0(1L0)、PCIe30X1_1(1L1)和PCIe30X1_2(1L2)控制器,PCIe30X1_0(1L0)和PCIe30X1_1(1L1)控制器可复用PCIe3.0 PIPE PHY和Combo PIPE PHY,PCIe30X1_2(1L2)只能使用Combo PIPE PHY。

PCIe子系统示意图

RK3588 PCIe控制器兼容PCIe1.1、2.1、3.0协议,支持的特性如下:

  1. 兼容PCIe 3.0规范
  2. 共有5个PCIe控制器
    1. PCIe Gen3x4控制器,支持RC和EP模式
      • MPS为256字节
      • 16 ATU inbound regions, 16 ATU outbound regions
      • 最大为Gen3x4 link
      • 具有硬件流控功能的2通道DMA,包含2通道读和写
      • 当使用Gen3 PHY时,使用独立扩频时钟(SRIS)的分离参考时钟
    2. PCIe Gen3x2控制器,支持RC模式
      • MPS为256字节
      • 16 ATU inbound regions, 16 ATU outbound regions
      • 最大为Gen3x2 link
      • 当使用Gen3 PHY时,使用独立扩频时钟(SRIS)的分离参考时钟
    3. 3xPCIe Gen3x1控制器,支持RC模式
      • MPS为256字节
      • 8 ATU inbound regions, 8 ATU outbound regions
      • 当连接到Gen3 PHY时,最大为Gen3x1 link,当连接到Combo PIPE PHY时,最大为Gen2x1 link
      • 当使用Gen3 PHY时,使用独立扩频时钟(SRIS)的分离参考时钟
  3. 下面的特性是可选的:
    1. Alternative Routing-ID Interpretation (ARI)
    2. 应用可选的Address Translation Services (ATS)
    3. TLP Prefix
    4. Dynamic Power Allocation (DPA)
    5. 低功耗L1 Substates (L1SS)
    6. Resizable BAR(RBAR)支持扩展的RBAR和VF Resizable BAR
    7. 独立扩频时钟(SRIS)的分离参考时钟
    8. PCI Express Active State Power Management (ASPM)
    9. PCI Express 高级错误报告(AER)支持多个头部日志记录
  4. 支持Latency Tolerance Reporting (LTR)
  5. 支持Optimized Buffer Flush and Fill (OBFF)
  6. 内部数据通路(PIPE)时钟频率可为62.5 MHz, 125 MHz, 250MHz
  7. 高级电源和时钟管理
  8. 拥有地址转换单元
  9. 具有MSI-X功能
  10. Automatic Lane Reversal
  11. Up-configure Support
  12. RAS DES (Debug, Error Injection, and Statistics)
  13. 支持生成和校验ECRC
  14. 支持通过Configuration Intercept Controller修改配置写请求
  15. Store-and-forward Queue Modes for Rx TLPs
  16. 对于Posted, Non-posted, and Completion传输支持配置过滤规则
  17. Configurable BAR Filtering, I/O Filtering, Configuration Filtering and Completion Lookup/Timeout
  18. Three Application Transmit Clients
  19. MSI中断支持Per-Vector Masking (PVM), Extended message data
  20. MSI-X支持Per-Vector Masking (PVM)

2.PCIe控制器

RK3588 PCIe控制器的示意图如下图所示。由RAW core和一些应用逻辑组成(Client和CLK/RST)。RAW core实现了PCIe协议和一些特定功能,包含多种AXI接口,RADM/XADM/CDM/eDMA/PMC/CXPL。

PCIe控制器示意图

下面对其中一些模块的功能进行介绍。

2.1.DBI Slave

DBI Slave可以通过DBI接口访问控制器内部CDM寄存器,如配置空间寄存器,DMA寄存器、ATU寄存器、特殊的Shadow寄存器(IP厂家定制寄存器)。DBI内部划分了2个部分,可通过CS2进行选择,具体如下图所示。当然这部分寄存器,本地CPU和远程CPU都可访问。

CDM空间

如PCIe30X4(4L)拥有2块DBI空间,如下图所示。

RC寄存器

PCIe30X4(4L)作为RC时,DBI可以访问的寄存器如下图所示:

PCIe30X4(4L)DBI空间

PCIe30X4(4L)作为EP时,DBI可以访问的寄存器如下图所示:

EP寄存器

2.2.Client

Client包含了和PCIe控制器交互的逻辑,如发送和接收PCIe消息,请求进入和退出PM状态,处理中断、配置操作模式、读取基本的调试信息等等。寄存器地址范围如上图所示。部分寄存器如下图所示:

client寄存器

2.3.RADM

Receive Application-Dependent Module (RADM)实现了PCIe传输层接收数据包的功能,具体的功能如下:

  1. 整理和过滤接收的TLP。过滤规则和路由可配置
  2. 缓冲和排队接收的TLP
  3. 将接收的TLP路由到控制器接收的接口

RADM模块维护了Receive Completion Lookup Table (LUT) 表,用于跟踪完成报文和监测发送non-posted请求的完成报文是否超时。当在规定的时间内没有接收到预期的完成报文,则会上报超时事件。

2.4.XADM

Transmit Application-Dependent Module (XADM)实现了PCIe传输层发送数据包的功能,具体的功能如下:

  1. TLP仲裁
  2. 构造TLP
  3. 流量检查

XADM发送路径采用cut-through架构,除了retry buffer之外,没有实现发送缓冲区和队列(buffering/queues)。控制器内部维护了一个目标完成查询表(Target
Completion Lookup Table),其存储了接收到的请求的TLP头部信息。

2.5.CDM

Configuration-Dependent Module (CDM) 实现了下面的功能:

  1. 标准的PCIe配置空间
  2. 控制器特有的寄存器空间(Port Logic Registers)

2.6.eDMA

eDMA拥有一个读通道和一个写通道,可同时进行存储器事务读写。支持scatter-gather。若传输完成或者发生了错误,可选择中断通知本地CPU或者通过MWr中断(MSI或MSI-X)通知远端CPU。DMA write将本地内存数据拷贝到远端内存。DMA read:将远端内存数据拷贝到本地内存。

DMA

2.7.PMC

PMC模块实现了PCI Express Active State Power Management (ASPM)功能。

2.8.CXPL

CXPL是PCIe的核心模块,实现了PCIe的协议,由事物层、数据链路层和物理层组成,外部通过PIPE接口与PHY连接,具体如下图所示。

CXPL

参考资料

  1. PCIEXPRESS体系结构导读
  2. PCI Express technology 3.0
  3. PCI Express® Base Specification Revision 5.0 Version 1.0
  4. https://www.cnblogs.com/DF11G/p/17341493.html
  5. Rockchip RK3588 TRM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RIP路由附加度量值(华为)

#交换设备 RIP路由附加度量值 RIP(Routing Information Protocol)路由协议中的附加度量值是指在RIP路由原来度量值的基础上所增加的额外度量值,通常以跳数来表示。这个附加度量值可以是正值,也可以是负值,用于影响路…

关于STM32上用HID HOST调鼠标数据的解析

一、前言 关于这章主要是基于我前面的那篇文章 链接: 关于怎么用Cubemx生成的USBHID设备实现读取一体的鼠标键盘设备(改进版) https://blog.csdn.net/qq_29187987/article/details/139535648?spm1001.2014.3001.5501 引用的文章的简介 引用的这篇文…

数据库概述1

数据:描述事物的符号记录称为数据; 包括数字、图片、音频等; 数据库:长期储存在计算机内有组织、可共享的大量数据的集合;数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的数据冗余、较高的数…

STM32学习笔记(一)--时钟树详解

(1)时钟概述;时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波。(时钟相当于单片机的脉搏;STM32本身非常复杂,外设非常的多,为了保持低功耗工作,STM32 的主控默认不…

(一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景

utf8mb4_general_ci 和 utf8mb4_unicode_ci 是 MySQL 数据库中字符集和排序规则。用于指定字符数据的排序和比较规则,确保在数据库中对字符串进行查询和比较时得到正确的结果。 1、utf8mb4_general_ci 是一个较为简单的排序规则。不区分大小写(case-ins…

【Python】深入了解 AdaBoost:自适应提升算法

我们都找到天使了 说好了 心事不能偷藏着 什么都 一起做 幸福得 没话说 把坏脾气变成了好沟通 我们都找到天使了 约好了 负责对方的快乐 阳光下 的山坡 你素描 的以后 怎么抄袭我脑袋 想的 🎵 薛凯琪《找到天使了》 在机器学习的领域中&#x…

算法工程师 | 如何快速 了解,掌握一个算法!脚踏实地,迎着星辰,向前出发 ~

本文是一些碎碎念 希望对正在迈向 算法工程师道路的你 有所裨益 一般来说,代码 中会有很多 算法实现的细节,但论文可能并没有体现,所以能够尝试自己 仔细阅读论文,手动复现代码,基本上来说对 这个 算法 你有了全…

夏季城市环境卫生挑战多:TSINGSEE青犀智慧环卫方案助力城市垃圾站智能管理

一、背景分析 夏季,随着气温的攀升,城市垃圾的数量和种类也随之增加,这给环卫工作带来了极大的挑战。环卫垃圾站点作为城市垃圾处理的重要一环,其管理效率直接关系到城市环境的整洁与卫生。近年来,随着视频监控技术的…

【Redis】Redis常见问题——缓存更新/内存淘汰机制/缓存一致性

目录 回顾数据库的问题如何提高 mysql 能承担的并发量?缓存解决方案应对的场景 缓存更新问题定期生成如何定期统计定期生成的优缺点 实时生成maxmemory 设置成多少合适呢?项目类型上来说 新的问题 内存淘汰策略Redis淘汰策略为什么redis要内存淘汰内存淘…

ESP32 IDF ADF 加入音频

需要把mp3制作成音频bin 用ADF自带工具 果用户需要生成自己的 audio-esp.bin,则需要执行 mk_audio_bin.py 脚本(位于 $ADF_PATH/tools/audio_tone/mk_audio_tone.py),并且指定相关文件的路径。 源 MP3 文件在 tone_mp3_folder …

红黑树(C++)

文章目录 写在前面1. 红黑树的概念及性质1. 1 红黑树的概念1. 2 红黑树的性质 2. 红黑树节点的定义3. 红黑树的插入3.1 按照二叉搜索的树规则插入新节点3.2 检测新节点插入后,红黑树的性质是否造到破坏 4.红黑树的删除5.红黑树的验证6.源码 写在前面 在上篇文章中&…

MySQL中CAST和CONVERT函数都用于数据类型转换

在 MySQL 中,CAST() 和 CONVERT() 函数都用于数据类型转换。虽然这两个函数在大多数情况下可以互换使用,但它们之间还是有一些细微的差别。 官方文档地址 https://dev.mysql.com/doc/refman/8.4/en/cast-functions.html#function_cast CAST() 函数 C…

5.3.1_2 二叉树的层次遍历

👋 Hi, I’m Beast Cheng👀 I’m interested in photography, hiking, landscape…🌱 I’m currently learning python, javascript, kotlin…📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…

ERNIE-Lite-8K模拟function calling的测试代码

ERNIE-Lite-8K目前免费。一般免费的东西功能都比较少,ERNIE-Lite-8K就不支持function calling。有一些办法可以通过提示词近似实现类似的效果。 今天,我通过系统提示的方式测试了ERNIE-Lite-8K,让它“调用”我实现的do_add函数,实…

Linux 基础IO 三

1.close 关闭之后&#xff0c;文件内部没有数据 #include<stdio.h> #include<string.h> //#include<unistd.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h>int main() {close(1);int fd open("log.txt", O…

c++模板模式

文章目录 模板模式什么是模板模式为什么使用模板模式模板模式实现步骤 示例模板模式优缺点 模板模式 什么是模板模式 模板模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;将某些步骤的具体实现延…

[DDR4] DDR 简史

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解DDR4》 存和硬盘&#xff0c;这对电脑的左膀右臂&#xff0c;共同扛起了存储的重任。内存以其超凡的存取速度闻名&#xff0c;但一旦断电&#xff0c;内存中的数据也会消失。它就像我们的工作桌面&…

tokenization(二)子词切分方法

文章目录 概述BPE构建词表词元化代码实现 WordPieceUnigram估算概率&#xff08;E&#xff09;删除词元&#xff08;M&#xff09; 参考资料 概述 接上回&#xff0c;子词词元化&#xff08;Subwords tokenization&#xff09;是平衡字符级别和词级别的一种方法&#xff0c;也…

网络通信架构

BS架构/CS架构 使用协议分别对应&#xff1a; TCP / HTTP 在计算机网络和软件开发中&#xff0c;CS架构&#xff08;Client-Server Architecture&#xff0c;客户端-服务器架构&#xff09;和BS架构&#xff08;Browser-Server Architecture&#xff0c;浏览器-服务器架构&am…

云和运维(SRE)的半生缘-深读实证02

这个标题不算太夸张&#xff0c;云计算和很多IT岗位都有缘&#xff0c;但是和运维&#xff08;SRE&#xff09;岗位的缘分最深。 “深读实证”系列文章都会结合一些外部事件&#xff0c;点明分析《云计算行业进阶指南》书中的内容。本次分享介绍了下列内容&#xff1a; 我以运维…