Forum: PC Hard- und Software SPI Bios Chip flash CH341A


von Matthias J. (mr_fire_flower)



Lesenswert?

Hallo,
ich habe einen Laptop (Lenovo Thinkpad T14 Gen3) gebraucht gekauft, der 
scheinbar vorher einer Firma gehörte, deren IT-Abteilung ein 
BIOS-Passwort (Supervisor-PW) gesetzt hat. Dieses Passwort verhindert 
nicht, dass man in das Bios Menü kommt oder sogar die Installation eines 
neuen OS. Ich kann z.B. Windows 11 installieren, werde jedoch bei der 
Einrichtung aufgehalten, weil dann die Meldung kommt, ich müsse micht 
bei Firma xy in der Domäne anmelden. Ich habe bereits Kontakt mit der 
Firma aufgenommen und wurde sogar zu deren IT-Partner weitergeleitet. 
Leider wollten mir die Leute dort nicht das Passwort nennen und haben 
mir geraten, den Lenovo Support zu kontaktieren. Das habe ich auch getan 
und wurde auf deren Service-Partner verwiesen, der mir das Mainboard für 
eine stolze Summe tauschen will.

Nun habe ich mich ein wenig mit dem Thema BIOS-Passwort 
auseinandergesetzt und fühle mich in der Lage, den BIOS-Chip zu flashen. 
Ich habe das nötige Equipment, weil ich auch hin und wieder defekte 
Konsolen usw. repariere.
Ich habe mir für das Flashen den CH341a Programmer gekauft und einen 
1,8V Adapter, da der BIOS-Chip (Winbond W25R256JWEQ) mit 1,8V betrieben 
wird.

Da ich mir das BIOS nicht direkt schrotten wollte, habe ich zunächst 
versucht, das ganze an einem gleichen Chip zu probieren, den ich mir bei 
Digikey bestellt habe.

Meinen Test habe ich aber abgebrochen, weil die Programmiersoftware den 
Chip nicht kennt und dieser auch nirgenswo in einer Liste im Programm 
auswählbar ist. Den einzigen ähnlichen Chip, den ich fand ist der 
W25Q256JW... Der Unterschied ist laut Datenblatt (siehe Anhang) 
offensichtlich die Taktfreuquenzen von 104Mhz und 133Mhz.

Kann ich fürs Lesen und Beschreiben dieses Testchips auch den W25Q 
auswählen oder spielt das eine Rolle mit der Taktfrequenz? Ich habe 
irgendwo gelesen, dass die Daten ohnehin vom CH341a eh nur mit 5Mhz 
übermittelt werden. Ist das korrekt?

Wie ist das denn eigentlich generell mit diesen BIOS-Chips? Ich habe 
z.B. in meinem Fall nicht nur diesen einen EEPROM auf dem Chip, sondern 
auch einen anderen, der aber nur 16Mbyte hat. Das wäre glaube ich zu 
klein für das BIOS, da ich gesehen habe, dass in meinem Fall die 
BIOS-Datei mehr als 30MByte hätte. Also kann es doch nur dieser eine 
Chip sein oder?

Diese Aufforderung mit der Firmen-Domäne bei der Neuinstallation hat 
mich schon irgendwie gewundert. Wie weiß denn Windows nach der 
Installation, dass sich hier nur jemand aus Firma xy anmelden darf? Hat 
das auch was mit dem BIOS zu tun?

von Christoph Z. (christophz)


Lesenswert?

Matthias J. schrieb:
> Meinen Test habe ich aber abgebrochen, weil die Programmiersoftware den
> Chip nicht kennt und dieser auch nirgenswo in einer Liste im Programm
> auswählbar ist. Den einzigen ähnlichen Chip, den ich fand ist der
> W25Q256JW... Der Unterschied ist laut Datenblatt (siehe Anhang)
> offensichtlich die Taktfreuquenzen von 104Mhz und 133Mhz.

Für die Programmiersoftware ist wichtig, dass die Chip ID bekannt ist 
bzw. gleich ist bei deinem Chip und den Ausgewählten.

Das steht jeweils im Datenblatt. Könnte nach kurzer Recherche aber so 
sein, dass all Winbond W25Q256... die ID 0x4019 haben.

> Kann ich fürs Lesen und Beschreiben dieses Testchips auch den W25Q
> auswählen oder spielt das eine Rolle mit der Taktfrequenz? Ich habe
> irgendwo gelesen, dass die Daten ohnehin vom CH341a eh nur mit 5Mhz
> übermittelt werden. Ist das korrekt?

Schau mal in der Dokumentation deines Programmers nach bzw. in den 
Einstellungen deiner Programmiersoftware (Welche benutzt du 
eigentlich?). Die Taktfrequenz lässt sich oft einstellen.
Höchstwahrscheinlich wird dein Programmer viel langsamer als 100 MHz 
sein und entsprechend sollte es keinen unterschied machen.

von Matthias J. (mr_fire_flower)


Lesenswert?

Christoph Z. schrieb:
> Für die Programmiersoftware ist wichtig, dass die Chip ID bekannt ist
> bzw. gleich ist bei deinem Chip und den Ausgewählten.

> Das steht jeweils im Datenblatt. Könnte nach kurzer Recherche aber so
> sein, dass all Winbond W25Q256... die ID 0x4019 haben.

