eth_device U-boot 源中的结构处理

eth_device structure handling in U-boot source

U-boot 源代码中,miiphy_init() and phy_init() 函数正在初始化 mii_dev 和 phy_driver 结构的全局变量。 我正在寻找将 create/initialise 全局 structure eth_device 变量和 maintain/use 在 运行 时间内 maintain/use 变量的来源。

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

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

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

结构是这样检索的:

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