Forum: Mikrocontroller und Digitale Elektronik Wer kann mir ein BIOS Baustein GD25B127D programmieren


von Thomas W. (thomas100)


Lesenswert?

Hallo Forum,

ich habe hier ein defektes ASUS-Laptop, genauer der BIOS-Baustein müsste 
neu programmiert werden.
Es handelt sich um eine Gigadevice GD25B127D.

Ich habe leider keinen Programmer mehr, der diese Chips programmieren 
kann. Kann mir jemand diesen Chip programmieren oder einen 
Programmierdiest sagen, der das machen kann? Bei biosflash.com habe ich 
schon angefragt, die können das nicht. Segor macht das auch nicht mehr.

Danke für eure Antworten.

VG Thomas

von Stephan S. (uxdx)


Lesenswert?

Sofern der GD25B127D kompatibel zu einem der folgenden GD-Bausteine ist, 
kannst du flashrom nehmen. Der GD25B127D selbst steht in flashrom nicht 
dicht drin.
1
GD25B512MF
2
GD25F128F
3
GD25F256F
4
GD25F64F
5
GD25LB512MF
6
GD25LF128E
7
GD25LF256F
8
GD25LF512MF
9
GD25LQ128CD
10
GD25LQ16
11
GD25LQ255E
12
GD25LQ255E
13
GD25LQ32
14
GD25LQ40
15
GD25LQ64
16
GD25LQ80
17
GD25LR256E
18
GD25LR512ME
19
GD25Q10
20
GD25Q128
21
GD25Q128
22
GD25Q128
23
GD25Q16
24
GD25Q20
25
GD25Q256D
26
GD25Q32
27
GD25Q40
28
GD25Q512
29
GD25Q64
30
GD25Q80
31
GD25T80
32
GD25VQ16C
33
GD25VQ21B
34
GD25VQ41B
35
GD25VQ41B
36
GD25VQ80C
37
GD25WQ80E

von Oliver J. (skriptkiddy)


Lesenswert?

Ein FT232H [1] und ASProgrammer [2] sollten funktionieren. Es gibt auch 
andere kompatible Adapter. Ich habe es bisher allerdings nur mit CH341A 
und FT232H genutzt. Arduino als Adapter schaut ganz vielversprechend 
aus. Aber man muss auf Pegel achten. Der Flash verträgt keine 5V.

[1] https://amzn.eu/d/7Rt1Yse

[2] https://github.com/nofeletru/UsbAsp-flash

: Bearbeitet durch User
von Oliver J. (skriptkiddy)


Lesenswert?

Hier ist ein passender Thread bei Reddit:

https://www.reddit.com/r/razer/s/49WnvImdEB

von Dieter W. (dds5)


Lesenswert?

Könnte ich programmieren falls der passende Sockeladapter vorhanden ist.

von Thomas W. (thomas100)


Lesenswert?

Hallo Dieter,

Dieter W. schrieb:
> Könnte ich programmieren falls der passende Sockeladapter vorhanden ist.

welchen Adapter brauchst du? Der IC ist ein SOP-8 Gehäuse.

von Thomas W. (thomas100)


Lesenswert?

Oliver J. schrieb:
> Hier ist ein passender Thread bei Reddit:
>
> https://www.reddit.com/r/razer/s/49WnvImdEB
Das ist super. Danke. Danach wäre der Chip mit einem Windbond  W25Q128 
kompatibel. Das würde die Suche etwas vereinfachen


Stephan S. schrieb:
> Sofern der GD25B127D kompatibel zu einem der folgenden GD-Bausteine ist,
> kannst du flashrom nehmen. Der GD25B127D selbst steht in flashrom nicht
> dicht drin.

Wo hast du denn diese Liste gefunden? Ich würde gerne prüfen, ob der 
Windbond  W25Q128 damit programmiert werden kann?

von Dieter W. (dds5)


Lesenswert?

Da kann ich leider nicht mithalten. Für diese exotische 208 mil SO8 
Gehäusbreite hab ich keinen Adapter auf DIL für den Programmer.

von Stephan S. (uxdx)


Lesenswert?

Thomas W. schrieb:
> Wo hast du denn diese Liste gefunden? Ich würde gerne prüfen, ob der
> Windbond  W25Q128 damit programmiert werden kann?

Die steht in der Datei flashchips/gigadevice.c der Sourcen von flashrom 
1.6.0, jeweils die Zeilen mit '.model_id', Download siehe 
https://www.flashrom.org/release_notes/v_1_6.html

Für Winbond-ICs musst Du dann in der winbond.c nachsehen, da ist der 
W25Q128 drin - gerade nachgeshen

Falls Du den gängigen CH341 zum programmieren nehmen willst, lies Dir 
vorher https://flashrom.org/supported_hw/supported_prog/ch341ab.html 
durch

: Bearbeitet durch User
von Thomas W. (thomas100)


Lesenswert?

Ich habe an diesen Adapter gedacht:
https://www.amazon.de/EEPROM-Programmierer-CH341A-SOIC8-Adapter/dp/B09MHH6D8H

