This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:如何使用 tda4 PCIe EP 模式

Guru**** 1949050 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1186350/tda4vm-how-to-use-tda4-pcie-ep-mode

器件型号:TDA4VM

我使用 tda4 pcie1作为 PCIe EP 模式、使用 Xavier 作为 PCIe RC。

在 Xavier 中、它识别 tda4:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

root@localhost:/home/nvidia lspci -vv
0005:00:00.0 PCI 桥接器:NVIDIA Corporation Device 1ad0 (修订版 A1)(prog-if 00 [正常解码])
控制:I/O+ Mem+ Busmaster+ Spectroycle- MemWINV- VGASnoop- ParErr- Stepping - SERR+ FastB2B - DiscINTx-
状态:CAP+ 66MHz - UDF- FastB2B- ParErr- DEVSEL=FAST > TABORT-<TAbort- SERR-<PERR- INTx-
延迟:0
中断:引脚 A 路由至 IRQ 39
总线:primary=00、secondary =01、subordinate=ff、sec-latiter=0
桥后的 I/O:0000f000-00000fff
桥后内存:40000000-413fff
桥后的可预取存储器:00000000fff00000-00000000000fff
次要状态:66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-<TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl:奇偶校验- SERR- NoISA- VGA- Mbort->重置- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREN-
功能:[40]电源管理版本3
标志:PMEClk - DSI - D1- D2- AuxCurrent = 375mA PME (D0+、D1-、D2-、D3hot+、D3colo+)
状态:D0 NoSoftRst+ PME-启用- DSel=0 DScale=0 PME-
功能:[50] MSI:启用-计数=1/1可屏蔽+ 64位+
地址:00000000000000000000数据:0000
屏蔽:00000000挂起:00000000
功能:[70] Express (v2)根端口(插槽-)、MSI 00
DevCap:MaxPayload 256字节、PhantFunc 0
ExtTag- RBE+
DevCtl:报告错误:Correctable+ Non-Fatal+ Fatal+ Unsupported +
RlxdOrd+ ExtTag- PhantFunc-AUXPWR- NoSnoop+
MaxPayload 256字节、MaxReadReq 512字节
DevSta:CORERR- UncorrErr- FatalErr- UnsuppReq- AUXPWR+收发器-
LnkCap:端口#0、速度16GT/s、宽度 x2、不支持 ASPM、退出延迟 L0 <1us、L1 <64us
ClockPM-Surprise + LLActRep+ BwNot+ ASPMOptComp+
LnkCtl:ASPM 已禁用;RCB 64字节已禁用- CommClk-
ExtSynch- ClockPM- AutWidDis - BWInt-自动 BWInt-
LnkSta:速度8GT/s、宽度 x2、TrErr- Train - SlotClk+ DLActive+ BWMgmt+ ABWMgmt+
RootCtl:ErrCorrectable - ErrNon-Fatal - ErrFatal - PMEIntEnA+ CRSVisible +
RootCap:CRSVisible+
RootSta:PME ReqID 0000、PMEStatus- PMEPending -
DevCap2:完成超时:范围 ABCD、TimeoutDIS+、LTR+、OBFF 不支持 ARIFWD-
DevCtl2:完成超时:50uS 至50ms、TimeoutDIS-、LTR-、OBFF 已禁用 ARIFWD-
LnkCtl2:目标链路速度:16GT/s、EnterCompliance-SpeedDiss-
传输裕度:正常工作范围、EnterModifiedCompliance - ComplianceSOS-
合规去加重:-6dB
LnkSta2:当前去加重级别:-6dB、均衡完成+、均衡 Phase1+
均衡 Phase2+、均衡 Phase3+、链接均衡请求-
功能:[B0] MSI-X:启用-计数=8屏蔽-
矢量表:bar=2 offset=00000000
PBA:bar=2 offset=00010000
功能:[100 v2]高级错误报告
UESTA:DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt - UnxCmplt- RxOF- MalfTLP - ECRRC - UnsupReq - ACSviol-
UEMsk:DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt - UnxCmplt- RxOF- MalfTLP - ECRC- UnsupReq - ACSviol-
UESVrt:DLP+ SDES+ TLP - FCP+ CmpltTO- CmpltAbrt - UnxCmplt- RxOF+ MalfTLP+ ECRC - UnsupReq - ACSviol-
嘉年华:RxErr- BadTLP- BadDLLP-Rollover -超时-非 FatalErr-
CEMsk:RxErr- BadTLP- BadDLLP-Rollover - Timeout - NonFatalErr+
AERCap:第一个错误指针:00、GenCap+ CGenEn- ChkCap+ ChkEn-
能力:[148 v1]#19
能力:[168 v1]#26
能力:[190 v1]#27
功能:[1C0 v1] L1 PM 子状态
L1SubCap:PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2- ASPM_L1.1- L1_PM_Substates +
PortCommonModeRestoreTime=60US PortTPowerOnTime=40US
L1SubCtl1:PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
T_CommonMode=255us
L1SubCtl2:T_PwrOn=40us
能力:[1d0 v1]供应商特定信息:ID=0002 Rev=4 Len=100
能力:[2d0 v1]供应商特定信息:ID=0001 Rev=1 Len=038
能力:[308 v1]#25
功能:[314 v1]精密时间测量
PTMCap:请求者:+响应者:+根:+
PTMCClockGranularity:16ns
PTMControl:已启用:- RootSected:-
PTMEffectiveGranularity:未知
能力:[320 v1]供应商特定信息:ID=0004 Rev=1 len=054
正在使用的内核驱动程序:pcieport

