Skocz do zawartości

Update starego BIOS-u z blokadą


Idź do rozwiązania Problem ogarnięty przez magik06,

Recommended Posts

Witajcie.

Dawno mnie tutaj nie było ale przyszła ta pora gdy muszę tutaj zagościć i poszukać u was porady odnośnie jednego z moich zabytków.

Chodzi konkretnie o płytę główną PC Chips M571 v7.0. Mam z nią mały problem, gdyż chciałem zaktualizować w niej BIOS aby poprawić stabilność na procesorach AMD K6-2 i aby umożliwić jej obsługę dysków do 32GB (aktualnie obsługuje tylko do 8,5GB). Problem jest jednak taki, że za nic nie mogę wgrać softa, Amiflash wywala błąd, że jakoby kość była zabezpieczona przed zapisem. Sam układ to ATMEL 29C010A. Według dokumentacji ze strony alldatasheets faktycznie ta kość ma jakieś zabezpieczenia programowe i hardwerowe, ale nie wiem jak je wyłączyć. W razie czego mam jeszcze programator ale on na liście obsługiwanych kości tej akurat nie ma :/. zastanawiają mnie jeszcze piny J1 o numerach 1 i 2 (bo 4 i 5 służą do uruchomienia komputera na zasilaczu ATX) czy po ich zwarciu nie jest odblokowywany bios, ale w instrukcji nie ma nic na ich temat wspomniane.

Z góry dzięki za wszelką pomoc.

Link to post
Share on other sites
  • Rozwiązanie

Amiflash którego używasz nie jest prawdopodobnie kompatybilny z tym układem i nie jest w stanie wystawić sekwencji odblokowania zapisu tak jak jest podane w datasheet układu zanim podejmuje próbę kasowania przed zapisem.

Jakbyś go chciał ręcznie odblokować to albo napisz sobie soft albo poza płytą z wykorzystaniem jakiegoś małego procka.

Zabezpieczenie HW jest tylko od spadku napięcia które nie gwarantuje zachowania poprawności zapisu.

Jaki masz programator? Ta kość jest bardzo popularna i nie powinieneś mieć problemu z jej przeprogramowaniem, nawet Willem 20 lat temu miał jej obsługę.

Jak sobie nie poradzisz to mogę ci wgrać wsad na kostkę i wysłać.

Link to post
Share on other sites

Generalnie próbowałem AMIFlash w wersji 8.95 więc nie wiem czy nie za nowy jak na tę płytę. Sam program się uruchomił i pojawia się mniej więcej coś jak poniżej:

http://www.plasma-online.com/visual/howto/flash_ami_2.gif

Z tym tylko, że dostępne mam tylko 4 opcje (File, Module, Exit i jeszcze coś) a sam program na dole w informacjach nie wykrywa nic (same "Unknow").

Programator jaki posiadam to polski Revelprog IS i w bazie układów nie ma nic z serii 29XX.. czy to Atmel czy Winbond, bo z tego co wyszukałem to bliźniacze kości robił też Winbond i oznaczał je jako W29C010. Próbowałem także odpalić program do flashowania "aminf342" ale także wywalał jakieś krzaki i się zawieszał. Zastanawiam się jeszcze nad samym AMIFlashem czy nie poszukać innej wersji.

Link to post
Share on other sites

No to masz odpowiedz. Na zdjęciu wykryty jest firmware hub (nowsza płyta) a w Twoim przypadku powinien wykryć układ który posiadasz, jeśli wyświetla "unknown" to znaczy że nie popracujesz na tym sofcie.

Revelprog IS z tego co widzę jest tylko do pamięci szeregowych a ty chcesz zaprogramować równoległą.

Producent płyty zwykle dorzucał odpowiedni program razem z wsadem, czasem w wersji pod siebie co w przypadku ścierwa jakim jest PCChips jest jednak wątpliwe.

Pozostaje ci albo szukasz czegoś jeszcze albo programator zewnętrzny.

  • Popieram 1
Link to post
Share on other sites
3 godziny temu, magik06 napisał:

Producent płyty zwykle dorzucał odpowiedni program razem z wsadem

To mnie tchnęło na nowy tor. Zapomniałem całkiem, że z neta pobrałem obraz płyty CD dołączanej do mobasa i tam znalazłem inną wersję programu do flashowania. Odpaliłem go tym razem, i w trybie tekstowym wykryło model chipsetu i typ kości BIOS. I na tym dobre się skończyło bo dalej program wywalał błąd "nie znaleziono pliku", pomimo że podawałem jego nazwę i wszystko było na dyskietce. Gdy uruchomiłem program z parametrem "X" (w helpie podane było, że uruchamia tryb graficzny programu) pojawiło się okno jak na screenie z mojego drugiego posta, z dokładnie tymi samymi opcjami ale nadal w informacjach było "unknown". Na razie dam chyba sobie spokój i niech działa jak działa. Może kiedy coś znajdę jeszcze w internecie o tej płycie.

Link to post
Share on other sites

Odwiedzałem tę stronę nieraz, ale teraz znalazłem jeszcze parę przydatnych podpowiedzi. Potestuję to ale już nie dzisiaj. Dzięki za przypomnienie o tej stronce.

Link to post
Share on other sites

Jeśli doprowadzisz do rozpoznania kości to sprawdź jej datasheet. Blokada flashowania zapewne będzie polegała na podaniu lub nie napięcia na któryś styk/nogę. Flashowałem TH7 w ten sposób, po dwóch dniach walki i zmiany flasherów podałem drucikiem napięcie na nóżkę i poszło od razu.

 

P.S. Sprawdź Uniflash.

Link to post
Share on other sites
2 godziny temu, cooger napisał:

Blokada flashowania zapewne będzie polegała na podaniu lub nie napięcia na któryś styk/nogę.

Zapewne nie będzie polegała, napisałem, że musi być podana sekwencja programowo, a wygląda ona tak:

 

image.png.11d44df144f89b696a28623ccc8b5f55.png

 

@stachoo86Najprostsze to naprawdę zewnętrzny programator i masz to załatwione w minute. Albo kogoś na miejscu znajdziesz albo wysyłka zaprogramowanej kości.

Ew. jak lubisz majsterkować to weź hot swap zrób z inną kością o tej samej pojemności ale innego producenta z dowolnej innej płyty (5V programowanie, 128kB).

 

Link to post
Share on other sites

Nie będę się mądrował, kości nie znam, opieram się na datasheet a z niego wynika:

 

Zabezpieczenie programowe jest opcjonalne, natomiast sprzętowe:

 

HARDWARE DATA PROTECTION: Hardware features protect against inadvertent programs to the AT29C010A in the following ways: (a) VCC sense— if VCC is below 3.8V (typical), the program function is inhibited. (b) VCC power on delay— once VCC has reached the VCC sense level, the device will automatically time out 5 ms (typical) before programming. (c) Program inhibit— holding any one of OE low, CE high or WE high inhibits program cycles. (d) Noise filter— pulses of less than 15 ns (typical) on the WE or CE inputs will not initiate a program cycle.

 

https://www.futurlec.com/Datasheet/Memory/AT29C010.pdf

 

Jeśli chodzi o JP1:

 

http://m571.com/m571/jumpers_files/JP1-C.gif

Link to post
Share on other sites

Eh @cooger ale chyba z techniką cyfrową i angielskim to u Ciebie cienko i wypadałoby sobie co nieco przypomnieć:

a) skoro zasilanie nominalne to 5V z tolerancją +/-5% to chyba logiczne, że układ się sam zabezpiecza przed operacjami zapisu przy spadku napięcia bo nie gwarantuje to prawidłowego zapisu.

b) lepiej odczekać 5 milisekund po włączeniu zasilania nieprawdaż? tak dla bezpieczeństwa od stanów nieustalonych? 

c) tutaj to nawet nie ma co komentować bo to podstawy techniki cyfrowej i bus masteringu stosowanych od kilkudziesięciu lat:

