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-J721E:在 U-Boot 2024.04中启用 CPSW9G 以太网

Guru**** 2392095 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1499419/processor-sdk-j721e-enable-cpsw9g-ethernet-in-u-boot-2024-04

器件型号:PROCESSOR-SDK-J721E

工具/软件:

您好、专家、

平台:J721e
构建系统:Yocto
内核:6.6.
U-Boot:2024.04

我们将从 U-Boot 2023.04改为2024.04。 我们拉了标签10.01.10并将我们的 DTS-changes 放在上面。 在以前版本的 SDK (8.2)中、有一些补丁可让 CPSW9G 主交换机在 U-Boot 中运行、由 。 由于我们现在处于较新的标签(10.01.10)、这些补丁不再有效。

我正在尝试使 CPSW9G 以太网端口再次工作。 引导过程如下所示:

U-Boot 2024.04-ti-g821fb6c64491 (Apr 09 2025 - 13:04:37 +0000)

SoC:   J721E SR2.0 HS-FS
Model: Schneider Electric AS-P-3
DRAM:  2 GiB
/drivers/clk/clk-uclass.c:114-clk_get_by_index_tail() prop: returning err=-2
Core:  147 devices, 33 uclasses, devicetree: separate
MMC:
Loading Environment from SPIFlash... /drivers/mtd/spi/spi-nor-core.c:4001-  spi_nor_soft_reset() jedec_spi_nor flash@0: Software reset enable failed: -524
/drivers/soc/ti/k3-navss-ringacc.c:1020- k3_nav_ringacc_init() k3-navss-ringacc ringacc@2b800000: Ring Accelerator probed rings:286, gp-rings[96,20] sci-dev-id:235
/drivers/soc/ti/k3-navss-ringacc.c:1025- k3_nav_ringacc_init() k3-navss-ringacc ringacc@2b800000: dma-ring-reset-quirk: disabled
/drivers/spi/cadence_qspi.c:1599-cadence_spi_mem_do_calibration() cadence_spi spi@47050000: Pattern not found. Skipping calibration
SF: Detected w25q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Failed to probe am65_cpsw_nuss driver
/drivers/clk/clk-uclass.c:114-clk_get_by_index_tail() prop: returning err=-2
/drivers/clk/clk-uclass.c:114-clk_get_by_index_tail() prop: returning err=-2
/drivers/clk/clk-uclass.c:114-clk_get_by_index_tail() prop: returning err=-2
/drivers/clk/clk-uclass.c:114-clk_get_by_index_tail() prop: returning err=-2
/drivers/phy/cadence/phy-cadence-sierra.c:1130-cdns_sierra_phy_probe() cdns,sierra serdes@5020000: sierra probed
Net:   /net/eth-uclass.c:454-      eth_initialize() No ethernet found.
Hit any key to stop autoboot:  0
=>

所有相关代码似乎都在最新的10.01.10标签中。 有人能帮助我让它再次工作吗?

此致、

