type0 普通设备 也可以叫agent设备 因为他是代理自己内部的很多寄存器行为
type1 桥设备,那本质肯定是转发 会根据收到的tlp修改对应字段转化,是否会从type0转化为type1待研究
pcie拓扑结构是
rc
| - dev1
|- bridge1
|- dev2
发送type0类型只用指定 function number和reg
发送type1类型需要指定bus number和devicebumber 然后是fn和reg
也就是bdf寻址方式在type1采用全
每一个bus number代表的是某一个级别的总线 比如rc下面是bus1,bridge1下面是bus2
每个bridge上面会存储他的上游bus 叫做primary bus,自己叫secondary bus,自己的子节点bus叫。subordinate bus。并且桥的bus number也就是secondary bus number是桥下面所有bus的最大值
总线访问逻辑是 总线上电信号广播 每个设备会读取报文 判断bus是不是在自己bus范围 用自己的secondary bus number判断。
有点类似i2c读取时候在i2c总线上传输地址 每个i2c设备 会监听后判断是自己才处理响应