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.

[参考译文] PROCESSOR-SDK-J784S4:串行器/解串器 (MAC 端口 8) PLL 未锁定。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1525278/processor-sdk-j784s4-serdes-mac-port-8-pll-is-not-locked

部件号:PROCESSOR-SDK-J784S4

工具/软件:

您好、

我有一个基于 EVM 的定制板。

在 EVM 上、MAC 端口 1、3、4、5 配置为 QSGMII 并连接到 ENET 扩展板。

在此定制板上、MAC 端口 8 通过 SGMII 连接到 PHY 88M222x。

我想快速修复、所以我没有创建新的电路板、而是尽可能重复使用 j784s4evm。

我通读了移植指南、这是相应的修改:

1. 选择以太网端口接口类型

--- a/pdk_j784s4_09_00_01_04/packages/ti/board/src/j784s4_evm/board_ethernet_config.c
+++ b/pdk_j784s4_09_00_01_04/packages/ti/board/src/j784s4_evm/board_ethernet_config.c
@@ -237,19 +237,25 @@ static void Board_ethPhyExtendedRegWrite(uint32_t baseAddr,
 static Board_STATUS Board_ethConfigCpsw9gEnet1(void)
 {
     Board_STATUS status = BOARD_SOK;
     uint8_t portNum;


     /* Configure the CPSW9G ENET1 QSGMII ports */
     for(portNum = 0; portNum < BOARD_CPSW9G_PORT_MAX; portNum++)
     {
         if ( 1U == portNum ||
              5U == portNum ||
-             6U == portNum ||
-             7U == portNum )
+             6U == portNum)
         {
             /* These ports are ununsed by default ENET1 board configuration */
             continue;
         }
+        else if (7U == portNum)
+        {
+            status = Board_cpsw9gMacModeConfig(portNum, SGMII);
+        }
         else if (BOARD_CPSW9G_ENET1_QGMII_PORTNUM == portNum)
         {
             status = Board_cpsw9gMacModeConfig(portNum, QSGMII);
@@ -264,6 +270,7 @@ static Board_STATUS Board_ethConfigCpsw9gEnet1(void)
             return BOARD_FAIL;
         }
     }

     return status;
 }

2. 通过 SciClient 启用模块

用于启用 CPSW9G 模块、因此  无需更改

 3. Pinmux 设置

MDIO/MDC 引脚、因此无需更改

4. 以太网 PHY 初始化

PHY RESET 引脚在上电时复位、因此无需更改。

5. SerDes 配置

我重复使用 EVM SGSgmii、但设置 Board_Cfg。

--- a/pdk_j784s4_09_00_01_04/packages/ti/board/src/j784s4_evm/board_serdes_cfg.c
+++ b/pdk_j784s4_09_00_01_04/packages/ti/board/src/j784s4_evm/board_serdes_cfg.c
@@ -166,6 +166,9 @@ static Board_STATUS Board_CfgQsgmii(uint32_t boardID)
     {
         laneNum  = BOARD_SERDES_SGMII_ENET1_LANE_NUM;
         laneMask = BOARD_SERDES_SGMII_ENET1_LANE_MASK;
+^M
+        laneNum  = BOARD_SERDES_SGMII_ENET2_LANE_NUM;^M
+        laneMask = BOARD_SERDES_SGMII_ENET2_LANE_MASK;^M
     }
     else
     {
@@ -180,14 +183,14 @@ static Board_STATUS Board_CfgQsgmii(uint32_t boardID)
     serdesLaneEnableParams.baseAddr          = CSL_WIZ16B8M4CT3_2_WIZ16B8M4CT3_BASE;
     serdesLaneEnableParams.refClock          = CSL_SERDES_REF_CLOCK_100M;
     serdesLaneEnableParams.refClkSrc         = CSL_SERDES_REF_CLOCK_INT0;
-    serdesLaneEnableParams.linkRate          = CSL_SERDES_LINK_RATE_5G;
+    serdesLaneEnableParams.linkRate          = CSL_SERDES_LINK_RATE_1p25G;^M
     serdesLaneEnableParams.numLanes          = 1U;
     serdesLaneEnableParams.laneMask          = laneMask;
     serdesLaneEnableParams.SSC_mode          = CSL_SERDES_NO_SSC;
-    serdesLaneEnableParams.phyType           = CSL_SERDES_PHY_TYPE_QSGMII;
+    serdesLaneEnableParams.phyType           = CSL_SERDES_PHY_TYPE_SGMII;^M
     serdesLaneEnableParams.operatingMode     = CSL_SERDES_FUNCTIONAL_MODE;
     serdesLaneEnableParams.phyInstanceNum    = BOARD_SERDES_LANE_SELECT_CPSW;
-    serdesLaneEnableParams.pcieGenType       = CSL_SERDES_PCIE_GEN4;
+    serdesLaneEnableParams.pcieGenType       = CSL_SERDES_PCIE_GEN3;^M

     serdesLaneEnableParams.laneCtrlRate[laneNum] = CSL_SERDES_LANE_FULL_RATE;
     serdesLaneEnableParams.loopbackMode[laneNum] = CSL_SERDES_LOOPBACK_DISABLED;

 6. CPSW 时钟配置

没有变化。

 7. MAC 地址池

没有变化。

8. MAC 端口和 PHY 配置

--- a/ethfw/utils/board/src/j784s4/board_j784s4_evm.c
+++ b/ethfw/utils/board/src/j784s4/board_j784s4_evm.c
@@ -238,6 +238,20 @@ static EthFwBoard_MacPortCfg gEthFw_qenetMacPortCfg[] =
         .sgmiiMode = ENET_MAC_SGMIIMODE_SGMII_WITH_PHY,
         .linkCfg   = { ENET_SPEED_AUTO, ENET_DUPLEX_AUTO },
     },
