lire la puce-id de pci / pcie carte
-
18-09-2019 - |
Question
Il y a quelques mois je devais écrire un petit outil pour programmer l'eeprom d'une rtl8139-carte. Il est essentiellement rtl8139-diag outil Bx_boom lecture / écriture du eeprom.
Cet outil doit être étendre à pouvoir programmer l'eeprom de rtl8101 cartes maintenant. Ce ne fut pas un problème, car l'interface est l'eeprom similaire à celui des rtl8139. En fait, la seule différence est le contenu du fichier eeprom.
Ce que je veux mettre en œuvre est une auto-détection qui vérifie, si la carte au port adresse donnée est un rtl8139 ou rtl8101 et sélectionne le eeprom-décharge de montage. Je ne peux pas déterminer la différence de ces puces en lisant le eeprom comme les cartes à programmer sont « vierges » et l'Eeprom-contenu est essentiellement 0xffff
.
J'ai remarqué, que Linux charge toujours le pilote approprié pour ces cartes, quel que soit le contenu du eeprom. Donc, je pense, que je viens de lire la puce-ID de la carte.
Comment puis-je faire?
La solution
Je pense que vous pouvez trouver lspci
ou lspci -vv
vous aidera. (Vous devrez peut-être root.)
Autrement dit, si l'ID PCI est défini dans la carte, et non déterminée à partir du eeprom, vous devriez être en mesure d'utiliser lspci
pour obtenir l'identifiant PCI de la carte et déterminer quelle carte vous travaillez avec.
L'option -n
vous donnera les chiffres bruts, ce qui sera probablement plus utile si vous scripting cela.
Vous pouvez lire / sys / devices / pci * / * / appareil et fournisseur pour trouver ces valeurs.