Dead bricked MIO P550 Mitac Oscar 260A (bad blocks marked)

Naprawa MIO P550 Mitac (Oscar260A)


Poniżej opisuję procedurę naprawy unieruchomionego palmtopa Mio P550. Opis dotyczy sytuacji gdy sprzęt nie daje żadnych oznak życia tzn. nie działa bootloader, ekran pozostaje ciemny a sprzęt nie jest wykrywany przez komputer.

Ja doprowadziłem do tej sytuacji niechcący uruchamiając procedurę zaznaczania BadBlocków w menu bootloadera.

UWAGA! Naprawy dokonujesz na własną odpowiedzialność!! Naprawa wymaga poważnej ingerencji w sprzęt i może spowodować utratę ewentualnej gwarancji. Mój palm był po gwarancji i w Orice (nie serwisują już gwarancyjnie Mio) powiedziano mi, że naprawa będzie kosztować ok. 100zł netto. Z kolei nowe płyty główne widziałem na Allegro po 289zł brutto (kwiecień 2008). Sam zdecyduj czy warto. Aktualizacja 2009-02-01 Na Allegro płyty po 99 złotych.

Dołożyłem maksimum starań, by opis był poprawny i wg tej procedury kilkakrotnie flaszowałem moje Mio, ale niewykluczone, że w opisie pojawiły się jakieś błędy. Program do flaszowania jest zmodyfikowanym przeze mnie kodem programu SJF2440 i nie powinien zawierać błędów, ale testowany był tylko na jednym, moim MIO i tylko na jednym, moim komputerze - nie gwarantuję więc, że zadziała u każdego. Program kompilowany był darmowym kompilatorem LCC. Wyprowadzenia JTAGa zostały namierzone doświadczalnie - omomierzem.

Celowo nie opisuję jak wymontować płytę główną - jeśli to jest dla kogoś zbyt duże wyzwanie to lepiej niech poprosi o naprawę kogoś bardziej doświadczonego.

Procedura naprawy polega na ponownym zaprogramowaniu bootblocka pamięci flash, co pozwoli na uruchomienie palma i późniejsze wgranie systemu operacyjnego normalnym trybem czyli przez USB.

Opis celowo nie jest zbyt szczegółowy, naprawa wymaga pewnej wprawy i jeśli komuś brak podstawowych umiejętności potrzebnych do rozebrania palma czy podlutowania końcówek niech lepiej się za to nie bierze.

W moim przypadku NIE POTRZEBOWAŁEM bootloadera dlatego, że on BYŁ W PAMIĘCI flasha, ale ponieważ block oznaczony był jako uszkodzony program nie działał (ściślej biorąc prawie cały - dwie pierwsze strony "działają").


Potrzebne rzeczy:

  • Komputer PC z Windowsem XP i portem LPT na płycie
  • Programator JTAG WIGGLER - link
  • Driver giveio - link
  • Program do flashowania SJF2440j - link
  • Procedura:

    1. Demontujemy palmtopa i wyjmujemy płytę główną. Styki JTAGa znajdują się pod spodem obok dużego metalowego ekranu.

    Płyta główna

    2. Podłączamy płytę główną naszego palma do JTAGa. Podpinamy styki TCK, TDI, TDO, TMS i GND (RST jest nieużywany). Ja użyłem lutownicy.

    JTAG

    3. Instalujemy driver giveio.sys w systemie w tym celu rozpakowujemy pobrany z Internetu plik giveio.zip, wchodzimy do katalogu gdzie są rozpakowane pliki i z wiersza poleceń wydajemy komendy:

    loaddrv install giveio
    loaddrv start giveio

    4. Podpinamy akumulator (można też dodatkowo kabelek USB jeśli nie jesteśmy pewni czy akumulator jest wystarczająca naładowany) i włączamy palma.

    5. Wchodzimy do katalogu, gdzie umieściliśmy plik sjf2440j.exe i uruchamiamy program. Jeśli wszystko poszło dobrze ukaże nam się poniższy ekran (zwróć uwagę na linijkę ID=0x0032409d - to jest ID procesora S3C2440 i musi taki być, jeśli jest inny procedura nie powiedzie się!):

    Jeśli pojawi się coś takiego, to znaczy, że nie zainstalował się driver giveio.sys,

    a jeśli taki, nie ma komunikacji z procesorem

    Może tylko nie włączyłeś zasilania palma, może pomyliłeś kabelki a może niestety usterka jest poważniejsza... Naciśnij 5 i «Enter», popraw błąd i spróbuj ponownie uruchomić program.

    6. Następnie odczytujemy bootblock i zapisujemy do pliku (powtarzam: u mnie bootblock nie zniknął, tylko został zamarkowany jako uszkodzony, dlatego nie potrzebuję go np. sczytywać z innego sprawnego egzemplarza - on jest tam gdzie trzeba):

  • - wybieramy opcję nr 3 i naciskamy «Enter»
  • Zwróć uwagę na linijkę ID=0xecf1. To jest ID pamięci flash K9F1G08U0A i musi być dokładnie takie samo. Jeśli jest tam coś innego procedura nie powiedzie się - może masz inną pamięć, a może jest ona uszkodzona - naciśnij 6 i «Enter» by wyjść z programu.

  • ponownie naciśnij 3 «Enter»
  • wpisz nr bloku: 0 «Enter»
  • wprowadź nazwę pliku np.: boot.bin «Enter»
  • Odczyt trwa kilka minut i tak wygląda ekran jeśli wszystko poszło OK:

  • - wychodzimy z programu: 6 «Enter»
  • Jeśli odczyt zakończył się pomyślnie, w katalogu programu pojawi się plik boot.bin o rozmiarze 128kB.

    7. Kasowanie pamięci i programowanie bootblocka:

  • ponownie uruchamiamy program, tym razem z parametrem: sjf2440j /f:boot.bin

  • (jeśli w punkcie 4 użyliśmy innej nazwy, to oczywiście trzeba jej użyć zamiast boot.bin).

  • wybieramy opcję 3 «Enter»
  • kasujemy całą pamięć flash (jedyny sposób odblokowania "uszkodzonych" bloków): 6 «Enter»
  • programujemy bootblock (trwa to kilka minut): 2 «Enter», 0 «Enter»
  • Tak wygląda ekran, gdy programowanie się powiodło:

    8. Weryfikacja zapisu:

  • zapisujemy bootblock do pliku 3 «Enter»
  • wpisujemy nr bloku: 0 «Enter»
  • wprowadzamy nazwę pliku (inną niż w punkcie 4) np.: boot1.bin «Enter»
  • wychodzimy z programu 6 «Enter»
  • Za pomocą polecenia fc lub np. Total Commandera porównujemy zawartość plików boot.bin i boot1.bin i jeśli są jednakowe wszystko poszło OK. Jeśli są różnice - programowanie nie udało się - proponuję przejrzeć te różnice i jeśli np. źle zaprogramowała się któraś ze stron (2kB) spróbować powtórzyć programowanie nawet kilkakrotnie.Jeśli plik boot1.bin zawiera same FF lub 00 może to wskazywać na uszkodzenie pamięci.

    Jeśli weryfikacja potwierdziła prawidłowość programowania, palmtopa można zmontować i uruchomić menu bootloadera.


    Jerzy Wąsowicz
    Jurek[at]motronik.com.pl

     

    M-c 2008-04, aktualizacje 2009-02-01, 2009-03-29