linux phy 初始化过程,以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取

以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取

作者:heaven 发布于:2020-1-7 14:42

分类:Linux内核分析

我们继续沿着上一篇的以太网思路来继续分析,目的是为了学习以太网这块从应用层到底层的整块加载和匹配流程。

如下是本人调试过程中的一点经验分享,以太网驱动架构毕竟涉及的东西太多,如下仅仅是针对加载流程和围绕这个问题产生的分析过程和驱动加载流程部分,并不涉及以太网协议层的数据流程分析。

【硬件环境】         Imx6ul

【Linux kernel版本】   Linux4.1.15

【以太网phy】        Realtek8201f

1.1 mii_bus初始化以及phy id的获取

然后进行mii的一些初始化fec_enet_mii_init(pdev);

主要是对struct mii_bus这里的成员进行初始化

/*

* The Bus class for PHYs. Devices which provide access to

* PHYs should register using this structure

*/

struct mii_bus {

const char *name;

char id[MII_BUS_ID_SIZE];

void *priv;

int (*read)(struct mii_bus *bus, int phy_id, int regnum);

int (*write)(struct mii_bus *bus, int phy_id, int regnum, u16 val);

int (*reset)(struc

你可能感兴趣的:(linux,phy,初始化过程)