+    {   /* "P3" */
+        .macPort   = ENET_MAC_PORT_8,
+        .mii       = { ENET_MAC_LAYER_GMII, ENET_MAC_SUBLAYER_SERIAL },
+        .phyCfg    =
+        {
+            .phyAddr         = 1U,
+            .isStrapped      = false,
+            .skipExtendedCfg = false,
+            .extendedCfg     = NULL,
+            .extendedCfgSize = 0U,
+        },
+        .sgmiiMode = ENET_MAC_SGMIIMODE_SGMII_WITH_PHY,
+        .linkCfg   = { ENET_SPEED_AUTO, ENET_DUPLEX_AUTO },
+    },
 };
 
 
 diff --git a/vision_apps/utils/ethfw/src/app_ethfw_freertos.c b/vision_apps/utils/ethfw/src/app_ethfw_freertos.c
index bbdfd642..a9aad949 100644
--- a/vision_apps/utils/ethfw/src/app_ethfw_freertos.c
+++ b/vision_apps/utils/ethfw/src/app_ethfw_freertos.c
@@ -150,6 +150,7 @@ static Enet_MacPort gEthAppPorts[] =
     ENET_MAC_PORT_3, /* QSGMII sub */
     ENET_MAC_PORT_4, /* QSGMII sub */
     ENET_MAC_PORT_5, /* QSGMII sub */
+    ENET_MAC_PORT_8
 #endif
 };

@@ -158,19 +159,7 @@ static EthFw_VirtPortCfg gEthApp_virtPortCfg[] =
     {
         .remoteCoreId = IPC_MPU1_0,
         .portId       = ETHREMOTECFG_SWITCH_PORT_0,
-    },
-    {
-        .remoteCoreId = IPC_MCU2_1,
-        .portId       = ETHREMOTECFG_SWITCH_PORT_1,
-    },
-    {
-        .remoteCoreId = IPC_MPU1_0,
-        .portId       = ETHREMOTECFG_MAC_PORT_1,
-    },
-    {
-        .remoteCoreId = IPC_MCU2_1,
-        .portId       = ETHREMOTECFG_MAC_PORT_4,
-    },
+    }
 };

但 SERDES PLL 未锁定

 684.610592 s: Warning: Using 6 MAC address(es) from static pool

  684.610732 s: ETHFW: Shared multicasts (software fanout):

  684.610759 s:   01:00:5e:00:00:01

  684.610781 s:   01:00:5e:00:00:fb

  684.610801 s:   01:00:5e:00:00:fc

  684.610820 s:   33:33:00:00:00:01

  684.610840 s:   33:33:ff:1d:92:c2

  684.610860 s:   01:80:c2:00:00:00

  684.610879 s:   01:80:c2:00:00:03

  684.610900 s: ETHFW: Reserved multicasts:

  684.610917 s:   01:80:c2:00:00:0e

  684.610936 s:   01:1b:19:00:00:00

  684.611073 s: EnetMcm: CPSW_9G on MAIN NAVSS

  684.622237 s: PHY 1 is alive

  684.623510 s: CpswMacPort_setSgmiiInterface: MAC 8: SERDES PLL is not locked

  684.623549 s: CpswMacPort_setSgmiiInterface:
  684.623575 s: Assertion @ Line: 2287 in src/mod/cpsw_macport.c: false

您能给我一些指导吗? 谢谢!

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

    您好、

    >> serdesLaneEnableParams.phyInstanceNum  = Board_SERDES_LANE_SELECT_CPSW;
    输入电压 phyInstanceNum 设置为 0、从而使用串行器/解串器通道的 IP1 特性。
    默认情况下、设置为 1 以使用 串行器/解串器通道的 IP2 功能。 如果启用了 IP2、则表示它是 MAC 端口 2。

    此致、
    Sudheer

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

    谢谢! 随着变化、PLL 现在被锁定。 但是、我们仍然缺少 PHY 芯片的驱动程序。

    在任何情况下,我真的感谢你的支持!

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

    您好、

    谢谢! 随着更改、PLL 现在被锁定。

    很棒! 感谢您的更新。

    但是、我们仍然缺少 PHY 芯片的驱动程序。

    请联系 PHY 供应商、了解特定于 phy 驱动程序的信息。

    有关将 PHY 驱动程序集成到 PDK ENET 模块的信息、请参阅以下集成指南。
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j784s4/11_00_00_06/exports/docs/pdk_j784s4_11_00_00_21/docs/apiguide/j784s4/html/enetphy_guide_top.html

    如果您需要 TI 的任何支持、请创建新主题。

    此致、
    Sudheer