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.

C6678中关于PCIe 速率的问题

你好!

        本人最近在刚接触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

  • 你好

    1)你的测试程序中数据传输量大小是多少,传输方式是什么(用core copy 或者 用EDMA)?

     测出来的带宽是多少呢,如下是我们的测试结果

    Measured PCIe Read Throughput Performance
    Data Burst Size Throughput Performance (Gbps) Throughput Performance (MBps)
    128 bytes              6.45                                             806.2
    64 bytes                5.51                                             688.8 

    2)请参考UG中如下描述

    Set the DIR_SPD bit to 1 in the
    PL_GEN2 register during the initialization can switch the PCIe link speed
    mode from Gen1 (2.5Gbps) to Gen2 (5.0Gbps).