
PCIE与PCI的前尘往事
文章平均质量分 93
深入了解PCI、PCIE, 熟悉linux PCI驱动框架
Hilbert(*^*)
箴言:认真、努力,不哗众取宠,不走捷径,坚持美好,特例独行!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
怎么编写PCIe设备驱动程序
聚是一团火,散是满天星!在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!怎么判断pci_driver和pci_dev是否匹配?参考代码:`kernel\drivers\scsi\3w-9xxx.c。参考代码:`drivers\nvme\host\pci.c。参考代码:`drivers\nvme\host\pci.c。原创 2023-02-13 07:00:00 · 5538 阅读 · 1 评论 -
MSI_MSI-X中断之源码分析
GITS_TRANSLATER寄存器的CPU地址是:0xfee20000 + 0x010000 + 0x0040 = 0xfee30040。对应的PCI地址也是0xfee30040(驱动程序里为例方便,故意使得CPU地址跟PCI地址相同,这2个地址属于不同地址空间),在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!原创 2023-02-12 07:00:00 · 2030 阅读 · 1 评论 -
MSI_MSI-X中断之体验与使用
聚是一团火,散是满天星!对应的PCI地址也是0xfee30040(驱动程序里为例方便,故意使得CPU地址跟PCI地址相同,这2个地址属于不同地址空间),在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!仅此向嵌入行业里的每一个认真做技术的从业者致敬!所以下图中PCI地址都是0xfee30040。原创 2023-02-11 07:00:00 · 4287 阅读 · 0 评论 -
GICv3_LPI机制
中断号0-15保留用于SGI的中断号。能产生MSI中断的设备,都有一个DeviceDI(设备ID),它产生的每一个MSI中断都有一个EventID(事件ID)。它们标识CPU核私有的中断源,并且独立于另一个内核上的相同中断源,比如,每个核的计时器。对于原来的SPI,它也是可以使用MSI的方式传递的,这个功能是可选的。在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!在复杂系统中有成本上千的中断时,就需要成本上千的中断信号线,这太复杂了。原创 2023-02-10 07:00:00 · 1308 阅读 · 0 评论 -
INTx中断机制源码分析
因为发生legacy中断时,rockchip_pcie_legacy_int_handler函数要进一步分辨发生的是INTA还是INTB、INTC、INTD中断,然后处理。PCIe设备在硬件信息里表明自己可以发出哪个中断,比如INTA、INTB、INTC或INTD,这个中断要转换为中断号,我们编写的软件才可以为它注册中断处理函数。在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!为什么legacy中断的函数,不是使用。原创 2023-02-09 07:00:00 · 1354 阅读 · 2 评论 -
INTx_MSI_MSIX三种中断机制分析
参考资料:《PCI_SPEV_V3_0.pdf》6.8节。原创 2023-02-08 07:00:00 · 3859 阅读 · 0 评论 -
RK3399_PCIe_Host驱动分析_设备枚举
resource结构体如下,要注意的是:里面记录的start、end等,是基于CPU角度看待的。也就是说,如果记录的是内存地址、IO地址,那么是CPU地址,不是PCI地址。每个PCI/PCIe设备都有配置空间,就是一系列的寄存器,对于普通的设备,它的配置空间格式如下。Class Code:这是只读的寄存器,它含有3个字节,用来表明设备的功能,它分为3部分。对应pci_dev结构体里的设备信息:读取PCI设备的配置空间即可获得。把这块空间对应的PCI地址写入PCIe设备的BAR。原创 2023-02-07 07:00:00 · 1922 阅读 · 0 评论 -
RK3399_PCIe_Host驱动分析_地址映射
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!所谓建立CPU和PCI地址空间的映射,就是设置Region对应的寄存器,都是使用函数。即:只写读写0xF8000000这段空间,就可以只写读写PCIe设备的配置空间。其中Region 0大小为32MB,Region1~31大小分别为1MB。,就是PCIe控制器,它的驱动做什么?原创 2023-02-06 07:00:00 · 3381 阅读 · 1 评论 -
RK3399_PCIe芯片手册解读
CPU读写某个地址,就可以读写某个PCIe设备的配置空间:CPU读写某个地址,就可以读写某个PCIe设备的内存、寄存器:简单地说,就是把CPU发出的addr,转换为右边的TLP头部:PCI地址、头部的其他信息。怎么把CPU地址转换为PCI地址怎么提供TLP头部信息中的其他部分CPU访问一个地址,导致PCIe控制器发出TLP。TLP里含有PCIe地址、其他信息。地址转换:把CPU地址转换为PCIe地址提供TLP的其他信息。原创 2023-02-05 07:00:00 · 3950 阅读 · 1 评论 -
PCI驱动程序框架
聚是一团火,散是满天星!在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!仅此向嵌入行业里的每一个认真做技术的从业者致敬!原创 2023-02-04 07:00:00 · 1065 阅读 · 0 评论 -
PCIe路由方式
聚是一团火,散是满天星!在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!主设备要给EndPoint的内存写数据,它发出"内存写报文",不需要对方回应。主设备要给EndPoint的IO写数据,它发出"IO写报文",需要对方回应。主设备要读EndPoint的内存数据,它发出"内存读报文",需要对方回应。主设备要读EndPoint的IO数据,它发出"IO读报文",需要对方回应。PCIe设备(EndPoint)被配置后,它记录有分配给它的基地址。原创 2023-02-03 10:30:08 · 1299 阅读 · 0 评论 -
PCIe设备的配置过程
在软件的角度,我们先关注事务层(Transaction Layer),在事务层传输TLP(Transaction Layer Packet,事务层包)。在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!如果要配置的设备,就在当前总线上,即目标设备的Bus号等于当前桥的Secondary Bus Number,原创 2023-02-02 12:13:25 · 3619 阅读 · 1 评论 -
从软件角度看PCIe设备的硬件结构
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!事务层(Tansaction Layer):传输的是Transaction Layer Packet(TLP)数据链路层(Data Link Layer):传输的是Data Link Layer Packet(DLLP)既然PCIe是串行信号,那只能在"包"里传输地址、数据了。原创 2023-01-31 13:11:25 · 1033 阅读 · 0 评论 -
PCI设备的访问方法_桥设备(type1)
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!CPU读取配置空间的BAR,得知:这个PCI设备想申请多大空间。怎么访问配置空间:发起一个type 0的配置命令。仅此向嵌入行业里的每一个认真做技术的从业者致敬!CPU分配PCI地址,写到PCI设备的BAR里。怎么判读设备的类别?怎么访问到某个PCI设备?原创 2023-01-31 12:59:10 · 1400 阅读 · 0 评论 -
PCI设备的访问方法_非桥设备(type0)
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!回答1:需要配置,软件通过PCI桥查询PCI设备的地址需求,分配一块addr_pci空间给它。内存空间或IO空间:PCI本地总线上有AD总线,它是地址、数据复用的总线。CPU读取配置空间的BAR,得知:这个PCI设备想申请多大空间。配置空间:PCI设备的配置寄存器。原创 2023-01-31 12:42:56 · 1457 阅读 · 0 评论 -
从软件开发角度看待PCI和PCIe
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!PCI/PCIe设备上有配置空间(配置寄存器),用来表明自己"需要多大的地址空间"。关键在于:内存控制器,它会根据地址范围发出对应的片选信号,选中对应的设备。不是的,所有的"ram-like"接口设备都可以这样操作。分配地址空间:注意,分配的是PCI/PCIe地址空间。原创 2023-01-31 12:34:09 · 867 阅读 · 0 评论