Hat den CH341A mit Quarz wie beschrieben und noch n bissl Zubehör dabei.
Das sollte ja klappen

von Manfred L. (egonotto)


Lesenswert?

Hallo,

ich hab aber in der Beschreibung des Programmierers nirgends den 
Gigadevice GD25B127D gefunden.

Zum Beispiel aus einer Beschreibung des EEPROM CH341A 24 25 Series Flash 
BIOS USB Programmer:
"
GIGADEVICE:
GD25Q512 GD25Q10 GD25Q20 GD25F40 GD25D40 GD25Q80 GD25D80 GD25T80 GD25F80
GD25Q16 GD25Q32 GD25Q64 GD25Q128
"

Aber vielleicht geht ja der GD25Q128?

MfG
egonotto

von Thomas W. (thomas100)


Lesenswert?

Aber der kompatible Winbond W25Q128. Mit dem sollte es klappen.

von Stephan S. (uxdx)


Lesenswert?

Thomas W. schrieb:
> Ich habe an diesen Adapter gedacht:
> https://www.amazon.de/EEPROM-Programmierer-CH341A-SOIC8-Adapter/dp/B09MHH6D8H
>
> Hat den CH341A mit Quarz wie beschrieben und noch n bissl Zubehör dabei.
> Das sollte ja klappen

Denke ich auch. Schau aber unbedingt nach, ob an Pin 28 des CH341 3.3 
Volt oder 5 Volt anliegen. Bei 5 Volt ist der beschriebene Umbau nötig, 
um die Flash-ICs nicht zu killen 
https://flashrom.org/supported_hw/supported_prog/ch341ab.html

Beitrag #7999654 wurde vom Autor gelöscht.
von Thomas W. (thomas100)


Lesenswert?

Stephan S. schrieb:
> Schau aber unbedingt nach, ob an Pin 28 des CH341 3.3
> Volt oder 5 Volt anliegen. Bei 5 Volt ist der beschriebene Umbau nötig,
> um die Flash-ICs nicht zu killen

Danke für den Hinweis. Werde vor dem ersten Einsetzen mal alle Pins mit 
dem Oszi prüfen, dass das nicht zu viel Spannung drauf ist.

von Stephan S. (uxdx)


Lesenswert?

Ich habe vor einiger Zeit erst mal 3 Flash-ICs gekillt, bis ich drauf 
gekommen bin. Der Artikel auf flashrom.org stammt von mir. Da gibt es 
Flash-ICs die recht robust sind und manche 3-Volt-Typen steigen schon 
bei 3.5 Volt aus (z.B. die von GigaDevices).

von Thomas W. (thomas100)


Angehängte Dateien:

Lesenswert?

Der Adapter ist da, ich habe dank Stephans Hinweis auch keine Chips 
gegrillt und ich kann auf Anhieb den Chip lesen.

Jetzt gleich aber das nächste Problem.
Das BIOS-File, das ich von der Webseite heruntergeladen habe, ist genau 
2048 Byte zu groß.
Wenn ich mir die Files im Hex-Editor anschaue, sehen die auch am Anfang 
unterschiedlich aus.
Lösche ich die ersten 2048 Byte, sieht das ganze immer noch anders aus.
Hat jemand ne Idee, wie ich die Originaldatei nutzbar machen kann?

Im Anhang mal die beiden Dateien.

: Bearbeitet durch User
von Stephan S. (uxdx)


Lesenswert?

Versuch doch mal, noch andere BIOS-Versionen runterzuladen. Vielleicht 
kommst Du dann auf die Version des kaputten BIOS.

Wandle die Binär-Dateien nach HEX (xxd datei.bin > datei.hex), dann 
findest Du leichter die Zonen, die zusammengehören. Optimal wäre 
natürlich, wenn Du die Version der defekt.bin wüsstest.

von Gerald B. (gerald_b)


Lesenswert?

Was für ein BIOS Hersteller ist das?
Wie ist die Bezeichnung des Flasprogrammes des Herstellers?
Ach ja, ein Link zum Board, bzw. die Boardbezeichnung wäre vielleich 
auch hilfreich.
Ich bin aus dem Thema schon etwas raus, aber AMI und Award hatten 
eigentlich immer die Binärfiles, auch wenn sie meist kreative 
Bezeichungen hatten.
Phoenix war mit seinen wph Files etwas tricky.
Ganz blöd wird es, wenn das Flastool da erst was entpackt, beim 
Schreiben. Wie das inzwischen bei UEFI gehandhabt wird, vermag ich nicht 
zu sagen.

von Stephan S. (uxdx)


Lesenswert?

Ich hab selber 2 MBs von ASUS und mir mal ein paar Updates der BIOSe 
angesehen, die sind immer etwas zu gross, nie genau 16 oder 32 MB gross. 
Da ist ein Overhead von 2048 oder 4096 Bytes am Anfang oder Ende. 16 MB 
wären genau 16777216 Bytes.

Musst Du denn den IC auslöten oder kannst Du direkt im MB flashen? Dann 
käme es auf einen versuch an.

von Gerald B. (gerald_b)


Lesenswert?

