x100 UART资源描述
从飞腾x100套片软件开发手册描述来看,X100 UART是用X1下function 11-14.
标题BDF(Bus Number, Device Number, Function Number)
PCIe上所有的设备,无论是Type 0还是Type 1,在系统启动的时候,都会被分配一个唯一的地址,它有三个部分组成:
Bus Number:8 bits,也就是最多256条总线
Device Number:5 bits,也就是最多32个设备
Function Number:3 bits,也就是最多8个功能
ARI介绍
Alternative Routing-ID Interpretation,顾名思义,可替换的Routing ID,意味着这是一种要把Routing ID的部分或全部替换掉的机制。通常来讲,Requester ID和Comleter ID等Routing ID由Bus Number, Device Number, Function Number (BDF) 3个字段组成,其中Bus Number 8-bit,Device Number 5-bit,Function Number 3-bit,一共16-bit。即最多支持256个Bus、32个Device及8个Function。由于PCIe采用端到端的传输方式,每一个链路仅挂载一个设备,Device数量为1,Device Number恒为0,采用5-bit宽的Device Number没有意义;此外3-bit Function Number最高支持8个Function,对有多个VM的SR-IOV系统而言,8个Function稍显不足。
基于以上原因,从PCIe Gen3开始提供一种ARI机制,取消了Device Number字段,合并到Function Number字段中,这样Routing ID便变成了8-bit Bus Number + 8-bit Function Number的格式,最多支持的Bus数量不变,支持的Function数量增大到256个。
vxWorks代码分析
vxWorks PCI总线扫描由于只考虑了function 0-7会导致设备扫描不到,另外菊花链的中断号分配也会错误,修改完这两处,基本就可以按照vxBus编写驱动了