/BO

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

    更新了。

    我注意到根本没有探测 am65_cpsw_Nuss 驱动程序( am65_cpsw_probe_Nuss 函数中没有 printf:s 有效)。 我不得不补充:

    &cpsw0 {
    +    compatible = "ti,j721e-cpsw-nuss";
    The updated k3-j721e-main.dtsi had:
            compatible = "ti,j721e-cpswxg-nuss";
    这使得驱动器不会进行探测。 这现已解决、下一个问题是 phy_connect:
    /drivers/net/ti/am65-cpsw-nuss.c:791-am65_cpsw_probe_nuss() am65_cpsw_nuss ethernet@c000000: K3 CPSW: nuss_ver: 0x6BA01901 cpsw_ver: 0x6BA80101 ale_ver: 0x00294104 Ports:8
    /drivers/clk/clk-uclass.c:112-clk_get_by_index_tail() prop: returning err=-2
    /drivers/clk/clk-uclass.c:112-clk_get_by_index_tail() prop: returning err=-2
    /drivers/clk/clk-uclass.c:112-clk_get_by_index_tail() prop: returning err=-2
    /drivers/clk/clk-uclass.c:112-clk_get_by_index_tail() prop: returning err=-2
    /drivers/phy/cadence/phy-cadence-sierra.c:1130-cdns_sierra_phy_probe() cdns,sierra serdes@5020000: sierra probed
    Net: /net/mdio-uclass.c:190- dm_mdio_post_probe() cpsw_mdio mdio@f00: couldn't get reset-gpios: -16
    /drivers/net/ti/am65-cpsw-nuss.c:631- am65_cpsw_phy_init() am65_cpsw_nuss_port ethernet@c000000port@1: phy_connect() failed
    /net/mdio-uclass.c:190- dm_mdio_post_probe() cpsw_mdio mdio@f00: couldn't get reset-gpios: -16
    /drivers/net/ti/am65-cpsw-nuss.c:631- am65_cpsw_phy_init() am65_cpsw_nuss_port ethernet@c000000port@3: phy_connect() failed
    /net/mdio-uclass.c:190- dm_mdio_post_probe() cpsw_mdio mdio@f00: couldn't get reset-gpios: -16
    /drivers/net/ti/am65-cpsw-nuss.c:631- am65_cpsw_phy_init() am65_cpsw_nuss_port ethernet@c000000port@4: phy_connect() failed
    /net/eth-uclass.c:489- eth_initialize() No ethernet found.
    从 am65_cpsw_phy_init ()函数来看、使用较新的 DM-architecture 的变化从~10个月前开始:
    static int am65_cpsw_phy_init(struct udevice *dev)
    {
    	struct am65_cpsw_priv *priv = dev_get_priv(dev);
    	struct eth_pdata *pdata = dev_get_plat(dev);
    	struct phy_device *phydev;
    	u32 supported = PHY_GBIT_FEATURES;
    	int ret;
    
    	phydev = dm_eth_phy_connect(dev);
    	if (!phydev) {
    		dev_err(dev, "phy_connect() failed\n");
    		return -ENODEV;
    	}
    
    	phydev->supported &= supported;
    	if (pdata->max_speed) {
    		ret = phy_set_supported(phydev, pdata->max_speed);
    		if (ret)
    			return ret;
    	}
    	phydev->advertising = phydev->supported;
    
    	priv->phydev = phydev;
    	ret = phy_config(phydev);
    	if (ret < 0)
    		dev_err(dev, "phy_config() failed: %d", ret);
    
    	return ret;
    }
    
    感谢获得此功能的提示。
    此致、
    /BO
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新2.

    我的三个网络接口现在可以正常工作。 我将复位 GPIO 放在 MDIO 节点下、而不是 phy-nodes 下。 现在看起来像这样:
    &cpsw9g_mdio {
    	status = "okay";
    	reset-delay-us = <20>;
    
    	cpsw0_phy0: ethernet-phy@0 {
    		reset-gpios = <&main_gpio0 8 GPIO_ACTIVE_LOW>;
    		reg = <0>;
    		compatible = "ethernet-phy-ieee802.3-c22";
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
    		ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    		ti,min-output-impedance;
    	};
    
    	cpsw0_phy4: ethernet-phy@4 {
    		reset-gpios = <&main_gpio0 9 GPIO_ACTIVE_LOW>;
    		reg = <4>;
    		compatible = "ethernet-phy-ieee802.3-c22";
    		rx-internal-delay-ps = <1>;
    		tx-internal-delay-ps = <0>;
    	};
    
    	cpsw0_phy5: ethernet-phy@5 {
    		reset-gpios = <&main_gpio0 10 GPIO_ACTIVE_LOW>;
    		reg = <5>;
    		compatible = "ethernet-phy-ieee802.3-c22";
    		rx-internal-delay-ps = <1>;
    		tx-internal-delay-ps = <0>;
    	};
    };
    
    此主题可以关闭。
    /BO