Pregunta

Hace

A los pocos meses que tenía que escribir una pequeña herramienta para programar la EEPROM de un RTL8139-tarjeta. Es básicamente el RTL8139-diag herramienta simplificada para leer / escribir la memoria EEPROM.

Esta herramienta tiene que extender a ser capaz de programar la EEPROM de RTL8101-cards ahora. Esto no fue un problema, ya que la interfaz a la EEPROM es similar a la de la rtl8139. En realidad, la única diferencia es el contenido de la EEPROM-archivo.

Lo que quiero poner en práctica es una detección automática que comprueba, si la tarjeta en el puerto dirección dada es una RTL8139 o RTL8101 y selecciona el ajuste EEPROM-dump. No puedo determinar la diferencia de estos chips con la lectura de la EEPROM como las cartas para ser programados son 'virgen' y la EEPROM-contenido es básicamente 0xffff.

Me di cuenta, de que Linux siempre carga el controlador apropiado para estas tarjetas, sin tener en cuenta el contenido de la EEPROM. Por lo que creo, que sólo tengo que leer el chip de identificación de la tarjeta.

¿Cómo se hace eso?

¿Fue útil?

Solución

Creo que es posible que lspci o lspci -vv te ayudará. (Es posible que tenga que ser root.)

Es decir, si el ID de PCI se encuentra en la tarjeta, y no se determina a partir de la EEPROM, usted debe ser capaz de utilizar lspci para obtener de la tarjeta de identificación PCI y determinar qué tarjeta que está trabajando.

La opción -n le dará los números en bruto, que probablemente será más útil si estás secuencias de comandos esto.

Como alternativa, se puede leer desde / sys / devices / pci * / * / dispositivo y proveedor para encontrar esos valores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top