3

几个月前,我不得不编写一个小工具来对 rtl8139 卡的 eeprom 进行编程。它基本上是剥离rtl8139-diag工具以读取/写入 eeprom。

现在必须扩展此工具才能对 rtl8101 卡的 eeprom 进行编程。这不是问题,因为 eeprom 的接口类似于 rtl8139 的接口。实际上,唯一的区别是 eeprom 文件的内容。

我想要实现的是一个自动检测,它检查给定端口地址的卡是否是 rtl8139 或 rtl8101 并选择合适的 eeprom-dump。我无法通过读出 eeprom 来确定这些芯片的区别,因为要编程的卡是“处女”并且 eeprom 内容基本上是0xffff.

我注意到,无论 eeprom 的内容如何,​​Linux 总是为这些卡加载合适的驱动程序。所以我认为,我只需要读取卡的芯片 ID。

我怎么做?

4

1 回答 1

2

我想你可能会找到lspcilspci -vv会帮助你。(您可能需要成为 root。)

也就是说,如果在卡中设置了 PCI id,而不是从 eeprom 确定,您应该能够使用lspci获取卡的 PCI id 并确定您正在使用哪个卡。

-n选项将为您提供原始数字,如果您正在编写脚本,这可能会更有帮助。

或者,您可以从 /sys/devices/pci*/*/device 和 vendor 中读取以找到这些值。

于 2009-08-18T21:25:41.297 回答