PCI设备的访问方法(三)

您所在的位置:网站首页 linux读pcie配置空间 PCI设备的访问方法(三)

PCI设备的访问方法(三)

2023-03-19 10:51| 来源: 网络整理| 查看: 265

一、硬件结构

在这里插入图片描述 图中的Processor是CPU,addr cpu是cpu的内存空间,cpu发出地址可以到达cache,内存DRAM,或者GPIO,再或者PCI设备,再访问PCI设备时需要经过Bridge桥,将addr cpu转换成addr PCI。但是PCI总线上挂载了很多设备,这些设备是怎样响应的呢? cpu会去扫描这些PCI设备,每个设备都有配置寄存器,都这个配置寄存器我可以知道,这是哪类设备,是网卡,还是串口,我可以知道申请的资源,想申请多大的空间;当我知道你需要多大的空间之后,我就会在内存中分配相应的地址空间,然后将这块空间的地址范围及地址写入配置寄存器。 当我的PCI设备插到PCI总线的卡槽上时,我会声明我需要多大的空间,驱动来初始化时会来扫描这些设备,就会执行上面的步骤。 当桥把CPU地址转换成PCI地址后,如果这个pci地址属于PCI dev1,这个PCIdev1就会响应。

二、信号定义 Signal Definition

1.地址线与数据线 地址线和数据线是复用的,区分是用FRAME信号区分的,如下图: 在这里插入图片描述 FRAME为低电平是传输ADDRESS,高电平传输DATA。 在这里插入图片描述 规格书的描述(PCI3.0规范) 在这里插入图片描述 一开始的地址PCI总线上的设备都还没有自己的地址空间,那么怎样去选中某一个PCI设备呢? 在这里插入图片描述 BUS0和BUS1都是PCI总线,可以使用AD线来选择对应的设备。

三、配置空间 Configuration Space

在这里插入图片描述在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3