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.

[参考译文] RTOS/66AK2E05:有关 SGMII 串行器/解串器配置的一些问题

Guru**** 2558250 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609220/rtos-66ak2e05-some-questions-about-sgmii-serdes-configure

器件型号:66AK2E05

工具/软件:TI-RTOS

您好!

现在我正在研究"pa_Unitest_K2EC66BiosPcapProject"项目、在"cpsw_mgmt.c"文件中、几行代码的函数设置 SerDes 迭代模式、它说"迭代模式需要设置为通用初始模式"、使用代码来表示它就像这样:

serdes_lane_enable_params1.iteration_mode = CSL_SERDES_RANE_ENABLE_COMON_INIT;
通道_retval = CSL_SerdesLaneEnable (&SerDes_lane 启用参数1);

serdes_lane_enable_params1.iteration_mode = CSL_SERDES_RANE_ENABLE_RANE_INIT;
通道_retval = CSL_SerdesLaneEnable (&SerDes_lane 启用参数1);

我的问题是什么是 迭代模式? 我在 SerDes 用户指南中找不到它,为什么要先将它设置为公共初始化,然后再将它设置为通道初始化?

CSL_SerdesLaneEnable() 调用 CSL_SerdesSetTXIdle(),在 CSL_SerdesSetTXIdle()中,代码“CSL_FINSR (*(volatile UINT32_t *)(base_addr + 0x200*(lane + 1)+ 0x0b8),17,3 * (volatile UINT32_t *),认为代码 是0x0b8 + 0x200*+ 0x200*(addr + 0x200*),0x02323+ 0xa+ 0xb8),0xa+ 0xa+ 0xa0b8),0xa+ 0xa2 (0xa2),代码是0xa2),0xa2 但在 SerDes 用户指南第16.1章存储器映射中,找不到偏移地址0x02b8,该代码有错误吗? 或者、因为我没有查看正确 的用户指南。

CSL_SerdesLaneEnable() 调用 CSL_SerdesLaneEnable_Lane_Init_RX (), 而 CSL_SerdesLaneEnable_Lane_Init_RX ()调用 CSL_SerdesWaitForSigDet(), CSL_SerdesWaitForSigDet()旨在 等待并检测 RX 信号  

CSL_IDEF_INLINE void CSL_SerdesWaitForSigGet (uint32_t base_addr、uint32_t lannel_num)

uint32_t retval = 0;

while (retval!= 1)

RetVal =(CSL_SERDES_STATUS) CSL_FEXTR (*(volatile UINT32_t *)
(base_addr + 0x1ff4)、(0 + lane _num)、(0 + lane num));

程序 运行到这些代码行、 进入"死 循环"、 端口0被插入到电缆中。  为什么方案 遇到这种情况?  

此致、

Zac

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    1、Serdes UG 指南中不存在 iteration_mode。 它只是我们在软件中创建的一个变量名称。 过去、我们没有对 common_init 和 lane 进行单独处理。 我们一起完成了所有初始化、有一个用例、即客户只希望串行器/解串器接口的选定通道被初始化(并非所有4个串行器/解串器通道)、这无法正确处理、因此我们将初始化分为两个部分:common_init 和 lane。

    2.串行器/解串器用户指南为 :www.ti.com/.../spruho3a.pdf。 它是真偏移量0x2b8标记为保留、不会公开。 TI Processor SDK RTOS 的用户不应修改 Serdes 配置源代码。

    3、代码是一个无限循环、直到检测到 RX 信号。 除了电缆连接外、您还需要确保另一端向外发送信号。

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

    您好!

    1.我已经知道你说了什么,我忽略了这个问题。

    2.我读 了你给我的 UG、我仍然找不到偏移量0x2b8、我将向你展示我已经检查过的内存映射、你能帮我检查我是否读取了正确的内存映射吗?

    偏移量0x2AC-0x3BC 是保留的、因此我找不到它。

    3.什么类型的信号是 RX 信号? 电缆的另一侧连接到 PC,PC 通过电缆向 EVM 发送一些数据包,但仍无法检测到信号。 有趣的是,当我断开电缆与 EVM 的连接时,它会检测到信号,并退出 无限循环,我 不明白为什么。

    此致。

    Zac

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

    2)对于2)来说、SGMII 是 PHY-A 4通道、但您看了 PHY-A 2通道。 但是、这不会产生任何影响、这些偏移量0x2b8保留在文档中。

    3) 3)请告诉我您使用的是哪个 Procsseor SDK RTOS 版本? 什么是回送模式:
    cpswLpbkMode = CPSW_LOOP_INTERNAL? 如果您使用环回、则不需要以太网电缆。 如果您使用 cpswLpbkMode = CPSW_LOOP_NONE、则意味着您需要使用以太网电缆与外部世界进行通信。

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

    您好!

    2) 这些偏移量0x2b8是保留的,您意味着客户无需知道它,对吧?

    3)我使用 MCSDK_3_01_04_07,环回模式为 CPSW_LOOP_NONE,以太网电缆已连接到 PC。

    此致、

    Zac

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

    2) 2)正确。 您无需知道这些保留的寄存器。
    3) 3) MCSDK 3.1.4.7已停产、并替换为 Processor SDK RTOS。 最新版本为4.0 software-dl.ti.com/.../index_FDS.html。 您是否可以尝试使用此版本?
    -对于 CPSW_LOOP_INTERNAL、您是否需要插入以太网电缆以通过 RX 信号检查?
    -在 CPSW_LOOP_NONE 情况下、如果没有电缆、RX 信号检查是否通过? 电缆会永远卡住吗?

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

    Eric、

    我稍后将尝试使用新的 SDK RTOS, 也会尝试使用 CPSW_LOOP_INTERNAL。

    使用 CPSW_LOOP_NONE、不使用互联网电缆、 RX 信号检查通过、 而使用互联网 电缆、它会永久卡住。 你是对的,我仍然不知道为什么。