Forum: Markt [S] Intel WGI211AT Ethernet chip oder jemanden, der bei Mouser bestellt


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marco V. (marcov)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie das gerne oft so ist, die Sammelbestellung bei Mouser ist vorgestern 
raus und jetzt brauche ich schnell ein Ersatzteil: Einen Intel WGI211AT 
Ethernet controller für ca. 3€.

Den gibt es zwar preiswert aus China, aber das dauert dann leider 3 
Wochen. Bestellt vielleicht jemand die Tage bei Mouser oder hat so ein 
Teil übrig?

Viele Grüße

von No Y. (noy)


Bewertung
0 lesenswert
nicht lesenswert
Du weißt aber das der programmiert werden muss?

von Marco V. (marcov)


Bewertung
0 lesenswert
nicht lesenswert
Das war mir leider nicht klar :(. Ist wohl doch komplexer als gedacht.

Auf der Synology scheint es ethtool zu geben. Vielleicht kann ich 
versuchen den alten Chip auszulesen, falls er noch mit sich reden lässt. 
Oder evt. auf einer anderen NAS einen funktionstüchtigen Chip auslesen 
und die MAC anpassen? Hab sowas noch nie gemacht. Aber wo ein Wille ist, 
ist auch ein Weg :)

von No Y. (noy)


Bewertung
0 lesenswert
nicht lesenswert
Das wird noch komplizierter...

1.Der i211 hat internes iNVM Flash.
Wenn ich mcih richtig erinnere ist das OTP. Also wenn dein ausgelesenes 
Image nicht passt, wirds teuerer bei jedem nötigen Versuch...

2. Ich weiß nicht ob ethtool den iNVM komplett vollständig auslesen 
kann.
Die Software im i211 ist mit Checksummen  gesichert wodurch halt alles 
zusammen passen muss. Mit ethtool lässt sich die MAC ändern / schreiben 
zumindest bei uns (i210 mit externem Flash, welches nicht OTP ist).

3. Ethtools kann den i211 wahrscheinlich nicht beschreiben. Ein leeres 
i210 / i211 meldet sich nicht als Ethernet Schnittstelle sondern als 
leeres i210/i211 PCIe Device. Schreiben geht aber glaube mit "flashrom" 
https://www.flashrom.org/Flashrom/1.1/Supported_Hardware
Aber ob das alles so passt weiß ich gerade nicht.

Wir nutzen das offizielle Intel Tool für ARM zumindest das gibts nur mit 
NDA über den FAE und dazu passend haben wir vom FAE auch die Intel 
Production Images welche dann geflasht werden und die MAC Adresse 
geändert. Aber halt alles NDA daher kann ich dir dabei nicht helfen.
Du kannst versuchen selber über Intel Forum / FAE daran zu kommen.
Wenn du aber pech hast nimmt deine Synology nicht einfach nur die Intel 
Images sondern irgendwas angepasstes. Und dann musst du noch irgendwie 
falshrom oder das Intel tool drauf bekommen..

Das x86 Intel Tool findet man ggf mit google für unser ARM hatte ich 
kein Glück mit Google..."intel eeprom access tool"

Ich würde mal schauen ob da beim i211 nicht irgendwo noch in Footprint 
für ein SPI Flash ist. Dann kann man wenigstens einen i210 verbauen + 
externes SPI Flash und mehrmals das Image/die Images testen..

von Marco V. (marcov)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sehr interessant. Vielen Dank für diese Einblicke!

Soweit ich das aus dem Datenblatt herauslesen konnte, ist der i211 quasi 
OTP. Er hat wohl ein paar Speicherzellen mehr als nötig und man kann 
"ein paar mal" schreiben, aber wenn die aufgebraucht sind, ist Ende. 
Darauf kann man sich wohl nicht verlassen.

Im Anhang die Daten, die ich mit dem ethtool auf der funktionierenden 
NAS auslesen konnte. Bei der anderen wird der i211 gar nicht 
initialisiert, da ist wohl nichts mehr zu holen.

