Domanda

Alcuni mesi fa ho dovuto scrivere un piccolo strumento per programmare l'eeprom di un rtl8139-card. E 'fondamentalmente la rtl8139-diag attrezzo ridotta per leggere / scrivere l'EEPROM.

Questo strumento deve essere estendere a essere in grado di programmare l'eeprom di RTL8101-cards ora. Questo non era un problema, come interfaccia nella EEPROM è simile a quella del rtl8139. In realtà, l'unica differenza è il contenuto della EEPROM-file.

Quello che voglio implementare è un rilevamento automatico che controlla, se la carta alla data porta-indirizzo è un rtl8139 o RTL8101 e seleziona il raccordo eeprom-dump. Non è possibile determinare la differenza di questi chip dalla lettura della EEPROM come carte da programmare sono 'vergine' e EEPROM-contenuti è fondamentalmente 0xffff.

Ho notato, che Linux carica sempre il driver adatta per queste schede, indipendentemente dal contenuto della EEPROM. Quindi penso, che non mi resta che leggere il chip-id della scheda.

Come faccio a farlo?

È stato utile?

Soluzione

Credo che si possono trovare lspci o lspci -vv vi aiuterà. (Potrebbe essere necessario essere root.)

Cioè, se l'ID PCI si trova nella carta, e non determinato dalla EEPROM, si dovrebbe essere in grado di utilizzare lspci per ottenere id PCI della scheda e determinare quale carta si sta lavorando.

L'opzione -n vi darà i numeri grezzi, che sarà probabilmente più utile se si sta script questo.

In alternativa, si poteva leggere da / sys / devices / pci * / * / dispositivo e fornitore di trovare quei valori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top