【问题标题】:eth_device structure handling in U-boot sourceU-boot 源码中的 eth_device 结构处理
【发布时间】:2021-11-06 14:02:09
【问题描述】:

U-boot 源代码中,miiphy_init()phy_init() 函数正在初始化 mii_dev 和 phy_driver 结构的全局变量。 我正在寻找将创建/初始化全局 structure eth_device 变量并在运行时维护/使用它的来源。

基本上我想了解谁将创建eth_device 结构以及在运行时如何处理它。

【问题讨论】:

    标签: u-boot


    【解决方案1】:

    struct eth_device 仅由不遵循驱动程序模型的已弃用驱动程序使用。这些应该已在 v2020.07 版本中删除。

    结构体填充在驱动程序初始化例程中,例如lan91c96_initialize()。只需 grep for 'eth_register(' 即可找到所有这些函数。

    结构检索如下:

    struct eth_device *dev = eth_get_dev_by_name(bus->name);
    

    【讨论】:

    • 在传统中(没有驱动模型),当我们使用 phy_register 注册 PHY 驱动时,它是如何链接到 MAC 驱动的?我的理解是 PHY 芯片可以通过带有 MII/MDIO 接口的 MAC 进行通信,所以如果我们想访问 PHY 寄存器,那么 MAC 驱动程序应该维护它可以通信的 PHY 驱动程序。
    • 在驱动程序模型之前,MAC 设备由struct eth_device *eth_devices 中的eth_legacy.c 维护,并在此文件中定义函数以浏览eth_devices 列表。使用驱动程序模型如何维护 MAC 设备?能不能指导理解一下。
    • 在驱动模型中,设备树定义了哪些设备存在。如果网卡使用PCI或USB总线,则通过总线的即插即用机制进行检测。
    猜你喜欢
    • 2015-11-16
    • 2017-08-06
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 2019-03-23
    • 1970-01-01
    相关资源
    最近更新 更多