Einen Footprint für nen SPI Flash gibt es leider nicht auf dem PCB. Die 
entsprechenden Pins gehen an Testpads bzw. Widerstände. Man könnte also 
evt. einen externen Speicher dranfummeln wenn man sich für einen i210 
entscheidet. Sehe ich das richtig, dass der i211 eigentlich nur eine 
abgespeckte Variante ist? Die Device ID wird eine andere sein, aber da 
auf der Synology einfach nur ein igb Treiber läuft, müsste der ja mit 
der gesamten Familie klar kommen.

Was ich gerade gefunden habe, sind die intel bootutils 
(https://downloadcenter.intel.com/de/download/29137/Ethernet-Intel-Ethernet-Connections-Boot-Utility-Preboot-Bilder-und-EFI-Treiber?product=64404).
Das Binary läuft auf der NAS, beschwert sich aber über einen fehlenden 
Treiber.
Connection to QV driver failed - please reinstall it!

Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.7.21.0
Copyright (C) 2003-2020 Intel Corporation

Saving flash firmware image on port 1 to file test.FLB...
ERROR: Unsupported feature

Port Network Address Location Series  WOL Flash Firmware                Version
==== =============== ======== ======= === ============================= =======
  1   001132557678     1:00.0 Gigabit YES FLASH Not Present

Den kann ich auf der Maschine leider nicht direkt bauen weil dazu der 
Compiler fehlt. Wenn ich den Treiber auf meinem PC kompiliere, mag die 
NAS ihn nicht.
insmod: ERROR: could not insert module /lib/modules/iqvlinux.ko: Invalid module format

Wird wohl an der völlig anderen Kernel Version liegen und vielleicht ist 
es auch das falsche Tool ;).

Im Intel Forum könnte ich mal nett nach dem "intel eeprom access tool" 
fragen und "flashrom" schaue ich mir auch mal an.

: Bearbeitet durch User
von No Y. (noy)


Bewertung
0 lesenswert
nicht lesenswert
Genau der i211 ist die "low cost" variante des i210 und der igb treiber 
sollte mit beiden klar kommen.
Wahrscheinlich hat synology sogar den i210 drauf gehabt in den 
prototypen und dann nen Flash mit Nadeln dran gehabt oder so.

Genau man kann den i211 mehfach beschreiben bzw. mehrmals die 
konfiguration hintereinander wenn man die "alte/falsche" komplett glaub 
mit 1 vollschreibt oder so war es. Der fängt irgendwie bei einer 
bestimmten kombination / magic word an die Konfiguration einzulesen.

Bei dem Tool kann ich dir nicht weiterhelfen, wie gesagt ich bin auf ARM 
unterwegs aber zumindest die Konsolen Ausgabe sieht sehr ähnlich aus.

Was der QV triber ist weiß ich nicht. Habe das Tool einfachheithalber 
statisch für unsere Plattform gebaut und kopiere es in der Produktion 
rein mit dem passenden i210 image / ist im produktions test image schon 
mit drauf und beschreibe bei uns das externe i210 spi falsh und setzte 
anschließend die MAC mit den ethtools. Dann fliegt das Tool und das 
Image wieder runter...


Bei x86 kann ich dir nicht weiterhelfen..

Ob dein Dump da oben korrekt ist kann ich momentan nicht beurteilen.
Ich schau mal ob ich ein diff machen kann für deinen dump mit den images 
die ich habe...


Edit: Brauch ich kein Diff machen.. Da ist ja quasi alles FF..
Zu den i211 hab ich kein image, es sind nur .txt Dateien mit einem Intel 
spezifischen "Assembler" Code welcher die standard konfigurationen an 
bestimmte stellen schreibt. Aber wie gesagt wir nutzen den i210 mit 
extern flash und dazu sind es .hex bzw. .img Dateien.

: Bearbeitet durch User
von No Y. (noy)


Bewertung
0 lesenswert
nicht lesenswert
Falls keiner dir in dem Intel Forum helfen mag...

