主题中讨论的其他器件:TDA4VM
工具与软件:
您好!
TDA4VM RTOS 0806
现在、我的设计是
我使用了预编译 SD 卡、
如何在 RTOS 和 Linux 端修改代码
以便在 Linux 端生成相应的 ethn?
谢谢。
dongzhang
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.
您好!
默认情况下、在来自 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
此致、
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
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
您好!
[报价 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的内存。链接似乎未建立。
读取时上方的串行器/解串器寄存器地址错误。 但是、从 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