/OE w stanie niskim oznacza, że szyna danych układu jest w stanie buforów wyjścia wiec jak chcesz coś zapisać jak linie danych masz ustawione na wyjście?

/CE, /WE - stanem aktywnym jest stan niski, jak nie aktywujesz układu (/CE) i nie aktywujesz zapisu (/WE) to jak chcesz programować?

d) coś jak b) - sygnał na wejściach /WE oraz /CE muszą być stabilne. To odporność na zakłócenia żeby nie doszło do przypadkowych zapisów.

 

Zatem zabezpieczenia hardwarowe wynikają z logiki i algorytmów powszechnie stosowanych a zabezpieczenie softwarowe jest tym właściwym zabezpieczeniem przed nieautoryzowaną/przypadkową ingerencją w zawartość komórek pamięci. Piny układów pamięci ROM są standaryzowane jakbyś miał wątpliwości czy może program nie wie gdzie co jest w kostce Atmela.

 

Jest też napisane w dokumencie który cytujesz jako drugi punkt na pierwszej stronie:

image.png.577c507b52138d97bd645dad145487ce.png

 

więc sugestia z JP1 jest zupełnie nietrafiony, co więcej jeśli jest taka zwora to ustawienie jej na 12V może zakończyć żywot układu.

np. układy 28Fxxx mają programowanie 12V i tam przestawienie tej zwory ma sens. Kości te stosowano w późnych płytach 486 (z PCI), Socket 5 i 7 oraz czasem spotykane są jeszcze w SS7, Slot1. Później odchodziło się od nich właśnie w stronę kostek programowalnych 5V i tak jest w naszym przypadku co nie oznacza, że producent miał second source'a i w pewne partie wkładał też układy programowalne 12V stąd w manualu tenże opis.

I zworka ta nie jest żadnym zabezpieczeniem tylko napięcie 12V jest tym właściwym do jej zaprogramowania. Oczywiście w potocznym mniemaniu jeśli masz układ programowalny 12V i przestawisz zworkę na 5V wtedy masz "zabezpieczenie" hardwarowe.

Dywagacje z "JP1" przypominają mi czasy wirusa Chernobyl, kto pamięta ten zaraz skojarzy :)

image.png

Link to post
Share on other sites

Z JP1 niczego nie sugerowałem, było pytanie do czego służy to wkleiłem. To po pierwsze. Po drugie - miałem problem ze sprzętową blokadą zapisu w TH7. Szczegółów teraz nie pamiętam, ale rozwiązaniem było podanie 5V i układ został zaprogramowany. Cytat po angielsku wkeiłem 1:1 z datasheetu, do analizy własnej. Do tego link do datasheetu żeby każdy kogo to interesuje to sprawdził, w tym autor. Jest tam wprost napisane, że jest to sprzętowe zabezpieczenie i typowe napięcie to 3.8V. Od jego sprawdzenia należałoby zacząć a nie upierać się, że napewno to wina zabezpieczenia programowego.

 

Zdaje się, że na siłę chcesz mi udowodnić tylko właściwie nie wiem co.

Link to post
Share on other sites

Tam nie ma żadnego zabezpieczenia sprzętowego sensu stricte w jaki ty to próbujesz nam wmówić. Podczas normalnej pracy wszystkie punkty od a) do d) są spełnione z założenia, jeśli nie wierzysz prześledź je jeszcze raz bardzo powoli.

 

Jeśli Ty to (pogrubienia ode mnie):

1. Hardware features protect against inadvertent programs to the AT29C010A in the following ways: (a) VCC sense— if VCC is below 3.8V (typical), the program function is inhibited.

i to:

2.image.png.2fb8ca83eaf160bdc0ee8081842b44de.png

 

tłumaczysz/interpretujesz tak:

12 minut temu, cooger napisał:

Jest tam wprost napisane, że jest to sprzętowe zabezpieczenie i typowe napięcie to 3.8V.

 

to nikt nie jest Ci w stanie niczego udowodnić, nawet to że białe jest białe a czarne jest czarne.

 

Na koniec bo szkoda cennego czasu:

1. Użytkownik nie pisze że płyta nie działa wiec nie mam podstaw uważać że napięcie szyny +5V w jego zasilaczu zamiast nominalnego jest poniżej +3,8V. Pin VCC układu AT29C010 jest podpięty do zasilania +5V na stałe - bez tego płyta by się nie uruchomiła a dlaczego ty chyba jasne - rozumiesz, bo prościej już nie potrafię?

2. Proces programowania z użyciem programu nie jest inadvertent  a jest celowym działaniem usera z zachowaniem algorytmu programowania dla danej kości.

3. Już na samym końcu dodam, że użytkownik pisze: "Amiflash wywala błąd, że jakoby kość była zabezpieczona przed zapisem" co tu więcej dodać to nie wiem poza tym co napisałem w pierwszym poście skoro nie ma innego zabezpieczenia podczas wykonywania przez niego prób.

 

Link to post
Share on other sites

Widzę że mój temat bardzo rozgorzał :). Na wstępie chcę powiedzieć, że wszystko to co było cytowane wcześniej już widziałem ale nie wszystko do końca rozumiałem, szczególnie informacje z Datasheet. Póki co spróbuję jeszcze inny soft, bo w linku od Marko22 doczytałem, że autor strony w zakładce o Updatcie biosu pisał, że on na takiej płycie korzystał z AMIFlash 6.32, ja na razie testowałem 8.0.6 i 8.95. Opcja z szukaniem kogoś kto posiada odpowiedni programator raczej u mnie kiepska bo zamieszkuję trochę takie "zadupie :P". Fajnie by było gdzieś w necie kupić taką kość u kogoś kto od razu by ją zaprogramował. Natomiast nawiązując do wątku zworki JP1 to po pierwsze u mnie jest na sztywno wlutowany drucik w pozycji 5V w PCB bez żadnej podstawki do zworek a po drugie to miałem na myśli piny oznaczone J1 o numerach 1 i 2  a nie JP1. Na poniższym schemacie opisane są tylko piny 4 i 5 z conectora J1 i służą one jako PowerSW przy zasilaniu z zasilacza ATX. 3 pin jest tam pusty a 1 i 2 nie są nigdzie opisane, nawet w instrukcji. Podsyłam schemat płyty:

 m571.jpg

Link to post
Share on other sites

Ostatni mój wpis w tym wątku, w takim tonie dyskutować nie będę. Dyskusja zakłada poszanowanie dyskutanta i jego doświadczeń. Ja do poziomu kolegi nie zejdę. Podaję fakty a nie interpretacje a kolega odbija je bezpodstawnymi interpretacjami.

 

Do autora wątku, dla mnie określenie: • Hardware and Software Data Protection jest jednoznaczne i sprawdziłbym VCC oraz użył programu który poradzi sobie z zabezpieczeniem software'owym. Sugerowałem Uniflash 1.4 i jego bym sprawdził.

 

P.S. Nawet znalazłem dwie fotki z prac na TH7II, ale to temat na inny wątek.

  • Popieram 1
Link to post
Share on other sites
W dniu 18.04.2021 o 02:39, magik06 napisał:

Amiflash którego używasz nie jest prawdopodobnie kompatybilny z tym układem i nie jest w stanie wystawić sekwencji odblokowania zapisu tak jak jest podane w datasheet układu zanim podejmuje próbę kasowania przed zapisem.

Ok, w końcu sukces, Wreszcie udało mi się zaktualizować BIOS. Potrzebny był AMIFlash w wersji 6.32, od razu rozpoznał kość i bez problemu ją przeprogramował. W zanadrzu miałem jeszcze UniFlash 1.40 ale jak widać nie musiałem go już testować.

Dzięki wszystkim za pomoc, pewnie się jeszcze odezwę w tym dziale, po to mój niejedyny, stary sprzęt z lat '90. Dzięki jeszcze raz.

Edytowane przez stachoo86
  • Popieram 1
Link to post
Share on other sites
12 godzin temu, stachoo86 napisał:

Ok, w końcu sukces,

