atarionline.pl 'BAD DMA' - koniec mitu i problemów - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthorCyprian
      • CommentTime22 Apr 2023 13:04 zmieniony
       
      @czietz na Atari-Forum.com po analizie problemu DMA (szczegóły w linku poniżej) doszedł do wniosku że błędu zapisu można uniknąć w prosty programowy sposób. Nie ma więc potrzeby wymiany ani DMA ani CPU.

      Szczegółowy opis błędu i rozwiązanie:
      ->link<- www.chzsoft.de/site/hardware/new-atari-ste-bad-dma-investigation/

      Wątek na AF:
      ->link<- atari-forum.com/viewtopic.php?p=446002#p446002


      Tak pokrótce, 'BAD DMA' to jedna z wersji układu DMA o numerze C025913-38. Była ona montowana w ST i wczesnych STE.
      W ST i większości STE układ C025913-38 działał poprawnie, jednak w niektórych STE dane były źle zapisywane na dysk twardy, odczyt był poprawny. Do tej pory jedynym znanym rozwiązaniem była wymiana w STE albo DMA na nowszą wersję albo procesora na wersję HC.

      Atari zalecało by zapis do rejestrów DMA przez procesor był 32bitowy ("move.l") a nie 16bitowy ("move.w"), ze względu na jakiś błąd w układzie C025913-20 montowanym w pierwszych ST. Otóż @czietz odkrył że w przypadku niektórych C025913-38 w STE, zapis 32bitowy powoduje błąd przy zapisie danych na HDD. Wystarczy więc robić zwykły 16bitowy zapis rejestrów DMA by dane były poprawnie zapisywane na HDD. Wystarczy więc odpowiednio poprawić sterowniki dysków.
      • 2:
         
        CommentAuthorBca
      • CommentTime23 Apr 2023 03:04
       
      wymitasz
      • 3:
         
        CommentAuthorCyprian
      • CommentTime23 Apr 2023 20:04
       
      • 4:
         
        CommentAuthorBca
      • CommentTime24 Apr 2023 03:04
       
      • 5:
         
        CommentAuthorCyprian
      • CommentTime24 Apr 2023 15:04
       
      czyli jednak gtp nie jest taki głupi
      • 6:
         
        CommentAuthorKaz
      • CommentTime24 Apr 2023 15:04
       
      No w końcu ktoś przeanalizował problem. Tyle lat powielania błędnych informacji, tyle osób szukających "lepszych DMA" :D. Gratulacje dla autora analizy i dzięki Cyprian za popularyzowanie wiedzy. Z Ciebie taki "pogromca mitów" ST/STE :D
      • 7:
         
        CommentAuthorCyprian
      • CommentTime25 Apr 2023 14:04
       
      spokojnie, rozsiewam nowe ;)
      • 8:
         
        CommentAuthorPeri Noid
      • CommentTime25 Apr 2023 18:04
       
      Autorzy driverów nie podchodzą do tego tak optymistycznie.
      • 9:
         
        CommentAuthorCyprian
      • CommentTime25 Apr 2023 18:04
       
      @Peri Noid no na razie to musimy poczekać aż większa ilość osób potwierdzi lub nie czy rozwiązanie czietza działa. Na razie sprawdził STE osób które się do niego zgłosiły.

      Z tego co wiem to na razie tylko jeden się wypowiedział, czekamy jeszcze na autora HD Drivera. Oba sterowniki są płatne, myślę więc że może to być czynnikiem który sprawi że poprawią co trzeba.

      Z darmowych, to sterowniki w EmuTOS są poprawione (był pomysł aby był on również jako osobny program), no i dodatkowo dostępne są źródła innego świetnego sterownika - AHDI.
      Więc w razie czego jest wybór.
      • 10:
         
        CommentAuthorPeri Noid
      • CommentTime25 Apr 2023 18:04
       
      Ja bym wolał, żeby udało się precyzyjnie wytłumaczyć powód i na jego podstawie zrobić poprawkę. Czyli wyjaśnić przyczynę obserwując objawy ale i co tam jeszcze się da. Bo tutaj, mam wrażenie, to nadal jest paczowanie skutków przez obserwację objawów ale bez wyjaśniania przyczyn.

      Oczywiście mogę nie mieć racji.
      • 11:
         
        CommentAuthorCyprian
      • CommentTime25 Apr 2023 19:04
       
      myślę że właśnie to zrobił,- sprawdził, znalazł rozwiązanie i opisał, oczywiście dotyczy to tego szczególnego błędu nazwanego "Bad DMA" czyli STE i C025913-38.

      Z tego co czytałem/słyszałem to są inne problemy z DMA (i nie tylko) np w ST, które mogą wynikać chociażby z wieku sprzętu, ale to zupełnie inna bajka.
      • 12:
         
        CommentAuthorPeri Noid
      • CommentTime25 Apr 2023 20:04
       
      Nie do końca skoro nie w każdym przypadku C025913-38 to się objawia. To może być do pewnego stopnia loteria, co nie pomaga w żaden sposób. No ale trzymam kciuki, żebym nie miał racji ;-)
      • 13:
         
        CommentAuthorCyprian
      • CommentTime26 Apr 2023 01:04
       
      jasne,

      Teraz widzę że autor HD Drivera też odpowiedział: ->link<-
      • 14:
         
        CommentAuthorPeri Noid
      • CommentTime26 Apr 2023 08:04
       
      Nie przyjął tłumaczenia. Ja od siebie dodam, że naprawiałem STe @Mayoneza, który wykazywał problem z bad DMA. I w nim zamieniliśmy kość "z tej drugiej" właśnie na na C025913-38. I problem ustąpił. A to świadczy o czymś zupełnie innym, odwrotnym do tezy, że to wina kości. Bo skoro zakładamy złą kość, która naprawia dobrą to coś zdecydowanie nie trzyma się kupy.

      Dlatego podtrzymuję tezę, że nie zdiagnozowano przyczyny a jedynie ogarnięto efekt w pewnych warunkach. Tylko nadal nie wiadomo precyzyjnie, co to za warunki.
      • 15: CommentAuthortbuff
      • CommentTime24 Nov 2024 08:11
       
      Ja mam od kilku miesięcy w końcu swojego st'ka z mini-ultrasatan i dokładnie ten przypadek. Odczyt ok, jakikolwiek zapis na partycję krzaczy pliki. Znalazłem informację że hdddriver od 11 wersji to obsługuje, nawet zakupiłem ostatni (v12.5) i niestety wciąż dokładnie tak samo się zachowuje. Więc chyba bez lutownicy z którą sobie nie poradzę nie przeskoczę. Ponoć wersja z lutowaniem rezystorów na tym DMA (poprawka "na twardo") najlepiej rozwiązuje ten problem więc pewnie tak będę musiał zrobić. Chyba, że są jakieś pomysły u Was (może ten hddrive trzeba jakoś dziwnie skonfigurować)?

      Poza tym sprzęcik chodzi fantastycznie - ponad 20 lat temu drukowałem na takim pracę inżynierską na igłówce :)
      • 16:
         
        CommentAuthorCyprian
      • CommentTime24 Nov 2024 10:11
       
      @tbuff Miałbyś może ochotę i możliwość zrobienia test? Jeśli tak to mogę udostępnić dedykowaną wersję EmuTOS, która powinna w założeniu powinna poprawnie programować DMA by unikąć błędów zapisu.
      • 17: CommentAuthormayonez
      • CommentTime24 Nov 2024 11:11
       
      Dodam jeszcze, że @Peri Noid próbował problem naprawić przez wymianę procesora na wersję HC, ale nie pomogło.
      • 18:
         
        CommentAuthorPeri Noid
      • CommentTime24 Nov 2024 12:11
       
      Tak, kiedyś próbowałem. Było jeszcze gorzej - nie poprawiło transmisji a popsuło stabilność.
      • 19:
         
        CommentAuthorCyprian
      • CommentTime21 Jul 2025 10:07 (5 dni temu) zmieniony
       
      Ciekawy wpis o 'naprawie' tzw 'BAD DMA' softwareowo:
      ->link<- atariscne.org/news/index.php/atari-ste-faulty-dma-chip-fixed-in-software

      I jeszcze tu:
      ->link<- www.pouet.net/prod.php?which=104445

      For those not in the know. Earlier Atari STe dma chips had some different behaviour in certain cases than the later chips. For a long time these earlier chips were deemed 'bad' dma. Only recently due to decapping and analysis of the chip the community found out the subtle hardware difference between the two versions. As a result, by using the 'bad' dma chip version in an other way (in code) it turns out the chip behaves as intended. This release contains a binary patch for one of the better known hard disk drivers for the Atari, such that this hard disk driver now also works correctly with the 'bad' dma. And thus, we achieve DMA bliss!

      ->link<- www.chzsoft.de/site/hardware/new-atari-ste-bad-dma-investigation/
      This investigation has found the root cause of the bad DMA phenomenon – hopefully ending years of speculation and guesswork:
      * The errors while writing to an ACSI disk in some STEs with the old C025913 DMA IC are caused by borderline timing of the RDY signal between DMA and GSTMCU, which in turn causes some bytes not to be written to the disk. This corrupts the disk’s contents.
      * The newer C398739 DMA IC is not just better by chance but does indeed contain a specific fix for this problem: a change in the timing of the RDY signal.
      * The previously published workarounds (replacing the CPU, replacing the power supply, changing pull-up resistors), while potentially beneficial to a particular machine, are just a short-term fix for a much deeper problem
      * There is a potential software workaround, which should be further investigated and validated.
      • 20: CommentAuthorgregor2
      • CommentTime21 Jul 2025 13:07 (5 dni temu)
       

      #cyprian:

      zapis 32bitowy powoduje błąd przy zapisie danych na HDD. Wystarczy więc robić zwykły 16bitowy zapis rejestrów DMA by dane były poprawnie zapisywane na HDD


      To byłaby sensacja i kompromitacja zarazem, ponieważ takie rozwiązanie to chyba pierwsza rzecz, jaka powinna być sprawdzona.
      • 21:
         
        CommentAuthorjhusak
      • CommentTime21 Jul 2025 15:07 (4 dni temu)
       
      To jednak 16 bitowe maszyny o znacznie bardziej skomplikowanej konstrukcji. Kiedyś oscyloskopy idące w dziesiątki MHz były w cenie samochodu. A teraz za niecałego tysiaka można mieć. Poza tym wiedza się poszerzyła i przysiedli do tego ludzie, co nie mieli symptomu przyzwyczajenia się do problemu, bo czas zatarł wspomnienia. Kiedyś HDD to było marzenie, a dzisiaj to konieczność, stąd też ktoś się wkurzył i zrobił.
      • 22: CommentAuthorgregor2
      • CommentTime21 Jul 2025 18:07 (4 dni temu) zmieniony
       
      A ja myślę, że Jack szybko się dowiedział, że jest problem, w końcu nie chodziło o błąd występujący raz na kwadrylion operacji, w dodatku w przestrzeni kosmicznej, a coś, co łatwo było sprawdzić.
      Tylko że liczył, że skoro to zabawka, to nikt nigdy nie podłączy HDD i smród nie wypłynie ?
      Oczywiście wszystkim zdarzały się wpadki, choćby Apple III, tyle że było to zupełnie inne podejście, gdzie wymieniono 14 tys. komputerów, czy np. z kontrolerem dysków w Apple II, gdzie po wprowadzeniu większej gęstości wymieniono każdemu zainteresowanemu PROM mimo ze technicznie byl sprawny, ale nie pozwolil na obsluge nowego formatu dysku i DOS-a.
      Nie myli się tylko ten, kto nic nie robi, ale to, jak się traktuje klientów, ma znaczenie.
      Kto wie, może dlatego Atari za czasów Jacka nigdy nie było brane poważnie i w końcu musiało zbankrutować.
      • 23:
         
        CommentAuthorPeri Noid
      • CommentTime21 Jul 2025 18:07 (4 dni temu)
       
      Przy starych dyskach typu Megafile problem nie występuje, jeśli się nie mylę.
      • 24:
         
        CommentAuthorCyprian
      • CommentTime21 Jul 2025 20:07 (4 dni temu) zmieniony
       
      gregor2
      To byłaby sensacja i kompromitacja zarazem, ponieważ takie rozwiązanie to chyba pierwsza rzecz, jaka powinna być sprawdzona.

      nie takie cuda przechodziły, przykładowo instrukcja TAS która zawiesza komputery konkurencji, albo wadliwe GTIA pchane do 800XE.
      Kłopot z 'Bad DMA' występuje w wyłącznie we wczesnych STE i jest dość rzadki (szybko zrobiono poprawkę).
      • 25:
         
        CommentAuthorjhusak
      • CommentTime23 Jul 2025 21:07 (2 dni temu) zmieniony
       
      Tu jest jakiś filmik o tym, jednak nie chce mi się go oglądać :(

      ->link<-

      Powiedzcie, czy on ma sens, jak nie ma to usunę posta.
      • 26:
         
        CommentAuthorCyprian
      • CommentTime23 Jul 2025 22:07 (2 dni temu) zmieniony
       
      @jhusak to jest właśnie stary sposób naprawy, nowy nie wymaga żadnych przeróbek.


      ->link<- atariscne.org/news/index.php/ste-bad-dma-atariscne-org-testing-a-software-fix

      • 27: CommentAuthorgregor2
      • CommentTime23 Jul 2025 23:07 (2 dni temu)
       
      @jhusak
      Ten filmik jest o problemie z FDD i naprawie przez wymiane DMA.
      Wiec raczej nie na temat.
      @Cyprian
      To tez mozna naprawic programowo ? ;)
      • 28:
         
        CommentAuthorCyprian
      • CommentTime23 Jul 2025 23:07 (2 dni temu)
       
      @gregor2 dobre pytanie, przesyłaniem danych do HDD i FDD zawiaduje ten sam układ - "DMA", więc być może tak.
      • 29: CommentAuthoras...
      • CommentTime24 Jul 2025 00:07 (2 dni temu)
       
      @Cyprian nie tylko 800xe, ale i 130xe oraz 65xe na płytach 130xe też miały uwalone gtia :)
      Najlepszą naprawą gtia jest vbxe albo Zosia ;)
      • 30:
         
        CommentAuthorjhusak
      • CommentTime24 Jul 2025 08:07 (2 dni temu)
       
      GTIA fixer jest tańszy, prostszy i mniej inwazyjny. Nie to żebym zachwalał, ale testowałem i działa to zacnie.