PCIE2.0 3.0 4.0 硬件测试解决方案 PCIE memap空间读写异常问题: pcie可以正常读写配置空间,但无法正常读写memap 空间 定位问题: 个address是36bit的,但软件定义为个32bit的变量,从而导致软件读写pcie memap空间失败(读错了位置)。 解决方法:fixed the software bug。☺ 这个问题定位主要需要些关于PICE的些地址的知识,要理解他们之间的关系。 PCIE空间的BAR CPU访问PCIE设备的高速外设(IO)的地址 应用层访问PCIE memap的地址 来张图吧, 上图中,有几个关键的Address,Virtual Address这个大家比较好理解,但凡有点在linux下开发经验的程序员都知道linux下的应用程序只能访问Virtual Address,那如果我们需要访问些指定的Physical Address怎么办,这在driver开发当中十分常见。linux提供了mamap系统调用,用于Virtual Address和Physical Address的转换。另外,PICE设备在读写时使用PCIE的BAR地址,BAR地址是PCIE控制器以memap 方式读写PCIE EP设备时使用的地址,是PCIE协议使用的地址。 相关产品:PCIE2.0 , 3.0 , 4.0 , 硬件测试解决方案 更新时间:2024/3/26 10:52:52 标签:PCIE2.0 3.0 4.0 硬件测试解决方案 |