0005:01:00.0未分配的分类[ff00]:德州仪器(TI)器件 b00d
控制:I/O- Mem+ busmaster+ SpectrusCycle - MemWINV- VGASnoop- ParErr- Stepping - SERR- FastB2B- DiscINTx+
状态:CAP+ 66MHz - UDF- FastB2B- ParErr- DEVSEL=FAST > TABORT-<TAbort- SERR-<PERR- INTx-
延迟:0
中断:引脚 A 路由到 IRQ 558
区域0:1f41124600 (32位、不可预取)上的存储器[size=256]
区域1:1f41124400 (32位、不可预取)上的存储器[size=512]
区域2:1f41124000处的存储器(32位、不可预取)[size=1K]
区域3:1f41120000处的存储器(32位、不可预取)[size=16K]
区域4:1f41100000 (32位、不可预取)的存储器[size=128K]
区域5:1f41000000处的存储器(32位、不可预取)[size=1m]
功能:[80]电源管理版本3
标志:PMEClk - DSI - D1+ D2- AuxCurrent =0mA PME (D0+、D1+、D2-、D3hot+、D3colo-)
状态:D0 NoSoftRst+ PME-启用- DSel=0 DScale=0 PME-
功能:[90] MSI:ENABLE+ Count=2/2可屏蔽- 64位以上
地址:00000000000000000000数据:0000
功能:[B0] MSI-X:启用-计数=2屏蔽-
矢量表:bar=0 offset=00000080
PBA:bar=0 offset=00000090
功能:[C0] Express (v2)端点、MSI 00
DevCap:MaxPayload 256字节、PhantFunc 0、Latency L0 <1us、L1 <1us
ExtTag- Attnbtn- AttnInd- PwrInd- RBE+ FLLReset+ SlotPowerLimit 0.000W
DevCtl:报告错误:可纠正-非致命-致命-不受支持-
RlxdOrd+ ExtTag- PhantFunc-AUXPWR- NoSnoop+ FLLReset -
MaxPayload 128字节、MaxReadReq 512字节
DevSta:CORERR+ UncorrErr+ FatalErr- UnsuppReq+ AUXPWR-发送
LnkCap:端口#0、速度8GT/s、宽度 x2、ASPM L1、退出延迟 L0 <256ns、L1 <8us
ClockPm-惊喜- LActRep- BwNot- ASPMOptComp+
LnkCtl:ASPM 已禁用;RCB 64字节已禁用- CommClk-
ExtSynch- ClockPM- AutWidDis - BWInt-自动 BWInt-
LnkSta:速度8GT/s、宽度 x2、TrErr- Train - SlotClk - DLActive-BWMgmt- ABWMgmt-
DevCap2:完成超时:不支持范围 B、TimeoutDIS+、LTR+、OBFF
DevCtl2:完成超时:50uS 至50ms、TimeoutDIS-、LTR-、OBFF 被禁用
LnkCtl2:目标链路速度:8GT/s、EnterCompliance-SpeedDiss-
传输裕度:正常工作范围、EnterModifiedCompliance - ComplianceSOS-
合规去加重:-6dB
LnkSta2:当前去加重级别:-6dB、均衡完成+、均衡 Phase1+
均衡 Phase2+、均衡 Phase3+、链接均衡请求-
功能:[100 v2]高级错误报告
UESTA:DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt - UnxCmplt- RxOF- MalfTLP - ECRC- UnsupReq+ ACSviol-
UEMsk:DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt - UnxCmplt- RxOF- MalfTLP - ECRC- UnsupReq - ACSviol-
UESVrt:DLP+ SDES+ TLP - FCP+ CmpltTO- CmpltAbrt - UnxCmplt- RxOF+ MalfTLP+ ECRC - UnsupReq - ACSviol-
Cesta:RxErr- BadTLP- BadDLLP-Rollover - Timeout - NonFatalErr+
CEMsk:RxErr- BadTLP- BadDLLP-Rollover - Timeout - NonFatalErr+
AERCap:第一个错误指针:14、GenCap+ CGenEn- ChkCap+ ChkEn-
功能:[140 v1]备用路由 ID 解释(ARI)
ARICap:MFVC- ACS/、下一功能:1.
ARICTL:MFVC- ACS-、函数组:0
功能:[150 v1]器件序列号00-00-00-00-00-00-00-00
功能:[160 v1]功率预算
功能:[1b8 v1]延迟容差报告
最大延迟:0ns
最大无监测延迟:0ns
能力:[1C0 v1]#16
功能:[200 v1]单根 I/O 虚拟化(SR-IOV)
IOVCap:migration -、Interrupt Message Number:000
IOVCTL:启用-迁移-中断- MSE- ARIHierarchy -
IOVSta:迁移-
初始 VF:4、总 VF:4、VF 数:0、函数依赖关系链接:00
VF 偏移量:6、跨度:1、器件 ID:0100
支持的页面大小:00000553、系统页面大小:00000001
区0:0000000040000000处的存储器(64位、不可预取)
VF 迁移:偏移量:00000000,BIR:0
能力:[300 v1]#19
能力:[400 v1]供应商特定信息:ID=0001 Rev=1 Len=010
功能:[440 v1]进程地址空间 ID (PASID)
PASIDCap:Exec+ Priv+、最大 PASID 宽度:14
PASIDCtl:enable- Exec-权限-
功能:[4c0 v1]虚拟通道
电容:LPEVC=0 REFCLK=100ns PATEntryBits=1
ARB:固定式- WR32- WR64- WRR128-
CTRL:ArbSelect=Fixed
状态:INPROGRESS -
VC0:电容:PATOffset=00 MaxTimeSlots = 1 RejSnooTrans -
ARB:固定- WR32 - WRR64 - WRR128 - TWRR128 - WRR256 -
CTRL:ENABLE+ ID=0 ArbSelect=Fixed TC/VC=ff
状态:NegoPending - InProgress -
VC1:电容:PATOffset=00 MaxTimeSlots = 1 RejSnooTrans-
ARB:固定- WR32 - WRR64 - WRR128 - TWRR128 - WRR256 -
CTRL:ENABLE- ID=1 ArbSelect=Fixed TC/VC=00
状态:NegoPending - InProgress -
VC2:电容:PATOffset=00 MaxTimeSlots = 1 RejSnooTrans-
ARB:固定- WR32 - WRR64 - WRR128 - TWRR128 - WRR256 -
CTRL:ENABLE- ID=2 ArbSelect=Fixed TC/VC=00
状态:NegoPending - InProgress -
VC3:电容:PATOffset=00 MaxTimeSlots = 1 RejSnooTrans -
ARB:固定- WR32 - WRR64 - WRR128 - TWRR128 - WRR256 -
CTRL:ENABLE- ID=3 ArbSelect=Fixed TC/VC=00
状态:NegoPending - InProgress -
功能:[5c0 v1]地址转换服务(ATS)
ATSCap:使队列深度无效:01
ATSCtl:ENABLE-、最小转换单元:00
功能:[640 v1]页面请求接口(PRI)
PRICTL:启用-复位-
PRISta:RF- UPRGI-Stopped +
页面请求容量:00000001、页面请求分配:00000000
功能:[900 v1] L1 PM 子状态
L1SubCap:PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates +
PortCommonModeRestoreTime=255us PortTPowerOnTime=26us
L1SubCtl1:PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
T_CommonMode=0us LTR1.2_Threshold=0ns
L1SubCtl2:T_PwrOn=40us
功能:[A20 v1]精密时间测量
PTMCap:请求者:+响应者:-根:-
PTMCClockGranularity:未实现
PTMControl:已启用:- RootSected:-
PTMEffectiveGranularity:未知
使用中的内核驱动程序:PCI-endpoint-test

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 但 tda4类是 unkown (未分配的类[ff00]:德州仪器(TI)器件 b00d)。