Gratulacje :), w pierwszym poście oferowałem, że zaprogramuje Ci taką kostkę i wyślę ale poradziłeś sobie wzorowo softem.

 

Miałeś szanse @cooger… i ją zmarnowałeś i musze teraz napisać małe kompendium wiedzy dla retro kolekcjonerów:

 

Kolega @stachoo86 posiada płytę z „tradycyjną” topologią obsługi firmware tj. ISA pod którą kostki BIOS były wprost, nie licząc zatrzasków i transciverów, podpinane do szyny danych i adresowej (tak dla uproszczenia, później w miarę miniaturyzacji komponenty 245 i 373 były integrowane do mostków I/O wiec kostka, na pierwszy rzut oka, już nie „wisiała” bezpośrednio na ISA). Nie wiem czy @cooger nie zauważył, ale na jego płycie nie ma złącz ISA co już powinno dać mu do myślenia... no chyba, że nie wie co to ISA bo w sumie nie ma obowiązku posiadać tego w portfolio swojego bogatego doświadczenia.

 

Intel w nowej rodzinie, której początki dał 810 + ICH, uśmiercił ISA i wprowadził na jej miejsce nową topologię - LPC a wraz z nią tzw. Firmware Hub (82802Ax) który rzeczywiście ma zabezpieczenia hardwarowe w postaci pinów /WP (write protect) oraz /TBL (top block locked). Taka też topologia jest zaimplementowana w np. TH7II (intel 850).

/WP jest zabezpieczeniem całej pamięci bez ostatniego, górnego, sektora o wielkości 64kB a /TBL zabezpiecza tenże górny sektor, w którym rezyduje boot block. Taki podział ma zalety, szczególnie zauważy to ktoś komu coś poszło nie tak podczas updateu BIOS-u.

Producentom płyt zdarzało się jednak nie wyprowadzać obu pinów jako zworki i było niemało takich przypadków, że update kończył się fiaskiem i dopiero kto sprytniejszy ręcznie podawał odpowiednie sygnały na pin 6 i 7 (stan wysoki). Nie znam tego Abita ale mniemam, że może to być przypadek @cooger.

A więc: pamięci równoległe to nie to samo co FWH! mimo, że mogą występować w tych samych obudowach (PLCC32).

 

Poniżej przykład jak to jest dobrze zaimplementowane w jednej z płyt Gigabyte:

image.png.acfd2db9bba5e86e7c6eb7348408300d.png

 

Później z FWH zrezygnowano i świat przeszedł na szeregowe pamięci SPI ale to już temat na inny post.

 

Podsumowując:

 

Jeżeli Twoja płyta jest sprawna i nie jest jakimś egzotykiem to:

1. Jeśli są na niej złącza ISA to masz pamięć równoległą i aby ją zaprogramować:

a)   Jeśli jest zworka 5V/12V sprawdź napięcie programowania dla twojego układu i ustaw ją odpowiednio. Nie ma zworki - sprawdź napięcie Vpp -> pin 1. Programowanie 12V ma np. pamięć 28F00x od intela.

b)   Znajdź odpowiedni flasher, często w nowych wersjach wycofywana jest implementacja starszych rozwiązań – idealnym przykładem jest sytuacja autora wątku – szukaj starszego softu.

c)   Jeśli b) zawiedzie zaprogramuj kość w zewnętrznym programatorze. Gorzej, jeśli jest lutowana – szukaj speca co ją wylutuje, zaprogramuje i wlutuje np. podstawkę do jej obsadzenia.

 

2. Jeśli nie ma ISA a płyta jest z starsza niż powiedzmy okolice 2007 roku to pewnie masz FWH, później stosowany był SPI. Na szczęście łatwo jest je rozpoznać: FWH jest w obudowie PLCC32 a SPI, zwykle, w różnych wariacjach w oparciu o SO8 (np. SO-08M).

