Fork me on GitHub
侧边栏

随笔分类 -  PCIE

摘要:在PCIe地址中,0001:01:00.0 表示设备在PCIe总线上的位置。这个地址由四个部分组成: 域(Domain):0001 表示设备所在的PCIe域。域用于区分不同的PCIe根复合体(Root Complex)。 总线(Bus):01 表示设备所在的总线号。 设备(Device):00 表示 阅读全文
posted @ 2025-06-10 17:04 yooooooo 阅读(457) 评论(0) 推荐(0)
摘要:前面的文章中介绍过,为了保证视频、音频等数据得到优先传输,PCIe总线实现了一种叫做Quality of Service(QoS)的机制。QoS可以满足视频、音频等对Latency和实时性(Isochronous)要求比较高(一般不可以被打断)的应用需求。QoS主要通过VC(Virtual Chan 阅读全文
posted @ 2025-05-23 10:39 yooooooo 阅读(206) 评论(0) 推荐(0)
摘要:LTR:Latency Tolerance Reporting LTR 是 PCIe 协议中规定的一项可选特性,可用于提高系统的电源管理效率。 通过 LTR,PCIe 设备可以告知系统它们能容忍的最大响应延迟是多少,只要系统在这个时间之内对 PCIe 设备提出的请求做出响应即可。系统的电源管理策略可 阅读全文
posted @ 2025-05-22 14:41 yooooooo 阅读(378) 评论(0) 推荐(0)
摘要:在任何事务层包(TLP)发送之前,PCIe总线必须要先完成Flow Control初始化。当物理层完成链路初始化后,便会将LinkUp信号变为有效,告知数据链路层可以开始Flow Control初始化了。如下图所示: 注:由于VC0是默认使能的,所以当Flow Control初始化开始时,其会被自动 阅读全文
posted @ 2025-05-15 14:36 yooooooo 阅读(223) 评论(0) 推荐(0)
摘要:Flow Control即流量控制,这一概念起源于网络通信中。PCIe总线采用Flow Control的目的是,保证发送端的PCIe设备永远不会发送接收端的PCIe设备不能接收的TLP(事务层包)。也就是说,发送端在发送前可以通过Flow Control机制知道接收端能否接收即将发送的TLP。 在P 阅读全文
posted @ 2025-05-15 14:19 yooooooo 阅读(301) 评论(0) 推荐(0)
摘要:1.简介 Linux内核PCIe软件框架如下图所示,按照PCIe的模式,可分为RC和EP软件框架。 RC的软件框架分为五层: 第一层为RC Controller Driver,和RC Controller硬件直接交互,不同的RC Controller,其驱动实现也不相同; 第二层为Core层,该层将 阅读全文
posted @ 2025-05-06 18:36 yooooooo 阅读(744) 评论(0) 推荐(0)
摘要:在 PCIe(Peripheral Component Interconnect Express) 中, ASPM(Active State Power Management) 和 PM(Power Management) 是两种主要的电源管理机制,它们各自独立但又可以协同工作,以优化设备的电源消耗 阅读全文
posted @ 2025-05-04 18:01 yooooooo 阅读(1426) 评论(0) 推荐(0)
摘要:PCIe总线与PCI总线使用的PCI-PM管理机制兼容。在PCIe设备的扩展配置空间中定义了Power Management Capabilities结构,该结构中含有一系列寄存器,系统软件通过修改PMCSR寄存器的Power State字段,可以使PCIe设备进入不同的节能状态D-State,如D 阅读全文
posted @ 2025-05-04 17:26 yooooooo 阅读(1121) 评论(0) 推荐(0)
摘要:PCIe总线的电源管理包含ASPM和软件电源管理两方面内容。所谓ASPM是指PCIe链路在没有系统软件参与的情况下,由PCIe链路自发进行的电源管理方式。而软件电源管理指PCI PM机制,PCIe总线的软件电源管理与PCI总线兼容。本章节讲述ASPM,下章节再讲PCI-PM。 ASPM全称为Acti 阅读全文
posted @ 2025-05-04 13:11 yooooooo 阅读(1488) 评论(0) 推荐(0)
摘要:一个典型的PCIe总线周期 下图展示了一个典型的PCI总线周期。PCI是同步的,这意味着事件发生在时钟边缘,所以时钟显示在图表的顶部,它的上升边缘用虚线标记,因为这些是信号被输出或采样的时间。下面简要介绍一下一个总线周期的流程: 一、Typical PCI Bus Cycle 在时钟边缘1上,FRA 阅读全文
posted @ 2025-04-02 11:37 yooooooo 阅读(102) 评论(0) 推荐(0)
摘要:PCIe架构定义了4种地址空间:配置空间、Memory空间、IO空间和message空间。 1. 配置空间 每个PCIe Function都有4KB的配置空间(Configuration Space)。前256 Bytes是和PCI兼容的配置空间,剩余的是PCIe扩展配置空间(Extended Co 阅读全文
posted @ 2025-03-26 13:45 yooooooo 阅读(1806) 评论(0) 推荐(1)
摘要:1.简介 RK3588 PCIe RC和EP使用同一个平台驱动,其主要的作用是解析设备树中的资源、初始化中断、使能电源、初始化PHY、使能时钟和释放复位,然后根据compatible属性初始化RC或者EP驱动。 2.入口 平台驱动的定义如下,当compatible属性为"rockchip,rk358 阅读全文
posted @ 2025-03-22 17:45 yooooooo 阅读(921) 评论(0) 推荐(0)
摘要:setpci 是一个用于查询和配置 PCI 设备配置空间的命令行工具。让我详细解释它的用法: 基本语法 setpci [选项] 操作... 常用选项: -v 显示详细信息 -f 强制执行,不进行安全检查 -d [厂商ID]:[设备ID] 指定设备 -s [[bus]:][slot][.[func]] 阅读全文
posted @ 2025-03-20 16:53 yooooooo 阅读(644) 评论(0) 推荐(0)
摘要:在 PCIe(Peripheral Component Interconnect Express)系统中,预取空间(Prefetchable Memory)和非预取空间(Non-Prefetchable Memory)有不同的用途和特性: 预取空间(Prefetchable Memory): 定义: 阅读全文
posted @ 2025-03-20 09:50 yooooooo 阅读(206) 评论(0) 推荐(0)
摘要:随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。 PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用 阅读全文
posted @ 2025-03-19 23:22 yooooooo 阅读(4811) 评论(0) 推荐(0)
摘要:my_pcie_0: pcie@10000000 { #address-cells = <1>; #size-cells = <1>; compatible = "mypcie"; device_type = "pcie"; reg = < 0x40000000 0x00100000 >; rang 阅读全文
posted @ 2025-03-19 23:15 yooooooo 阅读(566) 评论(0) 推荐(0)
摘要:一、为什么需要BAR 系统中的每个设备中,对地址空间的大小和访问方式可能有不同的需求,例如,一个设备可能有256字节的内部寄存器/存储,应该可以通过IO地址空间访问,而另一个设备可能有16KB的内部寄存器/存储,应该可以通过基于MMIO的设备访问。 哪些地址应该使用哪种方式(IO或Memory)来访 阅读全文
posted @ 2025-03-18 18:28 yooooooo 阅读(1577) 评论(0) 推荐(0)
摘要:首先从三个层面去理解这个问题:物理接口,通道,协议 1:物理接口(相当于通讯中的电,光口) 大白话- 物理规格,像是 公路,铁路 专门跑PCI-E通道的那个物理接口:扩展性极强,可以插显卡的PCI-E X16的那个物理接口,或者插网卡,声卡的那个PCI-E X1那个物理接口,都是属于一类的物理接口, 阅读全文
posted @ 2025-03-18 14:42 yooooooo 阅读(2972) 评论(0) 推荐(0)
摘要:1.简介 在Linux内核中设备树中,定义了一系列属性,用来描述PCIe总线。比如"bus-range"属性,描述PCIe某个domain的总线编号范围,比如"ranges"属性,描述PCIe地址转换。下面将分别介绍这些属性。 2.设备类型 由于PCIe总线有一些特有的属性,需要在驱动初始化的时候内 阅读全文
posted @ 2025-03-10 10:12 yooooooo 阅读(1161) 评论(0) 推荐(0)
摘要:✨前言: PCIe总线的存储器写请求、存储器读完成等TLP中含有数据负载,即Data Payload。Data Payload的长度和MPS(Max Payload Size)、MRRS(Max Read Request Size)和RCB(Read Completion Boundary)相关。 阅读全文
posted @ 2025-03-06 15:58 yooooooo 阅读(1668) 评论(0) 推荐(0)