你好!
本人最近在刚接触PCIe不久,想在两片C6678间实现PCIe的互相通信,程序是在TI提供的例程上改的,现在我想问的是:
(1)、现在想修改PCIe的lane的配置,想从x1改到x2,不知道该在哪里修改,我试着修改以下代码:
/* Setting PL_GEN2 */ memset (&setRegs, 0, sizeof(setRegs));
gen2.numFts = 0xF;
gen2.dirSpd = 0x0;
gen2.lnEn = 2; //原来是1
setRegs.gen2 = &gen2;
上面的配置过程,是不是将PCIe的速率配置在2.5Gbps,而且使能了x2 lane,可是结果发现不管配置成1还是2,传完数据的时间是一样的,是不是这样改不够还需要改程序其他的地方?
(2)、按照文档写,PCIe能跑到5.0Gbps per lane per direction ,但如果我输入参考时钟为100MHz,且锁相环最高位x25,此时应该最高是不是只能跑到2.5Gbps?
Sincerely
THX
Thomas Yang1:
你好
1)你的测试程序中数据传输量大小是多少,传输方式是什么(用core copy 或者 用EDMA)?
测出来的带宽是多少呢,如下是我们的测试结果
Measured PCIe Read Throughput PerformanceData Burst Size Throughput Performance (Gbps) Throughput Performance (MBps)128 bytes 6.45 806.264 bytes 5.51 688.8
2)请参考UG中如下描述
Set the DIR_SPD bit to 1 in thePL_GEN2 register during the initialization can switch the PCIe link speedmode from Gen1 (2.5Gbps) to Gen2 (5.0Gbps).