Stephan S. schrieb:
> Da ist ein Overhead von 2048 oder 4096 Bytes am Anfang oder Ende.

Das was bei Phoenix wph-Files auch so. Hinten dran 2 kb. Darin standen 
im Klartext Flashtypen. Wahrscheinlich eine Progammieranleitung für 
Phlash, das Phoenixflashtool.
Aber im 310 File ist ja nur Kauderwelsch.

von Harald K. (kirnbichler)


Lesenswert?

Gerald B. schrieb:
> Aber im 310 File ist ja nur Kauderwelsch.

Ich hab' mal  versucht, einen Vergleich der beiden Dateien anzustellen, 
aber das ist recht ausweglos.

Es gibt in "defekt" einen Text ("SendDebugString"), den findet man in 
der anderen Datei nur mit vier dazwischengeschobenen Bytes ("Sen<0xff 
0x7f 0xf6 0xff>dDebugString").
Die sind vielleicht eine Prüfsumme, oder eine Blockkennung, oder was 
auch immer.

Damit könnte die Datei aus 32-kByte-Blöcken bestehen, vor oder nach 
denen jeweils eine 4-Byte-Sequenz angeordnet ist.
(2048 / 4 = 512, 16 MB / 512 = 32 kB)

Allerdings ist der Offset des Textes in beiden Dateien komplett 
unterschiedlich, im einen Fall 0xbd5655, im anderen aber 0x2d6673 ...

Da ist wohl deutlich mehr kaputt.

von Thomas W. (thomas100)


Lesenswert?

Das Laptop ist ein Asus X512JA:

https://www.asus.com/de/supportonly/x512ja/helpdesk_bios/

Der BIOS-Hersteller ist American Megatrends.
Die BIOS-Version ist die 310. Einmal die runtergeladene und einmal die 
aus dem Chip.

Stephan S. schrieb:
> Musst Du denn den IC auslöten oder kannst Du direkt im MB flashen? Dann
> käme es auf einen versuch an.
Den kann ich im eingebauten Zustand lesen und beschreiben.
Hatte ihn erst ausgelötet und jetzt wieder drin.

: Bearbeitet durch User
von Dieter S. (ds1)


Lesenswert?

Zwei unterschiedliche Versionen:

1
defekt.bin   : F0031508.X512JA.308
2
X512JAAS.310 : F0031509.X512JA.30A

Sieht so aus als ob der Teil ab Offset 0x800 von X512JAAS.310 bei Offset 
0x900000 in defekt.bin liegt, das aber nur auf die Schnelle und ohne 
Garantie.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Aha. In 308 beginnt "SendDebugString" bei 0x002D618E, in defekt bei 
0x00BD5655

Ist immer noch viel zu unterschiedlich.

"defekt.bin" hat entschieden zu wenig Ähnlichkeiten.

von Dieter S. (ds1)


Angehängte Dateien:

Lesenswert?

Man brauch ein UEFI Tool um die Inhalte der Binaries zuzuordnen, z.B. 
das hier:

  https://github.com/LongSoft/UEFITool

Fertige Binaries gibt es hier:

  https://github.com/LongSoft/UEFITool/releases

Der Inhalt sieht dann so wie in den Bildern im Anhang aus. Als Basis 
dient die zur "defekt.bin" passende Version des Asus Download 
(X512JAAS.308).

"X512JAAS_308_offset_0x800.png" ist nur zu Info, das ist der Asus 
Download ab Offset 0x800. Das obige Tool kann aber auch direkt mit dem 
Download Binary umgehen.

Man wird vermutlich ein wenig mit den Binaries und dem Tool 
experimentieren müssen um herauzufinden was genau defekt ist. Es könnte 
natürlich auch sein dass andere Teile defekt sind, die nicht im Asus 
Download enthalten sind.

von Thomas W. (thomas100)


Lesenswert?

Hallo zusammen,

vielen Dank für eure tolle Hilfe und Zeit.

Ich habe es allerdings nicht geschafft, bisher ein heruntergeladenes 
BIOS so umzuwandeln, dass es im Laptop funktioniert.
Zum Glück lässt sich der Flash im eingebauten Zustand programmieren, 
sodass ich das Teil nicht ständig wieder auslöten musste.

Die Lösung: Ich habe mir ein baugleiches Laptop besorgt, den Bausein 
dort ausgelesen und auf das defekte Gerät kopiert.
Und siehe da, das Teil geht an. Braucht zwar ca. 20 Sekunden, bis das 
Display angeht. Damit kann ich gut leben.
Auch habe ich jetzt zwei Geräte mit der gleichen Seriennummer ;-)
Die MAC-Adresse wurde zum Glück nicht mitkopiert.

Alles in allem wieder viel gelernt, habe ein neues Programmiergerät.
Und noch mal vielen Dank für eure Hilfe!

Viele Grüße und ein schönes Wochenende
Thomas

von Dieter S. (ds1)


Lesenswert?

Könntest Du eventuell den funktionierenden Dump hier zum Vergleich 
hochladen?

von Thomas W. (thomas100)


Angehängte Dateien:

Lesenswert?

Na klar!

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.