Entweder du besorgst dir günstig eine Netzwerkkarte mit dem i211 oder 
halt i210:

https://www.idealo.de/preisvergleich/OffersOfProduct/5663008_-gigabit-ethernet-karte-i210-t1-intel.html

Und holst dir da das Flash + i210 runter und bastelst es auf deine NAS.
Oder aber du kaufst dir einen i210 und bastelst dir das Flash mit dran 
liest eine Netzwerkkarte (sofern du eine findest) mit i210 flash aus und 
schreibst das image in das drangebastelte Flash und hoffst das es geht.

Auch hier würde ich eher mit flashprog statt ethtools arbeiten...

Oder ich schau mal ob ich dir gegen Portoerstattung ein fertig 
programmiertes Flash für einen i210 besorgen kann. MAC Adresse kannst du 
ja selber mit den ethtools dauerhaft setzen.

Weißt du was deine NAS alles für Management features untersützt?
Ich weiß halt leider nicht, inwieweit die Standard Firmware images zu 
einer synology nas passen. Was die da alles ggf. verändert /angepasst 
haben damit es geht. Ggf. lesen die auch irgendwas aus um zu prüfen ob 
es ein "original" ist, damit man nicht zusätzliche Management Features 
aktivieren kann welche ggf. nur die "größeren NAS" unterstützen 
(sollen)..

Dazu passend, in der Intel Standard Konfigurationsdatei gibt es unter 
anderem folgenden Punkt für den i211:
Subsystem Vendor ID and Subsystem ID - Uncomment the following lines and 
insert the values.

Also synology könnte damit ihr eigenes image anpassen um darauf ggf. 
abzufragen...

Bei den i210 gibt es unterschiedliche device ids ob invm oder extern 
falsh genutzt wird. kann ggf. auch im Treiber / Software abgefragt 
werden...

: Bearbeitet durch User
von No Y. (noy)


Bewertung
0 lesenswert
nicht lesenswert
Ich kann dir ggf. doch noch einfacher helfen.
Hab hier eines unserer Boards mit Intel i210 + Flash.
Wenn ich das Flash entferne kann ich auch das iNVM vom i210 
programmieren. Anschließend ablöten und dir zuschicken.

Wäre zumindest ein Versuch.

Ließ Mal mit lspci bei deiner funktionierenden Synology die Devise ID 
usw. aus.

Ich schau mal welche der register vom Register dump in der konfiguration 
setzbar sind bzw. schau du Mal anhand von Datenblatt was in deinem 
eeprom dump an den Stellen wo kein fffffff ist normalerweise steht...

von Marco V. (marcov)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das wäre großartig. Vielen Dank für deine Hilfsbereitschaft!

Ansonsten scheint es wirklich sinnvoll zu sein, eine preiswerte i210 
Karte zu kaufen und als "Programmer" zu benutzen. Das ist ne gute Idee.

Mit Management läuft da nicht viel auf der DS218+, das ist eher ein 
Produkt für Heimanwender. WOL ist schon das höchste der Gefühle. Von 
daher denke ich, dass eine ganz rudimentäre Konfiguration funktionieren 
könnte.

lspci liefert zum Glück die Standard ID für einen programmierten i211:
01:00.0 Class 0200: Device 8086:1539 (rev 03)
  Subsystem: Device 8086:0000
  Flags: bus master, fast devsel, latency 0, IRQ 16
  Memory at 91100000 (32-bit, non-prefetchable) [size=128K]
  I/O ports at 2000 [size=32]
  Memory at 91120000 (32-bit, non-prefetchable) [size=16K]
  Capabilities: <access denied>
  Kernel driver in use: igb

Was den eeprom-dump angeht, da bin ich gar nicht sicher ob die Daten 
überhaupt sinnvoll sind. Ich kann nicht mal die MAC darin 
wiederfinden... der Output ist aber konsistent, also bei mehrmaligem 
Auslesen immer derselbe.
Ich werde jetzt auch noch mal durch die Registerlisten blättern und 
schauen, ob das doch irgendwie sinnvoll aussieht.