a)   Sprawdź zworki programowania, może się zdarzyć, że producent połączył pin /WE i /TBL wtedy znajdziesz tylko jedną zworkę zabezpieczającą. Jeśli jej nie ma to tymczasowo podepnij piny 6 i 7 przez jakiś rezystor (np. 100ohm) do 3,3V. Dla pewności można sprawdzić pin 1 czy Vpp wynosi 3,3V – inaczej kość też się nie zaprogramuje. Jest też możliwy trik z podpięciem tam 12V gdy mamy problem z zaprogramowaniem i podejrzenie nieodpowiedniego timingu procesu programowania (12V pozwala na szybsze programowanie) ale to zostawiam bardziej zaawansowanym bo można sobie uszkodzić płytę.

b)   j.w

c)   j.w

 

No i tak na koniec, uważaj na pseudo-doświadczonych bo mogą Cię, w swoim mniemaniu wyższości nad innymi, wprowadzić w błąd.

Link to post
Share on other sites

@magik06..... Może i wiedzy nie można Ci odmówić, ale taktu i skromności to nie masz za grosz. Jeśli ktoś popełnił błąd, to nie pokazuj wprost paluchem, tylko wyjaśnij i wytłumacz, jak przystało na cywilizowanego człowieka. Bez ironii i złośliwości. Twój wywód na temat programowania biosu.... Wow. Jestem pod wrażeniem. Ale.... Muszę Cię zasmucić - przyda się pewnie (albo i nie) promilowi. Ze swojego doświadczenia pamiętam, że jeśli nie schrzaniłeś innym plikiem biosu, to wystarczył odpowiedni soft. Bez potrzeby uciekania się do programatora. Obojętne, czy to był Abit. Epox czy inny wynalazek. Tak więc nie docinaj innym bez potrzeby. A i w potrzebie stosuj umiar. 

Link to post
Share on other sites

Szanowni Państwo @marko22 & @BlackCoffe, z przykrością obserwuję, że przez nieuwagę się Państwu chronologia wydarzeń przestawiła. Primo: kolega @cooger pierwszy podważał moje kompetencje w swoim drugim poście wynikające z jego nieumiejętności tłumaczenia z technicznego angielskiego – to jest elementarna wiedza i proszę mi nie wmawiać, że w XXI w. można na takie coś nie reagować w sposób stanowczy jeżeli może to doprowadzić do uszkodzenia sprzętu u kogokolwiek kto będzie w przyszłości szukał odpowiedzi na swój problem. Secondo: kto do kogo napisał personalnie, że nie będzie się zniżał do jego poziomu oraz pomawiał mnie o interpretacje a nie rzetelną wiedze? Wiec, jeżeli ktokolwiek ew. mógł czuć się urażony to chyba tylko ja, choć daleko mi do tego, bo wiedza się sama obroni. To kolego @marko22 uważasz za wzór taktu, skromność i cywilizowanego człowieka? Vide chronologia drogi kolego.

 

Przepraszam, ale w taki sposób jakości nauki i kompetencji w Polsce nie zbudujemy i z zaścianka naukowego nie wyjdziemy, jeżeli będziemy promować akty nierzetelnych informacji i wypowiedzi wprost wprowadzających w błąd.

 

Ja mogę powiedzieć ze swojej strony, że być może lekko przesadziłem z ironią. Nie każdy ma ten sam dystans do siebie, ale to tylko dowodzi, że każdy ma jakieś słabości i popełnia błędy, mam tu na myśli oczywiście siebie. Ważne, żeby się zreflektować i się do nich przyznać. Ciekawe jak to będzie u Państwa.

Oczekuje obiektywnego przejrzenie wątku oraz na zreflektowanie się Państwa od swoich wypowiedzi. Pozdrawiam serdecznie :)

Link to post
Share on other sites

Ja mam zastrzeżenia do niektórych twoich wypowiedzi, nie powinny być już tak uszczypliwe, powinieneś się skupić na problemie u usera a nie na tym by pokazać kto jest lepszy. Zwracam uwagę za to nie tylko Tobie, @marko22 sam o tym wie, staram się temperować takie zachowania. Fajnie, że dałeś rozwiązanie do problemu usera, ale tamten tekst o zmarnowanej szansie mogłeś pominąć. 

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...