分析网卡通过i2c总线从e2prom中读取mac地址过程

本文分析了在Loongson3A系列CPU与Loongson2H桥片开发板上,网卡如何利用I2C总线从E2PROM读取独特的MAC地址。在初始化过程中,I2C驱动被用于通信,虽然I2C总线时序在此未详述,但完整流程可在龙芯开源社区找到相关源码。
摘要由CSDN通过智能技术生成


平台:loongson3A系列CPU+loongson2H桥片的开发板.

每个网卡都有一个独一无二的mac地址,一般这个地址就存放在一个e2prom中,这里就是分析一个网卡初始化过程中,怎么从这个e2prom中读取mac地址。

首先这里的e2prom和cpu的i2c控制器相连接,也就是说最后访问这个设备时,使用的是i2c总线的驱动。
i2c总线的时序这里就不介绍了,大家可以看一个i2c设备的手册,其中时序部分讲解的就很详细了。

源码在龙芯开源社区:http://www.loongnix.org/cgit。

网卡的源码:drivers/net/ethernet/stmicro/stmmac
stmmac_open->stmmac_check_ether_addr->stmmac_eep_get_mac_addr->i2c_transfer


这里是网卡初始化过程中函数调用关系,在最后去取mac地址时调用到函数i2c_transfer,这就是i2c驱动中的代码,下面看这个函数的调用关系:

i2c驱动源码:drivers/i2c/busses/i2c-ls2h.c

i2c_transfer-->__i2c_transfer-->adap->a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值