Grüße

von Marco V. (marcov)


Bewertung
0 lesenswert
nicht lesenswert
Hier steht auch noch eine Qnap NAS. Rate, welche Ethernet Chips darin 
werkeln... genau, 2x i211 :).

Deren eeprom dump sieht etwas anders aus. In den ersten 6 Bytes steht 
wirklich die MAC. Vermutung: Synology nutzt das MAC Feld irgendwie 
anders und überschreibt die Adresse dann beim booten... keine Ahnung.

Hier mal spaßeshalber der Diff zwischen Synology und Qnap (Letzte MAC 
Bytes durch 0x112233 ersetzt): https://www.diffchecker.com/gyirtosv

von Michael X. (Firma: vyuxc) (der-michl)


Bewertung
0 lesenswert
nicht lesenswert
Such mal im Netz nach den Intel quartzville tools. Dich interessiert 
davon Lanconf und/oder eeupdate. Gibts für Dos, efishell und Windows 
Dosbox. Es gibt dazu Beispieldateien in Textform um den invm bzw flash 
zu füllen.

von Marco V. (marcov)


Bewertung
0 lesenswert
nicht lesenswert
Das habe ich schon mehrfach danach versucht, aber letztendlich lande ich 
immer auf dubiosen Seiten in nicht-lateinischem Alphabet, die mit Google 
übersetzt aber nicht mehr richtig funktionieren. Bevor ich mir einen 
Virus einfange, lass ich das lieber. Aber wenn du einen konkreten Tipp 
hast... :)

Problematisch wäre aber auch, dass diese Tools wohl nicht für Linux zur 
Verfügung stehen und daher auch nicht nativ auf der Synology laufen 
würden. Vielleicht kann man es irgendwie über eine VM mit direktem 
Zugriff auf den PCI Bus hinbekommen?

Interessant ist ja auch, dass der igb Treiber Funktionen zum Auslesen 
des iNVMs mitbringt: 
https://github.com/torvalds/linux/search?q=invm&unscoped_q=invm Ich habe 
allerdings noch nie solche low-level Zugriffe probiert.

: Bearbeitet durch User
von No Y. (noy)


Bewertung
0 lesenswert
nicht lesenswert
Sooo,

hab dich nciht vergessen und gerade mal an unserem Board probiert.

Also unser externes Flash runtergelötet und er erkennt ein i210 mit 
iNVM.
Bei lspci meldet es sich als leer.

Habe dann das iNVM .hex eingespielt.
Diese Files wo man mit "intel assembler" konfigurieren kann, gehen nicht 
mit unserem ARM tool. Kann daraus keine hex Images erzeugen geschweige 
denn das iNVM beschreiben...

Hab also ein fertiges "I210_iNVM_APM.hex" image genommen was wir beim 
Tool dabei bekommen hatten und das geflashed.

Nach einem Reboot findet er mit lspci ein "programmiertes" i210 device.

Aber der igb treiber gibt zeigt mir keine Netzwerkschnittstelle mehr an.
Diese war aber vorher mit dem externen Flash vorhanden.

Da ich keine Netzwerkschnittstelle bekomme kann ich auch leider nicht 
die ETHTOOLS nutzen zum dumpen.

Wenn du magst kann ich dir den i210 hier schicken und auch das externe 
Flash wenn du willst. Aber ob der i210 ohne das externe Flash korrekt 
programmiert ist nun weiß ich nicht. Er meldet sich ja bei lspci richtig 
aber mein IGB treiber erkennt den nicht. Kann jetzt software sein oder 
nicht funktionierende iNVM images/hex files...

Wie gesagt diese Konfigurationssprache um daraus iNVM Hexfiles zu 
erzeugen kann ich nicht mit dem ARM Tool nutzen.

Wenn du die ICs haben willst sag per PN bescheid, denke normales 
Briefporto sollte reichen, kann es aber vorher mal wiegen mit ner ESD 
tüte zusammen...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.