DELL OptiPlex 755 - oprava poskodeneho BIOSu

Počítače stolní, notebooky, tablety, tiskárny, scanery a vše, co nějak souvisí s PC

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

DELL OptiPlex 755 - oprava poskodeneho BIOSu

#1 Příspěvek od rnbw »

Podarilo sa mi umrtvit BIOS dosky DELL OptiPlex 755 - restartovalo sa to pri flashovani (vadny zdroj). Nema to ziadny recovery mod. A co je horsie, ma to Intel ME (AMT).

Zistenia:
1. Flash je 4MB SPI, pouzivaju sa najmenej dva typy - Macronix a Winbond. Maju nezamenitelny obsah, pretoze kvoli ME je vnutri zapisane ID, zoznam zakazanych prikazov a pod. Flash obsahuje deskriptor, cast pre ME, cast pre sietovku a cast pre BIOS.
2. Neda sa pouzit cely image z ineho kusu, lebo potom nefunguje ME. Na doske nie je ziadna ina flash ani EEPROM, takze to bude asi suvisiet s TPM (ze by ME naviazane na jeho seriove cislo?)

Podla datasheetu ICH9 som precital deskriptor na zaciatku flash a zistil, ze BIOS ma 1 MB a je na adrese 0x300000 (posledny 1 MB). Dump poskodeneho obsahu ukazal, ze sa to prerusilo este pocas flashovania BIOSu (na zaciatku vidiet cislo novej verzie, na konci starej - zjavne sa to najprv cele nezmaze, ako byva zvykom inde), ME ostalo nedotknute.

Skusil som teda v poskodenom dumpe prehodit BIOS za dobry - normalne to nabootovalo a fungovalo aj ME. Akurat v BIOSe su este na zaciatku a na konci bloky so seriovym cislom, takze to skusim prehodit este raz, tentokrat okrem nich.
Uživatelský avatar
PixelOrgy
Příspěvky: 2051
Registrován: 04 zář 2007, 00:00

#2 Příspěvek od PixelOrgy »

Dobra prace :-)
Kazdopadne, pokud to bootlo, tak by mel jit uz bios flashnout normalni cestou ne?
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#3 Příspěvek od rnbw »

Tie bloky so seriovymi cislami sa pravdepodobne pri beznom flashovani nemenia.

Ked porovnavam dva BIOSy rovnakej verzie z roznych dosiek, tak v prvych 64 KB su rozne rozdiely. Potom je vsetko zhodne a na konci je este raz seriove cislo, ale aj verzia BIOSu.

Takze prvych 64 KB a poslednych 288 B BIOSu necham a vsetko medzi tym vymenim. Potom skusim BIOS downgradovat na A04 (ten tam bol povodne) a upgradovat na posledny A22. Tym by sa mal upgradovat aj ME, ktory ostal stary.
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#4 Příspěvek od rnbw »

Tak ten druhy skombinovany BIOS nefunguje.
Dalsi pokus: v prvom skombinovanom BIOSe prepisat seriove cisla.
Uživatelský avatar
PixelOrgy
Příspěvky: 2051
Registrován: 04 zář 2007, 00:00

#5 Příspěvek od PixelOrgy »

Jak to vlastne prehravas? I2C & primo na desce? Nevim co tam je za flesku, ale tipl bych ze bude mit nejaky xBGA pouzdro...
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#6 Příspěvek od rnbw »

Je tam SOIC-8, takze spajkovacka, vybrat von, prispajkovat na "programator" (LPT konektor s kusom kabla), preflashovat, prispajkovat naspat. Preto sa mi do toho dlho nechcelo a teraz nechcem robit zbytocne vela pokusov :)
Uživatelský avatar
PixelOrgy
Příspěvky: 2051
Registrován: 04 zář 2007, 00:00

#7 Příspěvek od PixelOrgy »

Ahaaa, tak SOIC je krasa, ja uz se bal, ze to je BGAcko, a ze to lovis nekde po desce s jehlou :-)
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#8 Příspěvek od rnbw »

Je tam okolo aj trochu miesta, takze sa da spajkovat bez vyberania dosky z PC.

Skusil som teda prepisat tie seriove cisla a po nabootovani to ukazuje tie povodne nezmenene. Musi to byt ulozene este niekde inde. V tych prvych 64KB BIOSu je zjavne DMI, su tam veci, co mi zobrazi dmidecode. Tam sa aj seriove cislo prepisalo na to povodne. Na konci zostalo nove.
Uživatelský avatar
PixelOrgy
Příspěvky: 2051
Registrován: 04 zář 2007, 00:00

#9 Příspěvek od PixelOrgy »

Zajimavy. Predpokladam ta deska jeste nema TPM...
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#10 Příspěvek od rnbw »

Praveze ma (ale nepouzivame ho, je v BIOSe vypnuty). Predpokladam, ze kvoli nemu nefunguje ME, ked prehodim celu flash (alebo jej image) z druhej dosky.
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#11 Příspěvek od rnbw »

Tak hlasim uspech.

Chyba bola v tom, ze som nechal ten "koniec" BIOSu z povodneho A04. Na adrese 0x3FFFF0 je totiz reset vector a ten je medzi verziami odlisny, takze procesor skocil hned po zapnuti niekam do prdele...

Takze spravny postup opravy image (v mojom pripade bol povodny BIOS A04 a bolo to prerusene pri flashovani na A22) je:

1. Zobrat z poskodeneho image prvych 3 MB + 64 KB = 3 211 264 B

Kód: Vybrat vše

dd if=o755-badflash-macronix-a04-partial-a22.bin of=test-badflash-biosreplaced.part1.bin bs=3211264 count=1

2. Zobrat dobry BIOS (bez prvych 64 KB) z ineho image:

Kód: Vybrat vše

dd if=o755-good-macronix-a22.bin of=goodbios-a22-noconfig.bin bs=3211264 skip=1

3. Spojit to dokopy

Kód: Vybrat vše

cat test-badflash-biosreplaced.part1.bin goodbios-a22-noconfig.bin >test-badflash-biosreplaced.bin

4. Hex editorom upravit seriove cislo na adrese 0x3FFF00 tak, aby sedelo podla poskodeneho image. Cislo konci nulovym bajtom, potom su 3 medzery, zase nulovy bajt a za tym 1 bajt - asi nejaky checksum, treba skopirovat aj ten.
5. Vysledkom je funkcny image test-badflash-biosreplaced.bin, ten naflashovat do SPI flash. Progam flashrom to nezvladol, lebo flash ma prvy sektor zamknuty, SPIPGM to zvladol.
6. Downgradovat BIOS na A04 a nasledne upgradovat na A22.

Vysledkom je plne funkcna doska - funguje aj ME, dmidecode zobrazuje spravne seriove cislo.
Odpovědět

Zpět na „Výpočetní technika“