关于PCIe枚举心得体会

关于PCIe有个几个问题,
1,为什么ep侧单独复位rc侧就不能访问epconfig space和mem space了。
此行为为异常操作,ep复位导致原来rc枚举时为ep分配config space信息丢失(复位后变成默认值),如bar的基址映射在主机的地址。

2,ep侧单独复位,会与 主机重新建立link么?
不会,因为此时主机并不知道ep侧产生复位的行为主机并不知道。

3,主机重新与ep建立link的方法
1)主机进行hotreset操作同时rc会发送present信号给ep,此时PCIe总线两端均恢复为初始状态走ltssm建立link
2)主机设置linkdisable寄存器置位,导致rc发送linkdown信号给ep设备,ep收到linkdown信号,产生复位行为进入初始状态,当主机侧设置linkenable置位时,PCIe总线两端开始建立link, linkenable不置位则不建立link。

4,rc与ep重新建立link后,rc能访问ep的存储空间么?
只能访问config space,不能访问mem space,因为ep侧的复位行为导致,config space的信息(如mem space, io space,需要使能才能访问) 全部恢复为默认值(其值不一定为使能),因此必须在rc与ep重新建立link之前,将config space信息在rc侧进行保存,待link建立成功后(以能否读取vendor id为标准,link complete寄存器置位,不一定代表config space就能访问)再将保存的4k数据,load进ep侧(此行为类似重新进行枚举),至此ep侧的所有区域便像第一次枚举时一样被主机访问。

2,为什么rc侧对ep枚举只进行一次?
因为PCIe总线使用的的bdf机制进行路由访问ep的配置空间。总线拓扑结构涉及整个系统,因此不能轻易进行改变,只在开始确定总线的拓扑结构。这也是只进行一次枚举的原因
注:以上均为个人观点,有不足或错误地方欢迎指正。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驱动打怪升级

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值