用户空间中缺少I2C eeprom文件-SFP模块

时间:2018-11-28 08:45:13

标签: c linux-kernel linux-device-driver embedded-linux i2c

我有一些Linux内核和SFP / I2C驱动程序问题。

我正在为嵌入式板使用buildroot linux内核。

我需要能够读取SFP i2c设备的eeprom文件。

1。工作案例:

当从头开始(在内核加载之前)将SFP模块插入我的开发单元板上时,然后完成启动后,我可以在以下路径中查看和读取eeprom文件:/ sys / class / i2c-adapter / i2c- 1 / 1-0050 / eeprom

eeprom file exists

  • 内核在启动i2c设备扫描结果时打印:

enter image description here

2。无效的情况:

如果启动时没有插入SFP模块,并且内核完成了启动过程,那么当我将SFP模块插入其中时,请观察路径:

/ sys / class / i2c-adapter / i2c-1 / 1-0050 / 不包含eeprom文件。

eeprom file missing

  • sfp-eeprom代码的设备树部分:

enter image description here

我的猜测是,SFP驱动程序负责一旦插入SFP模块就应该发生的触发,并且应该触发eeprom文件的创建。

想问你我想念什么吗? 来自sfp驱动程序的一些绑定代码以触发i2c扫描还是其他?

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

找到了解决此问题的方法。

使用 ethtool -m 界面。

从ethtool手册页:

-m --dump-module-eeprom 从SFP +,QSFP

插件模块中检索EEPROM,并在可能的情况下对其进行解码