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.

[参考译文] sprugs6d.pdf 是否是 SerDes PCIe#39;s 规范文档?

Guru**** 2550800 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/598503/is-sprugs6d-pdf-the-serdes-pcie-s-specifaction-document

你(们)好

sprugs6d.pdf 是否是 SerDes PCIe 规范文档?

当我尝试检查 CSL_wiz8_sb_refclk100MHz_PCI_5Gbps 函数中的初始化代码时。

我发现寄存器的含义不匹配。

例如

 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0000)、15、8、(uint32_t) 0x08);
 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0060)、7、0、(uint32_t) 0x5c);
 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0060)、15、8、(uint32_t) 0x1c);
 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0060)、23、16、(uint32_t) 0x04);
 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0064)、15、8、(uint32_t) 0xc7);
 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0064)、23、16、(uint32_t) 0x43);
 CSL_FINSR (*(volatile uint32_t *)(base_addr + 0x0064)、31、24、(uint32_t) 0x03);

base_addr 为0x2320000

我 找不到寄存器"base_addr + 0x0060"。 和"base_addr + 0x0064"的寄存器、从位2~31开始、根据 sprugs6d.pdf 进行保留。

请告诉我原因。 或者我正在检查错误的说明吗?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将此事转发给 PCIe 专家。 他们的反馈应发布在此处。

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

    您似乎正在使用 Keystone II 器件。 Serdes 文档为 :www.ti.com/.../spruho3a.pdf

    www.ti.com/.../sprugs6d.pdf 是 PCIe 用户指南。

    我不知道您使用的 SOC 是什么。 如果它是 Keystone I、则 Serdes 寄存器为0x262_0390和0x262_0394。

    如果是 Keystone II、正如您提到的 CSL_wiz8_sb_refclk100MHz_PCI_5Gbps、那么请查看 SOC 数据表以了解 Serdes 基址、某些器件可能具有两个 PCIe 接口。 如果您仅采用 PCIe 0、是的、则其 Serdes DASE 地址为0x232_0000。

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

    你(们)好

       是的、我使用 KeyStone II 和 PCIe 0。

       我的目的是生成 PRBS-31并将 SERDES PCIe 设置为环回。 并测试信号。

       我现在的状态 :

       我已经使用 CSL_wiz8_sb_refclk100MHz_PCI_5Gbps 来初始化 SerDes PCIe 端口。

        此外 、我还通过使用 CSL_SerdesLaneEnable 函数启用了通道。

       然后 、我尝试使用 "devmem 0x2180223c 32 0x00249c80"  将 SerDes PCIe 设置为环回模式、  

       此操作会导致 系统崩溃。

       这种情况在初始化后看起来就像、SERDES PCIe 端口已死。

         因此 、我尝试检查 CSL_wiz8_sb_refclk100MHz_PCI_5Gbps 函数中的寄存器设置。

        我将 重定位器设置与 www.ti.com/.../sprugs6d.pdf 文档中的值进行比较。  我发现寄存器的含义不匹配

       例如:

       base_addr 为 0x2320000

       (1)

     CSL_FINSR ((base_addr + 0x0060)、7、0、(uint32_t) 0x5c);
     CSL_FINSR ((base_addr + 0x0060)、15、8、(uint32_t) 0x1c);
     CSL_FINSR ((base_addr + 0x0060)、23、16、(uint32_t) 0x04);

      我在说明符中找不到"base_addr + 0x0060"。

      (2)  

      CSL_FINSR ((base_addr + 0x0064)、15、8、(uint32_t) 0xc7);
     CSL_FINSR ((base_addr + 0x0064)、23、16、(uint32_t) 0x43);
     CSL_FINSR ((base_addr + 0x0064)、31、24、(uint32_t) 0x03);

       在说明中。 64h 为 EP_IRQ_SET,2-31的位被保留

    那么、您能否为我提供一些解决 PCIe 死区问题的建议?

    提前感谢您

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好
    感谢您的信息。
    我发现我们有一个 Blackhawk。 我尝试了 CCS。
    我安装了 CCS6.1.2.00015_Win32和 ti-processor-sdk-rtos-k2hk evm-02.00.01.07-Windows-x86-64安装.exe。
    然后、我加载了 SerDes_diag_PRBS_K2KC66ExampleProject。
    已启用 SerDes_diag_platform.h 中的#define SerDes_diag_test_phy_type test_SERDES_PCIe、和
    尝试执行 SerDES_Example_PRBSTest。
    在 K2K 板中运行测试时的示例。 没有发出 PRBS 信号。 我测试时钟、时钟
    在100MB 中工作
    那么、如果 SerDes PCIe PRBS 测试、您能否检查 SerDes_diag_PRBS_K2KC66ExampleProject 代码
    代码是否正确。
    谢谢
    BRS
    Wei Wang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好

    我发现我们有一个 Blackhawk。 我尝试了 CCS。 我安装了 CCS6.1.2.00015_Win32和 ti-processor-sdk-rtos-k2hk evm-02.00.01.07-Windows-x86-64安装.exe。 然后、我加载了 SerDes_diag_PRBS_K2KC66ExampleProject。
    已启用 SerDes_diag_platform.h 中的#define SerDes_diag_test_phy_type test_SERDES_PCIe、并尝试执行 SerDES_Example_PRBSTest。 在 K2K 板中运行测试时的示例。 没有发出 PRBS 信号。 我测试时钟、时钟在100MB 下工作

    当我构建项目时,没有错误,并且生成 SerDes_diag_PRBS_K2KC66ExampleProject.out。 但是、当我运行项目时、
    信息如下:
    -------- 开始------------------------
    [C66xx_0]关闭 L1数据缓存。 关闭 L2高速缓存。 Serdes Common Init 无效
    -------- 结束----------------------
    CSL_SerdesLaneEnable (&SerDes_lane_enable_params);
    错误如下所示:
    ---------- 开始------------------------------
    错误:无法从非基元位置加载
    ---------- 结束--------------------------
    我检查了头文件,一切都很好。 问题是什么?
    谢谢您的建议
    BRS
    WeiWang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好

    根据
    e2e.ti.com/.../11696.aspx

    这只是表达式视图中显示的问题、不应表示执行代码本身存在任何问题。

    因此我运行代码、但代码会进入"lan_retval = CSL_SerdesLaneEnable (&SerDes_lan_enable_params)"函数中的无限循环。
    它通过以下代码在函数"CSL_SerdesGetStatus"中连续检查通道的状态:
    ====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    RetVal &=(CSL_SERDES_STATUS) CSL_FEXTR (*(volatile uint32_t *)(base_addr + 0x1ff4)、(0 + lane num)、(0 + lane num)));
    ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    但绝不会获得正确的返回值。

    我正在使用 pdk_k2hk _4_0_0的 SerDes_diag_PRBS_K2KC66ExampleProject 代码。 此代码是否支持 SERDES PCIe PRBS 测试?

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

    我测试了一个设置 K2H EVM--- 适用于 PCIe 的 CI2V BOC—K2H EVM 采用最新的处理器 SDK 3.3 (PDK_K2HK_4.0.5)、程序为 SerDes_diag_PRBS_K2KC66ExampleProject.out、使用 DSS 脚本驱动测试、如用户指南中所示:

    66xx_0:GEL 输出:(8D/e)延迟...
    C66xx_0:GEL 输出:(10)延迟...
    C66xx_0:GEL 输出:(12)延迟...
    C66xx_0:GEL 输出:(13) SECCTL = 0x00090000
    C66xx_0:GEL 输出:(延迟...
    C66xx_0:GEL 输出:(延迟...
    C66xx_0:GEL 输出:(14) PLLCTL = 0x00000041
    C66xx_0:GEL 输出:PLL 已配置(CLKIN * PLLM/PLLD/PLLOD = PLLO
    UT):
    C66xx_0:GEL 输出:PLL 已配置(122.879997 MHz * 625 / 32 / 2 = 12)
    00.0 MHz)
    DSS:SerDes PRBS 测试...
    DSS:正在将 DSP 程序加载到第一个 Keystone2 DSP 内核...
    DSS:完成!
    DSS:正在将 DSP 程序加载到第二个 Keystone2 DSP 内核...
    DSS:完成!
    DSS:删除了第一个 Keystone2 DSP 上的所有断点...
    DSS:删除了第二个 Keystone2 DSP 上的所有断点...
    DSS:在第二个 Keystone2 DSP 上执行程序...
    DSS:在第1个 Keystone2 DSP 上执行程序...
    DSS:执行开始...
    关闭 L1数据缓存。
    关闭 L1数据缓存。
    关闭 L2高速缓存。
    关闭 L2高速缓存。
    串行器/解串器通用初始化完成
    串行器/解串器通用初始化完成
    串行器/解串器通道0初始化完成
    串行器/解串器通道0初始化完成
    SerDes 通道1初始化完成
    SerDes 通道1初始化完成
    串行器/解串器初始化完成
    串行器/解串器初始化完成
    启用 TX PRBS 模式
    启用 TX PRBS 模式
    对于通道0、ATT = 563224446对于通道0、BOOST = 218938456
    通道1的 ATT =-1977087799 BOOST =通道1的-222935804
    通道0 PRBS 校验超时........
    PRBS 扫描完成!
    通道1 PRBS 检查超时........
    DSS_TEST_COMPLEE_FLAG_DEVICE0:0x5A5A5A
    DSS_TEST_COMPLEE_FLAG_DEVICE1:0xA5A5A5A5
    对于通道0、ATT = 1958382479对于通道0、BOOST = 392658851
    通道1的 ATT = 1640920731升压=通道1的-835385668
    PRBS 扫描完成!
    串行器/解串器诊断测试完成
    C:\ti\pdk_k2hk _4_0_5\packages/ti\diag\SerDes_diag>

    我注意到 RX 信号验证超时导致了无用的 RX ATT/BOOST。 PRBS 模式可能从未传输出来。 我为此开了一个 TT。

    此致、Eric