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.

[参考译文] DP83TC812S-Q1:DP83TC812S 驱动器

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1311159/dp83tc812s-q1-dp83tc812s-drivers

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

您好,

TI 能否为我们提供 DP83TC812S 驱动程序? 我们的 SDK 版本是 ti-processor-sdk-linux-adas-j784s4-evm-09_00_01_03

谢谢!

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

    您好、Yao:

    https://www.ti.com/tool/ETHERNET-SW#downloads

    在这里、您可以找到我们的 以太网 PHY Linux 驱动程序和工具、包括 DP83TC812的驱动程序。

    此致、

    阿瓦塔

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

    我使用   https://git.ti.com/gitweb?p=ti-analogue-linux-kernel/analogue-linux.git;a=blob;f=drivers/net/phy/dp83tc812.c;h=0c594375f188d40299603628a0636947cfea35bf;hb=f973f3deb81b1f44aa4c33b275a342e28fc982fd 中的 dp83tc812.c 文件

    它显示构建错误:

    make[1]: Leaving directory '/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8'
    make -j 16 -C /home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8 ARCH=arm64 CROSS_COMPILE=/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-  Image
    make[1]: Entering directory '/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8'
      CALL    scripts/checksyscalls.sh
      CC      drivers/net/phy/dp83tc812.o
    drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’?
      524 |                 .ack_interrupt = dp83812_ack_interrupt,         \
          |                  ^~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:534:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’
      534 |         DP83812_PHY_DRIVER(DP83TC812_CS1_0_PHY_ID, "TI DP83TC812CS1.0"),
          |         ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’?
      524 |                 .ack_interrupt = dp83812_ack_interrupt,         \
          |                  ^~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:535:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’
      535 |         DP83812_PHY_DRIVER(DP83TC812_CS2_0_PHY_ID, "TI DP83TC812CS2.0"),
          |         ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’?
      524 |                 .ack_interrupt = dp83812_ack_interrupt,         \
          |                  ^~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:536:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’
      536 |         DP83812_PHY_DRIVER(DP83TC813_CS2_0_PHY_ID, "TI DP83TC813CS2.0"),
          |         ^~~~~~~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:524:18: error: ‘struct phy_driver’ has no member named ‘ack_interrupt’; did you mean ‘handle_interrupt’?
      524 |                 .ack_interrupt = dp83812_ack_interrupt,         \
          |                  ^~~~~~~~~~~~~
    drivers/net/phy/dp83tc812.c:537:9: note: in expansion of macro ‘DP83812_PHY_DRIVER’
      537 |         DP83812_PHY_DRIVER(DP83TC814_CS2_0_PHY_ID, "TI DP83TC814CS2.0"),
          |         ^~~~~~~~~~~~~~~~~~
    make[5]: *** [scripts/Makefile.build:250: drivers/net/phy/dp83tc812.o] Error 1
    make[4]: *** [scripts/Makefile.build:502: drivers/net/phy] Error 2
    make[3]: *** [scripts/Makefile.build:502: drivers/net] Error 2
    make[3]: *** Waiting for unfinished jobs....
    make[2]: *** [scripts/Makefile.build:502: drivers] Error 2
    make[1]: *** [Makefile:2012: .] Error 2
    make[1]: Leaving directory '/home/share/test/ethfw_vision/TDA4_J784S4_SDK/linux/board-support/linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8'
    make: *** [makerules/Makefile_linux:7: linux] Error 2
    

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

    此驱动程序有一个明显的错误,即缺少"phydev->priv = dp83720;":

    static int dp83812_probe(struct phy_device *phydev)
    {
    	struct dp83812_private *dp83812;
    	int ret;
    
    	dp83812 = devm_kzalloc(&phydev->mdio.dev, sizeof(*dp83812), GFP_KERNEL);
    	if (!dp83812)
    		return -ENOMEM;
    		
    	phydev->priv = dp83720;   //lack of this, it will case coredump.
    
    	ret = dp83812_read_straps(phydev);
    	if (ret)
    		return ret;
    
    	switch (phydev->phy_id) {
    	case DP83TC812_CS1_0_PHY_ID:
    		dp83812->chip = DP83812_CS1;
    	break;
    	case DP83TC812_CS2_0_PHY_ID:
    		dp83812->chip = DP83812_CS2;
    	break;
    	case DP83TC813_CS2_0_PHY_ID:
    		dp83812->chip = DP83813_CS2;
    		break;
    	case DP83TC814_CS2_0_PHY_ID:
    		dp83812->chip = DP83814_CS2;
    	break;
    	default:
    	return -EINVAL;
    	};
    /* vikram : above code added to switch between different phy ids */
    
    	return dp83812_config_init(phydev);
    }

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

    您好!

    我看到了这个问题,这里是一个新的驱动程序,我们已经测试了内核5.10。 请尝试告知我 seen.e2e.ti.com/.../5127.dp83tc812.c 是否出现了相同的错误

    此致、

    阿瓦塔  

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

    1.在我的 SDK 中、'ack_interrupt'不存在、构建失败、所以我将其删除、打开'handle_interrupt = dp83812_handle_interrupt'。 我可以这么做吗?

    2.有了最新的驱动程序,phy 运行良好,您能提供'DP.83TG720S-Q1'驱动程序吗?

    我发现问题,这里是一个新的驱动程序,我们已经测试可在内核5.10上运行。 [/报价]

    非常感谢您的支持。

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

    您好、Zheng、  

    1.是的,你可以这样做。  

    2. e2e.ti.com/.../4786.dp83tg720.c

    这是适用于  UCD3138系列器件的 DP83TG720S-Q1

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

    谢谢你这么多,你解决了我的问题!

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

    您好、Zheng、  

    很高兴你能来这里。  

    此致、

    阿瓦塔