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.

[参考译文] TDA4VM-Q1:TDA4VM RTOS 0806:如何配置 SGMII 和 TH 端口?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1428810/tda4vm-q1-tda4vm-rtos-0806-how-to-config-sgmii-and-eth-port

器件型号:TDA4VM-Q1
主题中讨论的其他器件:TDA4VM

工具与软件:

您好!
TDA4VM RTOS 0806
现在、我的设计是  

 我使用了预编译 SD 卡、  
 
如何在 RTOS 和 Linux 端修改代码
以便在 Linux 端生成相应的 ethn?

谢谢。
dongzhang

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

    您好!

    默认情况下、在来自 U-boot 的 PCIe + QSGMII 中为多链路启用了串行器/解串器0。

    如果您要在 SGMII 模式下使用 SGMII2、需要从 u-boot 配置串行器/解串器。
    串行器/解串器驱动程序不支持默认 SGMII、需要将串行器/解串器驱动程序和器件树的补丁更新为 SGMII。

    请参阅以下 E2E 中的串行器/解串器驱动程序+器件树更改补丁。
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1424970/tda4vm-q1-serdes0-4-configured-as-sgmii-interface-in-linux-native-driver-mode

    如果不使用 PCIe、则可以从 ETHFW 启用 SerDes0并在 SGMII 模式下配置。

    如上所述、ETHFW 默认将端口2配置为 TI SDK 中的 QSGMII、您需要更新为 SGMII、并调用 SGMII (Board_serdesCfgSgmii)而不是 QSGMII (Board_serdesCfgQsgmii)的串行器/解串器配置。
    此外、您需要注意应用程序(ethfw server main.c)中电路板特定的更改以启用所需的端口、并且需要更新电路板 src 文件("ethfw\utils\board\evm\j721e\board_j721e_evm.c")以进行端口配置。

    此外、有关移植到定制板的信息、请参阅下面的 ETHFW 移植指南。
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/ethfw/docs/user_guide/ethfw_c_porting_top.html

    此致、
    Sudheer

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

    谢谢!
    我们使用 tda4vm serdes0通道1和 serdes1通道1作为 SGMII 接口与其他器件进行通信。
    我使用了上面地址提供的补丁。 但是失败了,不能 ping succ...

    下面修改了器件树、请帮助我检查修改过程中是否有任何问题?

    &serdes_ln_ctrl {
    idle-states=<J721E_SERDES0_LANE0_PCIE0_LANE0>,<J721E_SERDES0_LANE1_QSGMII_LANE2>, //use serdes0 Lan1
    <J721E_SERDES1_LANE0_PCIE1_LANE0>, <J721E_SERDES1_LANE1_SGMII_LANE1>, //use serdes1 Lan1
    <J721E_SERDES2_LANE0_PCIE2_LANE0>, <J721E_SERDES2_LANE1_PCIE2_LANE1>,
    <J721E_SERDES3_LANE0_USB3_0_SWAP>, <J721E_SERDES3_LANE1_USB3_0>,
    <J721E_SERDES4_LANE0_EDP_LANE0>, <J721E_SERDES4_LANE1_EDP_LANE1>,
    <J721E_SERDES4_LANE2_EDP_LANE2>, <J721E_SERDES4_LANE3_EDP_LANE3>;
    };
    
    &serdes0 {
    serdes0_sgmii_link: phy@1 {
    reg = <1>;
    cdns,num-lanes = <1>;
    #phy-cells = <0>;
    cdns,phy-type = <PHY_TYPE_SGMII>;
    resets = <&serdes_wiz0 2>;
    };
    };
    
    &serdes1 {
    serdes1_sgmii_link: phy@1 {
    reg = <1>;
    cdns,num-lanes = <1>;
    #phy-cells = <0>;
    cdns,phy-type = <PHY_TYPE_SGMII>;
    resets = <&serdes_wiz1 2>;
    };
    };
    
    &cpsw0_port2 {
    status = "okay";
    phy-mode = "sgmii";
    mac-address = [00 00 00 00 00 00];
    phys = <&cpsw0_phy_gmii_sel 2>, <&serdes0_sgmii_link>;
    fixed-link {
    speed = <1000>;
    full-duplex;
    };
    };
    
    &cpsw0_port4 {
    phy-mode = "sgmii";
    mac-address = [00 00 00 00 00 00];
    phys = <&cpsw0_phy_gmii_sel 4>, <&serdes1_sgmii_link>;
    fixed-link {
    speed = <1000>;
    full-duplex;
    };
    };

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

    您好!

    您能否共享 Linux 终端日志?

    此外、您能否确认是否使用了以下中的补丁?
    SGMII-Patches.zip

    此外、您能否确认已从 u-boot 禁用串行器/解串器配置。
    请确保以下配置已禁用、并且已从设备树中禁用串行器/解串器节点。

    CONFIG_PHY_CADENCE_SIERRA=n
    CONFIG_PHY_J721E_WIZ=n

    以上是为了确保 U-Boot 未配置串行器/解串器。


    此致、
    Sudheer

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

    1. 我  采用了  补丁 SGMII-Patches.zip 和 3542.0001-phy-cadence-Sierra 添加单链路 SGMII-PHY-configu.patch
     e2e.ti.com/.../SGMII_2D00_Patches-_2800_1_2900_.zip
    2. UBoot 未 配置  串行器/解串器。
    CONFIG_PHY_Cadence_Sierra = n
    CONFIG_PHY_J721E_WIZ=n

    3.  Linux 终端 日志 如下
    日志:e2e.ti.com/.../74382.log.txt

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

    您好!

    让我们检查日志并尽快更新您。

    此致、
    Sudheer

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

    您好、
    另一个问题是、在此版本0806网络中、仅在 Linux 模式下、修改 SGMII 不需要修改 RTOS 代码吗?
    谢谢

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

    root@J7-EVM:~# devmem2 0x500e000
    /dev/mem 打开。
    存储器映射在地址0xffa9660000处。
    在地址0x0500E000 (0xffa9660000)上读取:0x00003010
    root@J7-EVM:~# devmem2 0x5000408
    /dev/mem 打开。
    存储器映射在地址0xff97ff3000。
    在地址0x05000408 (0xff97ff3408)处读取:0x9A000000
    root@J7-EVM:~# devmem2 0x500040C
    /dev/mem 打开。
    已将内存映射至地址0xff89105000。
    在地址0x0500040C (0xFFff8910540c)处读取:0x92000000
    根@J7-EVM:~# devmem2 0x50004C0
    /dev/mem 打开。
    存储器映射在地址0xffa8000000。
    在地址0x050004C0 (0xffffff80004c0)处读取:0x70800000
    root@J7-EVM:~# devmem2 0x50004C4
    /dev/mem 打开。
    存储器映射在地址0xff8ef35000处。
    在地址0x050004C4 (0xffffff8ef354c4)处读取:0x00010002
    root@J7-EVM:~# devmem2 0x50004C8
    /dev/mem 打开。
    存储器映射在地址0xffb46a8000处。
    在地址0x050004C8 (0xFFffb46a84c8):0x00000000处读取
    root@J7-EVM:~# devmem2 0x50004CC
    /dev/mem 打开。
    存储器映射在地址0xff97f22000处。
    在地址0x050004CC (0xFFff97f224cc):0x00000002处读取
    root@J7-EVM:~# devmem2 0xc000204
    /dev/mem 打开。
    存储器映射在地址0xff92c70000处。
    在地址0x0C000204 (0xffffff92c70204)处读取:0x00000000
    root@J7-EVM:~# devmem2 0xc000210
    /dev/mem 打开。
    映射到地址0xfffb76fb000的存储器。
    在地址0x0C000210 (0xFFffb76fb210)处读取:0x00000021
    root@J7-EVM:~# devmem2 0xc000210
    /dev/mem 打开。
    存储器映射在地址0xff9ccb8000处。
    在地址0x0C000210 (0xffffff9ccb8210)处读取:0x00000021
    根@J7-EVM:~ devmem2 0xc000214
    /dev/mem 打开。
    在地址0xffad0c9000处映射存储器。
    在地址0x0C000214 (0xffffff0c9214)处读取:0x00000038
    root@J7-EVM:~# devmem2 0xc000218
    /dev/mem 打开。
    存储器映射在地址0xffa674d000。
    在地址0x0C000218 (0xFFffa674d218)处读取:0x00009801

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

    您好!  

    另一个问题是、在此版本的网络中、仅在 Linux 模式下、修改 SGMII 不需要修改 RTOS 代码吗?

    当您使用本机 Linux 驱动程序时、请确保不应在 MCU2_0上加载 RTOS ETHFW。

    RTOS 和 Linux 驱动程序无法同时访问 CPSW。  

    此致、  

    Sudheer

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

    您好!
    明白了、谢谢
    我们得到了   vx_app_rtos_linux_mcu2_0.out.bak 上的 MV vx_app_rtos_linux_mcu2_0.out
    而且日志和寄存器 是否正确?
    谢谢

    dongzhang

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

    您好!  

    [报价 userid="564217" url="~/support/processors-group/processors/f/processors-forum/1428810/tda4vm-q1-tda4vm-rtos-0806-how-to-config-sgmii-and-eth-port/5483237 #5483237"]映射地址为0xffffffad0c9000的内存。
    在地址0x0C000214 (0xffffff0c9214)处读取:0x00000038[/QUOT]

    链接似乎未建立。  

    读取时上方的串行器/解串器寄存器地址错误。 但是、从 SGMII 状态寄存器 PLL 来看、似乎已锁定。  

    [报价用户 id="564217" url="~/support/processors-group/processors/f/processors-forum/1428810/tda4vm-q1-tda4vm-rtos-0806-how-to-config-sgmii-and-eth-port/5483253 #5483253"]mv  vx_app_rtos_linux_mcu2_0.out vx_app_rtos_linux_mcu2_0.out.bak  

    您需要将 IPC 回显测试二进制文件软链接到 main_r5f0_0。

    vx_app 在创建视觉图像时可能启用了 ethfw。  

    您可以运行以下命令并检查远程 Core 日志。  

    #cat sys/kernel/debug/remoteproc/remoteproc*/trace0

    此致、  

    Sudheer

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

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

    您好!  

    看起来、从日志来看、MCU2_0中没有可用的打印。

    您是否还可以检查 MCU2_0二进制链接。  

    #ls -l /lib/fimware

    此致  

    Sudheer