Ist das eine der Nummern, die noch auf dem Gehäuse des Chips steht? Also 
im Datenblatt finde ich leider nichts davon. Vielleicht kannst du mal 
schauen, ob du was findest. Die Datenblätter sind ja angehängt. Ich muss 
ja diese Nummer vom W25Q herausfinden, da ich nur die Nummer vom W25R 
ablesen kann. Im Internet finde ich jetzt auch nicht wirklich was 
dazu...

> (Welche benutzt du eigentlich?)

Ich habe die Software AsProgrammer, NeoProgrammer und die offizielle 
Software von der CH341A-Webseite probiert. Dann habe ich letztens noch 
was über Flashrom gelesen, was ja auf Konsole basiert. Würdest du eher 
Flashrom oder eines dieser GUI-Programme empfehlen?

: Bearbeitet durch User
von Marc X. (marc_x)


Lesenswert?

AsProgrammer ist ziemlich brauchbar. Du musst nur die ID in der 
chiplist.xml hinzufügen.

ID wäre „EF6019“

von Matthias J. (mr_fire_flower)


Lesenswert?

Also ich habe mir mal diese chiplist.xml angeschaut vom AsProgrammer.
Darin finde ich z.B. folgendes:

<W25Q128FW_1.8V id="EF6018" page="256" size="16777216"/>

Du sagtest, ich müsste einfach nur eine Zeile hinzufügen. Wäre also 
folgender Eintrag korrekt?

<W25R256JW_1.8V id="EF6019" page="256" size="33554432"/>

33554432 weil der chip ja 256MB (2x128) hat?

BTW wie hast du diese Chip-ID EF6019 gefunden?

von Marc X. (marc_x)


Lesenswert?

Matthias J. schrieb:
> Also ich habe mir mal diese chiplist.xml angeschaut vom AsProgrammer.
> Darin finde ich z.B. folgendes:
>
> <W25Q128FW_1.8V id="EF6018" page="256" size="16777216"/>
>
> Du sagtest, ich müsste einfach nur eine Zeile hinzufügen. Wäre also
> folgender Eintrag korrekt?
>
> <W25R256JW_1.8V id="EF6019" page="256" size="33554432"/>
>
> 33554432 weil der chip ja 256MB (2x128) hat?

Müsste so korrekt sein

> BTW wie hast du diese Chip-ID EF6019 gefunden?

Kapitel 8.1.1

von Matthias J. (mr_fire_flower)


Lesenswert?

Cool danke für die Hilfe. Der andere Chip W25Q... hat ja auch die ID 
6019, also hätte ich den Chip nehmen können. Ich probiers morgen mal 
aus.

von Marc X. (marc_x)


Lesenswert?

Matthias J. schrieb:
> Cool danke für die Hilfe. Der andere Chip W25Q... hat ja auch die ID
> 6019, also hätte ich den Chip nehmen können. Ich probiers morgen mal
> aus.

W25Q ist nicht gleich W25Q, keiner der Typen aus der chiplist.xml hat 
die gleiche Device ID, hätte also nicht funktioniert.

Ich wollte vor einiger Zeit selbst einen Programmer bauen und habe mir 
damals die chiplist.xml angeschaut, weil ich dachte ich könnte da 
einiges übernehmen, leider musste ich feststellen, das einige 
Definitionen nicht korrekt sind. Es macht daher Sinn die Definition im 
XML zu prüfen bevor wenn man mit einem bestimmten Chip arbeiten möchte.

von Matthias J. (mr_fire_flower)


Angehängte Dateien:

Lesenswert?

Also das Auslesen hat jetzt funktioniert. Danke für deine Hilfe. :)

Ich habe hier noch einen anderen Chip. ISSI IS25LP128.
Das ist ein Chip von einem älteren Laptop von HP, den ich mal irgendwann 
auf ebay gekauft habe. Da ist auch ein Bios-PW drauf.
Leider ist der Chip auch nicht in der Chiplist vom AsProgrammer drin. 
Jetzt wollte ich den hinzufügen und finde diese Device-ID wieder nicht 
oder kann sie nicht entschlüsseln.

Im Datenblatt (siehe Anhang) auf S. 22 gibts eine Tabelle, die ähnlich 
zu der von Winbond ist. In der chiplist.xml sind ID´s wie z.B. 9D4009...
Wie lautet für diesen Chip die ID, die man in die chiplist eintragen 
muss?

von Marc X. (marc_x)


Lesenswert?

Die Information findest du in Kapitel 8.25, theoretisch kannst du den 
Parameter id=„xxxxxx“ aber auch weg lassen, wichtig ist nur das die Page 
Size, die Gesamtgröße und das verwendete Instruction/Command Set korrekt 
sind.

Muss jetzt leider weg, du kannst ja schreiben ob du es hinbekommen hast. 
Ich schaue später noch mal rein.

von Marc X. (marc_x)


Lesenswert?

Hab jetzt noch mal kurz ins Datenblatt geschaut, mit dem Standard JEDEC 
RDID Befehl müsste die ausgelesene IS25LP128 Device ID 9D6018 lauten. 
Folgendes könnte also funktionieren:

<IS25LP128 id="9D6018" page="256" size="16777216"/>


Ich weiß nicht wie schnell der CH341A ist, bei den Speichergrößen kann 
es sein das man geduldig sein muss.

Mein Plan war es damals einen FT4222HQ zu verwenden um bei großen 
Speichern den schnellen Quad SPI Modus nutzen zu können.

von 13 1. (13_1)


Lesenswert?

Hallo, wollte mal fragen ob es bei dir funktioniert hat?

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? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.