4. CZYSZCZENIE REGIONU MEZasadnicze pytanie, które wielu z Was zadaje: po co czyścimy region ME? Czynność ta jest niezbędna przede wszystkim w przypadku, gdy wymieniamy mostek PCH (lub hybrydowy procesor) na fabrycznie nowy, bądź mamy jakiekolwiek podejrzenia, że region ME w naszym wsadzie jest uszkodzony. Skonfigurowany pod konkretny egzemplarz PCH region ME najczęściej nie pracuje poprawnie z fabrycznie nowym mostkiem PCH - z problemów, które najczęściej spotykamy, próbując uruchomić płytę z wymienionym mostkiem PCH i niewyczyszczonym regionem ME, wyróżniamy:
- nieprawidłową pracę wentylatorów (zwykle obracają się z maksymalną prędkością)
- wydłużona procedura POST (30-90 sekund od włączenia płyty do pojawienia się obrazu na ekranie)
- brak obrazu (zatrzymanie procedury POST)
- brak procedury startowej tzw. power sequence (po włączeniu płyta pobiera ≤ 50mA, nie włącza się przetwornica zasilania procesora)
Czyszczenie regionu ME (czyli wymiana regionu zainicjowanego i skonfigurowanego pod konkretny mostek PCH na taki, który nigdy nie był zainicjowany i skonfigurowany) polega zasadniczo na zdekompilowaniu wsadu BIOS za pomocą aplikacji
Flash Image Tool (FIT), podmianie regionu ME i ponownym skompilowaniu wsadu BIOS tą samą aplikacją. W niektórych przypadkach moglibyśmy zrezygnować z dekompilacji wsadu i "czysty" region ME podmienić ręcznie w edytorze hex - w niniejszym szkoleniu nie będziemy jednak używali tej metody (opisanej zresztą w
Szkoleniu nr 1 - lekcja 9). Informacje z poprzedniej lekcji (dotyczące analizy wsadu BIOS) będą odtąd wykorzystywane w każdym przypadku. Wsady BIOS do niniejszej lekcji zostały wybrane losowo, dzięki czemu będziemy umieli poprawnie przygotować niemal każdy wsad BIOS (dlaczego nie każdy, dowiemy się na końcu całego szkolenia). Przechodzimy zatem do praktyki.
Pierwszym wsadem BIOS, z którym będziemy dziś pracowali, jest wsad dla płyty PWWHA LA-7201P (laptop: Toshiba Satellite C660). Wsad pobrałem stąd:
toshiba-c660-la-7201p-t46180.html - a ponieważ był on nieco za długi (zamiast spodziewanej długości 4194304 bajtów miał 4195328 bajtów), przyciąłem go o nadmiarowe 1024 bajtów z końca pliku. Wsad BIOS nie jest szczegółowo opisany, zatem nie wiemy, czy region ME jest wyczyszczony, czy nie - zakładamy więc, że nie jest.
Pierwszą czynnością do wykonania jest zawsze analiza wsadu BIOS. Aplikacja ME Analyzer pokazuje nam takie oto dane:
Wersja regionu:
7.0.4.1197, SKU:
1.5MB, długość:
0x17D000, obsługiwany chipset:
CPT. Na ten moment najważniejsze są dla nas dwie pierwsze wartości. W
repozytorium regionów szukamy interesującej nas wersji - w poście #6 widzimy, że są dostępne dwa pliki, przy czym pierwszy ma nazwę
7.0.4.1197_1.5MB_PRD_RGN, zaś drugi
7.0.4.1197_5MB_PRD_RGN. Ponieważ SKU w naszym pliku to 1.5MB, właściwy będzie ten pierwszy. Kopiujemy zatem plik na Pulpit.
Kolejny krok to dekompilacja naszego wsadu. Wersję FIT dobieramy zawsze do wersji regionu ME - jeśli nasz wsad ma region ME w wersji 7.0.4.1197, to szukamy FIT w wersji 7.x, przy czym najlepiej jest użyć wersję FIT najbliższą wersji regionu ME. W paczce z pierwszego postu:
flash-image-tool-wszystkie-wersje-t54333.html znajdziemy dwie wersje: 7.1.13.1088 oraz 7.1.60.1191. Najbliższa wersji regionu jest ta pierwsza, więc użyjemy wersji FIT 7.1.13.1088. Wypakowujemy archiwum na pulpit i uruchamiamy plik fitc.exe - ukaże się nam interfejs programu:
Klikamy kolejno:
File -> Open, w obszarze "Typy plików" wybieramy BIN lub ROM (zależnie od tego, w jakim formacie jest nasz wsad BIOS) i otwieramy wsad. Program zapyta nas o wybranie właściwej serii chipsetu z listy:
W tym konkretnym przypadku jest dostępna tylko jedna opcja, więc możemy kliknąć OK - w przypadku, gdy nie mamy pewności, jaką opcję z listy wybrać, klikamy Cancel. Aplikacja FIT powinna i tak automatycznie wybrać odpowiedni chipset (w naszym przypadku jest to HM65), jeśli jednak aplikacja wybierze niewłaściwy PCH, ręcznie wybieramy z listy ten poprawny:
Teraz klikamy kolejno:
Build -> Build settings, odznaczamy opcję
Generate intermediate build files i klikamy OK. Następnie klikamy kolejno:
File -> Save as i zapisujemy plik
Untitled.xml na Pulpicie. Konfiguracja FIT została niniejszym zakończona, więc
zamykamy aplikację FIT (ta czynność jest tu istotna).
Po dekompilacji wsadu BIOS, w folderze głównym aplikacji FIT pojawił się nowy folder - jego nazwa jest tożsama z nazwą pliku BIOS. Wchodzimy w ten folder, a następnie dalej do folderu Decomp. Zawartość tego folderu wygląda następująco:
Najbardziej interesujący nas plik to
ME Region.bin. Usuwamy ten plik do Kosza
(nigdy nie usuwamy trwale oryginalnego regionu ME, dopóki nie potwierdzimy, że płyta po wgraniu wsadu BIOS z wyczyszczonym regionem ME pracuje w 100% poprawnie), a do folderu Decomp przenosimy rozpakowany wcześniej na Pulpicie plik "czystego" regionu ME:
7.0.4.1197_1.5MB_PRD_RGN.bin i zmieniamy jego nazwę na
ME Region.bin (czyli dokładnie taką, jaką miał oryginalny plik - wielkość liter w nazwie też ma znaczenie).
Otwieramy ponownie aplikację FIT, a następnie klikamy kolejno:
File -> Open i wybieramy utworzony wcześniej plik konfiguracyjny
Untitled.xml (plik zostanie automatycznie wczytany). Następnie klikamy kolejno:
Build -> Build Image lub klikamy klawisz F5. Po kilku sekundach możemy zamknąć aplikację FIT (niższe wersje nie wyświetlają żadnego potwierdzenia utworzenia skompilowanego wsadu). Teraz przechodzimy do folderu Build w folderze głównym FIT, gdzie widzimy dwa nowe pliki: outimage.bin i outimage.map.
Nas interesuje plik
outimage.bin - jest to nasz wsad BIOS skompilowany z "czystym" regionem ME, gotowy do bezpośredniego zaprogramowania kości BIOS. Widzimy także, że plik ma poprawny rozmiar: 4194304 bajty (równo 4MB).
---------
Kolejnym wsadem BIOS, z którym będziemy dziś pracowali, jest wsad dla płyty GS557 GS558 NM-C681 (laptop: Lenovo Ideapad 5-15IIL05). Wsad pobrałem stąd:
bios-lenovo-ideapad-5-15iil05-nm-c681-rev-1-0-t72045.html. Także i tutaj nie wiemy, czy region ME jest wyczyszczony, czy nie, bo autor nie podał takiej informacji - zakładamy więc, że nie jest.
ME Analyzer pokazuje nam takie oto dane:
Wersja regionu:
13.0.40.1594, SKU:
Consumer LP, długość:
0x381000, obsługiwany chipset:
ICP-LP D. Od razu widzimy jednak, że danych jest dużo więcej - ME Analyzer pokazuje także informacje o PMC, PCHC oraz PHY. Dla nas jednak istotne są: wersja regionu, SKU oraz obsługiwany chipset. W
repozytorium regionów szukamy interesującej nas wersji - w poście #24 (druga podstrona) są dostępne dwa pliki, przy czym pierwszy ma nazwę
13.0.40.1594_CON_LP_D_PRD_EXTR, zaś drugi
13.0.40.1594_SLM_N_A_PRD_EXTR. Ponieważ SKU w naszym pliku to "Consumer LP" a obsługiwany chipset to "ICP-LP D", właściwy będzie pierwszy region (ma w nazwie frazę CON_LP, czyli SKU, oraz literę D, czyli ostatni znak z obsługiwanego chipsetu). Kopiujemy zatem ten plik na Pulpit.
Kolejny krok to dekompilacja naszego wsadu. Wiemy już, że wersję FIT dobieramy do wersji regionu ME - jednakże w przypadku regionów ME w wersji od 11.x wzwyż (czyli CSME) aplikacja ME Analyzer podaje nam także informację o tym, jaką wersją FIT został skompilowany nasz wsad:
Tutaj jest to wersja
13.0.33.1495. Wybieramy zatem albo tę samą, albo najbliższą wyższą wersję FIT, dostępną na forum. W paczce z postu #13:
post292439.html#p292439 najniższa dostępna wersja (wyższa niż oryginalna wersja FIT) to 13.0.37.1556, której użyjemy. Wypakowujemy zatem archiwum na pulpit i uruchamiamy plik fit.exe - ukaże się nam interfejs programu:
Jak widzimy (zaznaczyłem zielonym kolorem), FIT automatycznie wykrył i ustawił właściwy chipset. Jego interfejs jest także nieco bardziej rozbudowany, niż w poprzednich wersjach.
Teraz klikamy kolejno:
File -> Open i otwieramy nasz wsad - nowsze wersje FIT nie wymagają zmiany typu pliku, ponieważ domyślnie otwierają zarówno pliki konfiguracyjne XML, jak i wsady BIN. Następnie klikamy kolejno:
Build -> Build settings, zmieniamy opcję
Generate Intermediate Files na "NO" i klikamy przycisk Close. Teraz klikamy kolejno:
File -> Save as, zapisujemy plik konfiguracyjny
Untitled.xml na Pulpicie i
zamykamy aplikację FIT (ta czynność jest tu istotna).
Po dekompilacji wsadu BIOS, w folderze głównym aplikacji FIT pojawił się nowy folder - tak jak w poprzednich wersjach, jego nazwa jest tożsama z nazwą pliku BIOS. Wchodzimy w ten folder, a następnie dalej do folderu Decomp. Zawartość tego folderu wygląda następująco:
Jak widzimy, plików jest dużo więcej, niż w przypadku starszej wersji FIT. W tym wypadku interesujący nas plik ma nazwę
ME Sub Partition.bin. Usuwamy ten plik do Kosza
(nigdy nie usuwamy trwale oryginalnego regionu ME, dopóki nie potwierdzimy, że płyta po wgraniu wsadu BIOS z wyczyszczonym regionem ME pracuje w 100% poprawnie), a do folderu Decomp przenosimy rozpakowany wcześniej na Pulpicie plik "czystego" regionu ME:
13.0.40.1594_CON_LP_D_PRD_EXTR.bin i zmieniamy jego nazwę na
ME Sub Partition.bin.
Otwieramy ponownie aplikację FIT, a następnie klikamy kolejno:
File -> Open i wybieramy utworzony wcześniej plik konfiguracyjny
Untitled.xml (plik zostanie automatycznie wczytany). Następnie klikamy kolejno:
Build -> Build Image lub klikamy skrót klawiszowy CTRL+B. Teraz najprawdopodobniej wyświetli się nam jeden lub więcej komunikatów, które wystarczy zatwierdzić (kliknąć przycisk YES), aby kontynuować kompilację:
Nowsze wersje FIT pokazują na bieżąco informacje o statusie kompilacji wsadu BIOS. Jeśli kompilacja przebiegła poprawnie, powinniśmy otrzymać taki wynik:
Wygenerowanie plików "outimage" i brak błędów (czerwona czcionka w oknie statusu kompilacji) jest potwierdzeniem, że kompilacja zakończyła się sukcesem. Przechodzimy więc do folderu głównego FIT, gdzie widzimy dwa nowe pliki: outimage.bin i outimage.map. Nas interesuje oczywiście ten pierwszy - wsad BIOS skompilowany z "czystym" regionem ME. Plik ma też poprawny rozmiar: 16777216 bajtów (równo 16MB).