[#1] Drivery do sprzęttu
Badam temat interakcji z kartami rozszerzeń, głównie Zorro.
Jako pacjenta wybrałem A2065 w uae - czyli kartę sieciową.
Z amigowej dokumentacji mam opisy autoconfiga, trochę w dokumentacji expansion.library i w inkludach.
Generalnie wszystko ok, ale jak doszedłem do gmerania po rejestrach rozszerzenia, to pojawił się problem. Nie wiem, jak się do tych rejestrów dobrać. Niestety nie mam źródeł amigowego drivera lub softu testowego (np. taki programik Lance-Test) - więc zacząłem to dissasemblować, a to już hardkor. Ten Lance-Test np. podaje MAC address karty, co wyciąga się za pomocą odpowiedniej sekwencji zapisów do kilku rejestrów tej karty.
Znalazłem źródła driverów dla kart z tym chipem na linuksie i atari, ale z nich wynika że adres bazowy jest podawany pewnie z systemu i potem tylko dodaje się do tego offset rejestru i czyta/pisze normalnie jak do pamięci.
Do tego dochodzi dziwne czytanie danych - np. dostęp do ROM urządzenia jest nibblami tak, że z odczytanego 16-bitowego słowa dane zawarte są tylko w 4 bitach, potem to trzeba składać do kupy, jeszcze odwracać bity... Ale nie wiem czy ta sama zasada dotyczy dostępu do rejestów?
Na pewno ma to jakiś związek z adresem cd_BoardAddr za struktury ConfigDev, ale nie udało mi się namierzyć tego. Być może tu nie ma reguły i mapowanie rejestrów jest inne dla każdego urządzenia (offset od boardAddress), ale wszelkie offsety znalezione w źródłach linuksowych i atarowych mi nie zadziałały.
Czy ktoś tu jest w stanie coś doradzić?
[#2] Re: Drivery do sprzęttu

@BigBang, post #1

Nibblami jest dostęp tylko do rejestrów AutoConfiga, ale sterownik karty się nimi nie musi interesować, w przypadku gdy karta nie jest hackiem, sterownik dowiaduje się wszystkiego korzystając z expansion.library.
[#3] Re: Drivery do sprzęttu

@Krashan, post #2

Niestety, z expansion liba można wyciągnąć tylko podstawowe informacje, m.in. bazowy adres urządzenia.
W przypadku tego A2065 dopiero jak zajrzałem do źródeł uae, to się okazało że rejestry znajdują się pod offsetem 0x4000 od adresu bazowego. Nie wiem skąd można wyciągnąć taką informację, bo jak mi się wydaje, taki offset zależy od konstruktora karty, czyli w zasadzie wie tylko producent, który dostarcza również sterownik, a jak kto chce swój sterownik napisać, to pozostaje mu disasemblowanie i analiza isniejącego już i działającego sterownika.
[#4] Re: Drivery do sprzęttu

@BigBang, post #3

Niestety, z expansion liba można wyciągnąć tylko podstawowe informacje, m.in. bazowy adres urządzenia.


To jest wlasnie ta istotna informacja.

W przypadku tego A2065 dopiero jak zajrzałem do źródeł uae, to się okazało że rejestry znajdują się pod offsetem 0x4000 od adresu bazowego. Nie wiem skąd można wyciągnąć taką informację,


Wiesz bardzo dobrze!

czyli w zasadzie wie tylko producent,


Dokladnie!

a jak kto chce swój sterownik napisać, to pozostaje mu disasemblowanie


Ewentualnie kontakt z producentem i/lub dokumentacja developerska do danego urzadzenia. Oczywiscie w przypadku amigowych zabytkow jest to niewykonalne.
[#5] Re: Drivery do sprzęttu

@mschulz, post #4

Ehhh... czyli jak zwykle, ciągle pod górę!
Myślałem że jest to wszystko jakoś lepiej udokumentowane i ogólnie dostępne.
Oczywiście dokumentacja samego układu jest dostępna, brakuje tylko takiej mapy pamięci urządzenia w przestrzeni Zorro. W przypadku tak prostych urządzeń jak ta A2065 jeszcze jakoś da radę się dogrzebać, ale jak będę chciał pokombinowac z CyberVisionPPC to słabo to widzę - ale może niepotrzebnie się uprzedzam ;)
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem