Witam. Może ktoś już próbował podłączyć procesor avr z karą sieciową pci na rtl8139?
Mam problem z zapisaniem danych w przestrzeni adresowej I/O (do adresów konfiguracyjnych pci nie ma problemu działa zapis bitu IOEN w przestrzeni konfiguracyjnej). Otóż nie mogę dokonać zapisu pod niektóre adresy I/O. Np. adres od 0x00 do 0x06 gdzie znajduje się adres mac karty sieciowej zapis danych nic nie zmienia. Czy to jest normalne?
Pozrawiam Paweł
Didn't find your answer? Ask the community — no account required.
Nie sądzę, żeby zawartość sapromu dało się zmienić przez zwykły zapis do przestrzeni i/o... Pewnie są do tego specjalne polecenia. W datasheecie jest napisane, że w ten sposób można?
G
Greg(G.Kasprowicz
laczylem z FPGA i szybkim 8051( FX2) tyle ze wersje 8169 czyli gigabit - smiga pieknie
90% rejestrow ma zgodne z 8139 jak masz zamair zaimplementowac busmastering na AVR? bez tego raczej nei da rady
8139 sam sobie pobiera pakiety z RAMu...inaczej nei da rady - nie wrzucisz do niego danych jak to sie robilo z 8129 obsluga 8139 w tyrbie C+ jest odpowiednikiem 8169 ja uzywalem FPGA i wewnetrzne bufory w postaci DPRAM
nie prosciej zmienic zawartosc eeproma? mzoesz go przeprogramwoac z poziomu rejestrow karty sieciowej - obejrzyj zrodla linuxowego drivera - sa gotowe funkcje
tak, trzeba odblokowac mozliwosc. karta laduje dane z eeproma. Jest bit ktory odblokowuje zapis. nazywa sie EEM1:EEM0, ustawasz oba i zapis sie wlacza znajduja sie w rejestrze 9346CR o offsecie0050H (w 8169, w8139 powinno byc podobnie, w koncu obsluguje je ten sam driver )
>
P
pawel
Właśnie zamierzem zrobić busmastering. Mam podłączone sygnały REQ i GNT i wszystkie pozostałe do tego potrzebne. Do karty bezpośrednio podłączyłem atmega128. Skoro udało mi się softwerowo zrobić zapis i odczyt w przestrzniach configuracyjnej i I/O to nie widzę problemu żeby zrobić busmastering wykorzystując ram w atmedze albo jakiś zewnętrzny.
Czy nie prościej to nie wiem. Wydawało mi się że próbowałem zapisywać do rejestrów do których dane pobierane są z eeproma podczas startu a nie do eeproma. Chociaż może jest to zamapowany eeprom, nie wiem spróbuję odblokowywać bity.
Dzięki za pomoc Pozdrawiam Paweł
G
Greg(G.Kasprowicz
a ja widze..mzoe byc problem gdy zwolnisz PCi CLK do tych pojedynczych kilkuset KHz reszta chiopu pracuje na duzo weikszej czestotliwosci Nie na darmo przelaczasz go w tryb 22 lub 66MHz niby jest to synchroniczne, ale przewiduje ze moga wyjsc z tego problemy
pytanie po co meczyc PCI? Chyba ze dla zabawy.. jest cala masa scalakow ktore obchodza sie bez tego:) np DM9000A - ma pelne 100mbit wraz PHY, prosty interfejs i sam liczy sumy kontrolne TCP/IP, zadowala sie interfejsem 8 bit kosztuje ok 13zl. Uzywalem.. jest jeszcze kilka podobnych oraz proce z wbudowanym MAC i PHY 10 lub
100mbit - podpinasz jedynei kwarc i zasilanie, trafo eth i RJ45 i mozesz psotawic serwer... kosztuje ok 4..10EUR/szt w zaleznosci od FLASHa i producenta.. warto sie bawic? szczegolnie ze sa dostepne gotowe implementacje stosow i serwerow
W moim przypadku potrzebowalem wydajnosci gigabitowej, stad pomysl - koneicznosc PCI.. jednakze walka byla zmudna z powodu bledow w dokumentajci od scalaka - musialem robic reverse engineering drivera linuksowego
u mnie dzialalo
>
P
pawel
Właśnie trochę mnie to zdziwiło że wogóle da się cokolwiek odczytać. Atmega chodzi na kwartu 4MHz, a CLK generuję programowo przełączając jedną z linii portu.
Nikoniecznie. Właśnie teraz masę takich kart można kupić za parę złociszy bo większość płyt głównych ma zintegrowane sieciówki. Poza tym do scalaków o których piszesz potrzebne są jeszcze gniazdo, transformatorek, kwarc jakieś ledy jakieś rezystorki, pcb. Wszystko kosztuje. A tu już jest gotowiec. Nie zależy mi szczególnie na prędkości. Jak dla mnie wystarczyłoby i 10Mbit. A i jakiś najprostszy serwerek http można na tym zrobić. Stos pisałem już od zera na rtl8019as więc z tym nie byłoby problemu.
Właśnie znalazlem sterownik 8139too pod linuksa i jest tam mnóstwo interesującego kodu.
I u mnie zadziałało, rzeczywiście trzeba odblokować te bity. Tylko po restarcie karty wartości i tak nie są zapamiętywane więc to nie jest raczej zamapowany eeprom.
Pozdrawiam Paweł
G
Greg(G.Kasprowicz
moga byc problemy przy busmasteringu -obserwowalem dzwne rzeczy gdy zapodalem do debugowania ok 1MHz zamaist 33 lub 66...
boja wiem - duze to wyjdzie jak chcesz cala sieciowke wsadzic..koszt duzego PCB..gniazdo PCI.. a za cene samego ATMEGA z odpowiednai iloscia pinow kupisz proca z MAC+PHY.. a trafko i zlacze mozesz wylutowac z sieciowki:) zreszta kosztuja grosze, te zintegrowane ostatnio caly serwerek www wsadzilem na PCB o wymiarach rzedu 20x30mm
oczywiscie ze nie do EEPROMu masz specjalny rejestr i programujesz go sterujac jego liniami danych i zegara bit po bicie zmienaiajc wartosci w rejestrze karty PCI. W linuksowym driverze masz kod odpowiedzialny za programwoa implementacje protokolu 93C46
To może ISA? Dużo prostsza. Chyba że koniecznie chcesz PCI :)
P
PAndy
"Greg(G.Kasprowicz)" <Grzegorz.Kasprowicz_usunto snipped-for-privacy@CERN.CH wrote in message news:eu72fv$3fd$ snipped-for-privacy@inews.gazeta.pl...
Nie sa zgodni ze specyfikacja PCI?????
G
Greg(G.Kasprowicz
nie wiem zreszta przebiegi dla busmastering'u wygladaja sporo inaczej niz w datasheet'cie nadal zgodne z PCI, ale tymi z dokumentacji bym sie nie sugerowal mam gdzies zrzuty z signaltap'a , jak ktos jest zainteresowany to moge poszukac
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.