1.我需要将类设置为内存控制器、GbE 设备或其他设备?0x0000类也 可以吗?

如何使用 tda4 EP 器件与 Xavier 进行通信?我需要编写驱动 程序或应用?是否有示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jason、  

    您可以从 EP 端设置类和子类 ID、类似于设置 VendorID 等 您可以参阅:

      https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_05_00_08/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/PCIe/PCIe_End_Point.html

    命令。  

    枚举 EP 后、您可以使用两侧的 pcitest 实用程序来启动传输。 查看:

      主机设备配置

    一节、介绍如何在主机端编译 pcitest.c、以及测试接口的命令选项。  

    如果您遇到其他问题、请告知我们。  
    Jian  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     如何在 PCIe EP 端进行测试?EP 端安装 PCI_endpoint_test.ko,但没有 dev/pci_endpoint_test.0,它似乎只能在 PCIe RC 端创建设备。我在 Xavier (PCIe RC)上使用了 pcitest,但 它打印了 msg "msg:不正常.................................... MSI-x..:  不可以"。当它开始读取测试时,它没有打印任何内容,并且保持该状态,它似乎在某处死亡。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经跟随 pcitest、它在这里死了、在 pci_endpoint_test.c.so 中的"wait_for_completion (&test->IRQ_orped")、如何解决它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jason、  

    在中断上、您是否为 MSI/X 配置了 EP? 我没有从 Xavier 日志中看到启用了 MSI/X。  

    在数据传输方面、移植的 pcitest 似乎存在一些问题。  

    我会将此帖子重新分配给同事 Achal、他可以在下周帮助进行后续调试。  

    Jian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如何在 PCIe EP 上启用 msi/x,tda4文档刚刚提到“echo…… >msi_intterupts、echo ... >mixed_intterupts"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有人知道如何调试它?

x 出现错误。请重试或与管理员联系。