avr i pci rtl8139 początki

Mar 24, 2007 9 Replies

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ł



Spinacz biurowy, pawel snipped-for-privacy@poczta.onet.pl>!

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?

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 )

>

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ł

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

>

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ł

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

Spinacz biurowy, pawel snipped-for-privacy@poczta.onet.pl>!

To może ISA? Dużo prostsza. Chyba że koniecznie chcesz PCI :)

"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?????

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