Hi, bin grad am Fehler suchen. Hab einen PCIe Ethernet Device installiert, nur leider hab ich keinerlei Kommunikation auf den PCIe Lanes. Weiß jmd von euch, wer die PCIe Kommunikation startet, und wie diese gestartet wird??? WakeOnLan und Reset sind high. Ansonsten hab ich lediglich die Clk, sowie die RX/TX Lanes installiert. Der Ethernet PHY Device selbst scheint auch zu laufen, da die Leds bereits den richtigen Status (Link, Speed etc.) angeben. Wenn ich ein Ethernet-Kabel zwischen dem Ethernet Phy und meinem Rechner anschließe, so meckert Windows auch nicht, dass es keine Verbindung hätte. Gruß Seb
:
Verschoben durch User
Sebastian schrieb: > bin grad am Fehler suchen. Hab einen PCIe Ethernet Device installiert, Worauf denn? Wie denn? Foto, Schaltplan.... > nur leider hab ich keinerlei Kommunikation auf den PCIe Lanes. Woran erkennst du das?
das keinerlei Kommunkation statt findet, hab ich mit dem Oszilloskop überprüft. Die Lanes sind die ganze Zeit auf 0V für die Clock. Hab mir ein x86-Board (Cpu-Platine) gekauft und dazu ein kleines Targetboard erstellt mit eben einem zusätzlichen Ethernet-Port, via PCIe.
Sebastian schrieb: > Hab mir ein x86-Board (Cpu-Platine) gekauft Betriebssystem? > und dazu ein kleines Targetboard erstellt mit eben einem > zusätzlichen Ethernet-Port, via PCIe. Wie? Mit Fädeldraht? Foto? Wird das Device überhaupt erkannt? Was sagt ein PCI-Scan? Google nach: pci32 craig hart Und hier gibts dazu eine aktuelle pcidevs.txt : http://www.fuwi.ethz.ch/
Lothar Miller schrieb: > Wie? Mit Fädeldraht? Foto? > Was sagt ein PCI-Scan? Als Betriebssystem setze ich momentan Windows Xpe ein. Ist natürlich alles schön verlötet auf einer Platine (nicht mit Fädeldraht oder ähnlichem)... > Wird das Device überhaupt erkannt? Wie sollte es erkannt werden? Bis jetzt hab ich keinerlei Kommunikation auf den PCIe Lanes und daher wird auch im Device Manager nichts angezeigt. > Was sagt ein PCI-Scan? gibt es da ein entsprechndes command-tool um so einen Scan durchzuführen?
Lothar Miller schrieb: > Google nach: pci32 craig hart > Und hier gibts dazu eine aktuelle pcidevs.txt : http://www.fuwi.ethz.ch/Beitrag melden | Bearbeiten | Löschen | hab ich grad ausprobiert, er findet den Device leider nicht; allerdings sind auf dem PCIe Bus0 bereits einige Devices untergebracht. Bekommen die Devices die PCIe-Bus-Adressen vom PCIe-Host übergeben, oder sind diese fest in den Devices selbst integriert?
Sebastian schrieb: > allerdings > sind auf dem PCIe Bus0 bereits einige Devices untergebracht. Und du hast da einfach dein neues Device parallel dazugelötet? PCIe ist kein Bus, das sind Punkt-Zu-Punkt Verbindungen!
Schorsch schrieb: > Und du hast da einfach dein neues Device parallel dazugelötet? das weiß ich nicht genau: vom CPU-Board sind halt insgesamt 5x Tx/Rx PCIe Lane-Päärchen rausgeführt und eines davon hab ich verwendet.
Gibt es für PCIe auch eine present detection? Hab jetzt nichts gefunden; weiß aber dass das bei PCI required ist, damit der Device erkannt wird.
Sebastian schrieb: > Gibt es für PCIe auch eine present detection? Hab jetzt nichts gefunden; > weiß aber dass das bei PCI required ist, damit der Device erkannt wird. Ja, ich würde vermuten das die Leitungen "PRSNT#1" und "PRSNT#2" dafür da sind. JTAG und I²C (SM-Bus) sind aber hoffentlich optional. http://www.pcisig.com/specifications/pciexpress/ http://pinouts.ru/Slots/pci_express_pinout.shtml
@Sebastian: >> Und du hast da einfach dein neues Device parallel dazugelötet? >das weiß ich nicht genau: vom CPU-Board sind halt insgesamt 5x Tx/Rx >PCIe Lane-Päärchen rausgeführt und eines davon hab ich verwendet. Und woher weißt Du das Du PCIe-Lanes erwischt hast und nicht vielleicht etwas anderes? Mit was für Tastköpfen hast Du denn versucht den PCIe zu debuggen? Mal schauen woran ich mich bezüglich noch erinnere: - Läuft da nach dem Start nicht eine Trainingssequenz zwischen den Phy-Modulen von Host und Slave? Da werden die miteinander synchronisert. - Dann kommt sicher sowas wie die Enumeration bei klassischem PCI, - An PCIe-Slots gibt es ein Signal "PRSNT#1 - Hot plug presence detect", soviel zum Thema presence detection. Wenn sowas nicht existiert muß das BIOS wissen was an welchen PCIe-Lanes angeschlossen ist um es korrekt zu initialisieren.
Da gibts noch ein paar Worte zum Thema presence detect: http://www.pcisig.com/developers/main/training_materials/get_document?doc_id=f275ada7d622d20947d69cbb34b6e0a0622249c3
Sebastian schrieb: > Hi, > Weiß jmd von euch, wer die PCIe Kommunikation startet, und wie diese > gestartet wird??? Der root complex. Zuerst wird eine Link-Training Sequenz gestartet. Danach die Enumeration durchs BIOS > WakeOnLan und Reset sind high. Ansonsten hab ich lediglich die Clk, > sowie die RX/TX Lanes installiert. Der Ethernet PHY Device selbst > scheint auch zu laufen, da die Leds bereits den richtigen Status (Link, > Speed etc.) angeben. Wenn ich ein Ethernet-Kabel zwischen dem Ethernet > Phy und meinem Rechner anschließe, so meckert Windows auch nicht, dass > es keine Verbindung hätte. 1. Hast du die richtigen Lanes erwischt? Oder sinds welche vom PEG? Die können oft nicht als Einzellanes konfiguriert werden. 2. Rx auf Tx, + und - richtig herum? Was macht der Clock? Presence ist low?
Jens schrieb: > An PCIe-Slots gibt es ein Signal "PRSNT#1 - Hot plug presence detect", > soviel zum Thema presence detection. Wenn sowas nicht existiert > muß das BIOS wissen was an welchen PCIe-Lanes angeschlossen ist um > es korrekt zu initialisieren. Ohje, ein sog. PRSNT#1 Signal steht mir leider nicht zur Verfügung, so dass es anscheinend über das Bios eingestellt werden muss. Wahrscheinlich ist das nicht mal möglich bzw. nur durch den Hersteller vom CPU-Board. Wie muss so ein IC im Bios angegeben werden? Bzw. wie weiß das BIOS, dass es sich genau um diesen IC an PCIe-Lane xyz handelt? Im Bios kann ich lediglich die PCIe-Lanes enablen, disablen oder auf Auto (present detection) stellen. Jens schrieb: > Und woher weißt Du das Du PCIe-Lanes erwischt hast und nicht vielleicht > etwas anderes? Mit was für Tastköpfen hast Du denn versucht den PCIe > zu debuggen? Also ich sag mal so, mit dem vorhandenen Oszi kann ich nicht wirklich überprüfen ob die Frequenz vom PCIe Clock stimmt, aber man sieht zumindestens ob sich was auf dem Bus tut oder nicht. Die Tastköpfe sind 1:1 oder 10:1. Nachdem ich im BIOS den PCIe-Lane 0 auf enabled geschaltet habe, bekomme ich auch ein CLK-Signal (ob es genau stimmt, weiß ich wie gesagt nicht, aber es bewegt sich was). Die beiden RX/TX Lanes besitzen allerdings immer den gleichen Level (RX ist auf Null und bei TX ist einer auf 1.5V und der andere auf 0V) Jens schrieb: > Läuft da nach dem Start nicht eine Trainingssequenz zwischen > den Phy-Modulen von Host und Slave? Da werden die miteinander > synchronisert Zwischen welchen Modulen? Ich hab auf dem Targetboard einen Ethernet-PHY installiert, welcher auf der einen Seite die Signale von der Ethernet-Buchse animmt und auf der anderen Seite diese Signale per PCIe an den x86 Prozessor bzw. dessen Southbridge weiterleitet. Vielen Dank an euch alle für die Hinweise....
Michael X. schrieb: > 1. Hast du die richtigen Lanes erwischt? Oder sinds welche vom PEG? Die > können oft nicht als Einzellanes konfiguriert werden. > 2. Rx auf Tx, + und - richtig herum? Was macht der Clock? Presence ist > low? PEG hab ich auf dem CPU-Board, allerdings hab ich diese nicht erwischt. Hab einfach PCIe_Rx0+/- und PCIe_Tx0+/- verwendet. Die Clock hat ein Signal, sowie einen Offset von ca. 400mV
bin leider zum ersten Mal jetzt mit PCIe in Berührung gekommen (deshalb so anfänger-fragen - werd mir aber heute abend mal die pdfs durchlesen, um etwas schlauer zu werden): hab mir nochmal das Pinning vom Connector zum und vom CPU-Board angesehen. Bezüglich der Present-Detection gibt es diese nur für den PEG-Port und für die ExpressCards (aber die kann ich nicht für so einen PCIe Ic verwenden, oder)? Michael X. schrieb: > Der root complex. Zuerst wird eine Link-Training Sequenz gestartet. > Danach die Enumeration durchs BIOS Werden bei dieser Link-Traning Sequenz auch die RX/TX Lanes verwendet?, So dass man auf diesen beiden Lanes auch etwas sehen müsste? Seb
ExpressCard beinhaltet PCIe, den müsstest du auch verwenden können. Ohne Presence Detect wird anscheinen das Link Training nicht vom Root Complex gestartet. Auch wollen die meisten PCIe Endpoints das Reset sehen, um danach auf das Link Training zu warten. Das muss also auch passend kommen. Schau doch in die PCIe Spec, da steht drin, welche Signale optional und welche nötig sind. 400mV Offset? Fehlen da eventuell die 100nF Kondensatoren an den Ausgängen des Root Complex Chips? PCIe ist AC-gekoppelt LVDS. Ohne die Spec ist das für dich nur Räselraten...auf jeden Fall ist das Reset für den Endpoint essentiell, ohne RST Flanke wird der nicht auf den Root Complex reagieren.
"By the standard, PERST# which is the Express Card reset, is low as long CPPE# is high. As soon as a Express Card is plugged in, the cards pulls CPPE# low, and after a fixed delay of 100ms, the PERST# signal rises high" kann ich einfach das CPPE# Signal vom Expresscard-Slot1 per Pulldown auf 0V ziehen und PERST# vom Expresscard-Slot1 einfach an den RST Input vom Ethernet Device anschließen? >400mV Offset? Fehlen da eventuell die >100nF Kondensatoren an den Ausgängen des Root Complex Chips? glaub ich nicht, laut Datenblatt sollten diese bereits auf dem CPU-Board installiert sein für die CLK-Signale.
Sebastian schrieb: > Werden bei dieser Link-Traning Sequenz auch die RX/TX Lanes verwendet?, > So dass man auf diesen beiden Lanes auch etwas sehen müsste? Ja. Hast du im TX-Zweig des Ethernetcontrollers die 100nF Koppelkondensatoren drin? Langsam wirds Zeit für einen Schaltplan. Außerdem kannst du den Hersteller/Typ von deinem Modul gerne nennen.
hab jetzt PERST u. CPPE hinzugefügt und jetzt wird im Device Manager "Ethernet Controller" erkannt, allerdings wird auch nach installieren des Realtek Drivers RTL8111B IC dieser nicht als Realtek ausgemacht....
Michael X. schrieb: > Du hast offensichtlich ein leeres Konfigurations-EEprom. das ist richtig. Hab eines angeschlossen, allerdings steht da nichts drinnen; hab auch auf der Realtekseite keinerlei Beschreibungen Downloadsachen gefunden, die diese Eeprom beschreiben würden.
Eine marktübliche PCIe-Karte mit dem Ethernetcontroller besorgen und den dort enthaltenen EEPROM kopieren?
Jens schrieb: > Eine marktübliche PCIe-Karte mit dem Ethernetcontroller besorgen und > den dort enthaltenen EEPROM kopieren? Hab die Informationen grad mal bei Realtek angefragt. Mal schaun ob da was zurückkommt. Ohne Eeprom erhält man das gleiche Resultat. Komisch finde ich nur, dass man den Treiber nicht installieren kann, auch wenn man dem Device den passenden Treiber bereits auswählt. "The hardware was not installed, because the wizard couldn`t find the necessary software", lautet stets die exakte Fehlermeldung vom "New-Hardware-Wizard" (egal was ich auswähle).
Passt denn die gemeldete PCI Vendor und Device ID zu denen im Treiber? Bei leerem EEPROM laden die meisten Controller eine Default-Config, die meist nicht in den endgültigen Treibern für den Kunden drin ist. Außerdem brauchst du dann noch ein Programm, mit dem du das EEPROM beschreiben kannst. Fraglich, ob Realtek das rausrückt.
nicht komplett: Vendor: 10ech realtek semiconductor co., ltd (scheint richtig zu sein) Device 8129h rtl-8129 Subsystem id 812911ech rtl8219 fast eth adapter (aber hier wird anscheinend ein anderer Device gefunden, bzw. meint dass das System)...
Sebastian schrieb: > Device 8129h rtl-8129 > Subsystem id 812911ech rtl8219 fast eth adapter > (aber hier wird anscheinend ein anderer Device gefunden, bzw. meint dass > das System)... hab mal zum Spaß die 100nF im Tx-Zweig zum x86 Prozessor rausgenommen und durch 0Ohm ersetzt -> liefert das gleiche Ergebnis, was die Device-ID angeht. Ich dachte jetzt würde aufgrund der fehlenden Kondensatoren etwas anderes angezeigt werden (irgendeine ID)...
Sebastian schrieb: > auch nach installieren > des Realtek Drivers RTL8111B IC und Sebastian schrieb: > Device 8129h rtl-8129 > Subsystem id 812911ech rtl8219 fast eth adapter Nur um die blödsten Fehler zuerst auszuschliessen: Dein Treiber stimmt? Sicher? was passiert wenn du einen rtl-8129 - Treiber installierst?
Schorsch schrieb: > Nur um die blödsten Fehler zuerst auszuschliessen: einen Treiber hab ich bis jetzt noch gar nicht installiert. Lothar Miller schrieb: > Google nach: pci32 craig hart > Und hier gibts dazu eine aktuelle pcidevs.txt : http://www.fuwi.ethz.ch/ wenn ich dieses Programm anwende oder wenn ich im Device Manager auf den "Ethernet Controller" mit gelben Fragezeichen klicke, bekomme ich diese Informationen angezeigt. Schorsch schrieb: > Dein Treiber stimmt? Sicher? was passiert wenn du einen rtl-8129 - > Treiber installierst? Anscheinend ist dieser RTL8129 sein sehr alter Realtek Device, da ich auf deren Seite gar keine Treiber finden kann. Gekauft hab ich einen RTL8111B und das steht auch auf dem Device drauf.
Hab grad den RTL8129 Treiber ausprobiert - als Ergebnis bekam ich den blauen Bildschirm angezeigt mit "hardware malfunction parity check memory parity errror"
Sebastian schrieb: > Gekauft hab ich einen > RTL8111B und das steht auch auf dem Device drauf. Ah, ok. Ein Blick in die Linux-Treiber-Sourcen für den Chip offenbart, dass die RTL-Chips wohl ihre PCI-IDs aus dem EEProm lesen möchten. Wenn kein EEProm vorhanden, dann melden sie sich als 0x8129. Also: Entweder den Treiber so hinbiegen, dass er diese Device-ID schluckt, (Und dabei den 8129-Treiber, der evtl. beim Windows "mitgeliefert" wurde, deaktivieren) oder ein EEProm mit passender Device-ID an den Chip hängen.
Schorsch schrieb: > Ah, ok. Ein Blick in die Linux-Treiber-Sourcen für den Chip offenbart, > dass die RTL-Chips wohl ihre PCI-IDs aus dem EEProm lesen möchten. Wenn > kein EEProm vorhanden, dann melden sie sich als 0x8129. kannst du mir noch einen link schicken, wo du das gefunden hast???? Das wäre ja super, wenn nur dass der grund wäre!!
Sebastian schrieb: > kannst du mir noch einen link schicken, wo du das gefunden hast???? Das > wäre ja super, wenn nur dass der grund wäre!! Einen Link brauchts dafür nicht, es sind nur diese Zeilen aus der 8139too.c gewesen:
1 | /* Bogus 8139 silicon reports 8129 without external PROM :-( */
|
2 | {0x10ec, 0x8129, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139 }, |
und mit 0x10EC / 0x8129 hat sich dein Device ja gemeldet, oder?
Schorsch schrieb: > und mit 0x10EC / 0x8129 hat sich dein Device ja gemeldet, oder? richtig... vielen Dank für deine Mühe. Werd berichten, sobald ich die Eeprom-Daten von Realtek erhalten habe.
Realtek und Antwort? Naja, viel spaß. Entweder eeprom so beschreiben wie es im Datenblatt steht oder das passende Tool besorgen. Beim 8139 hieß es 'rset.exe', weiß nicht ob die aktuelle variante den 8111 unterstützt. Hast du den Chip von Cornelius-Consult? Der hätte auch die Software.
der_michl schrieb: > Hast du den Chip von > Cornelius-Consult? Der hätte auch die Software. bei denen hab ich schon angefragt - die haben leider nichts; haben mich lediglich an realtek.de verwiesen wo mir schon eine Frau geantwortet hat und bei Realtek nachfragt nach diesen Daten.... der_michl schrieb: > Entweder eeprom so beschreiben wie es im Datenblatt steht oder das > passende Tool besorgen wo steht das denn im Datenblatt? Hab da nichts gefunden, was angibt wo was im Eeprom gespeichert werden muss? z.B. kann man bei diesem IC auch die LEDs entsprechend über das Eeprom konfigurieren... http://bothhand.info/pdf/spec-8111b(140).pdf
es hat lange gedauert, aber jetzt hab ich den Inhalt für das Eeprom bekommen von Realtek und der RTL8111B wird jetzt auch im Device Manager richtig erkannt und angezeigt. Allerdings kann ich bis jetzt keine Verbindung aufbauen. Die Verbindung wird immer als "unconnected" dargestellt. Die LED (Tx/Rx) blinkt zwar, aber mit dem Wireshark sehe ich keinerlei Traffic. Das Eeprom selbst kann ich über den Hauptprozessor (übers DOS) auslesen und programmieren dank Realtek, so dass ich auf der PCIe-Strecke keinen Fehler vermute. Die MDI-Leitungen sind auch alle entsprechend angeschlossen... :-( Vielleicht hat jmd von euch noch einen Rat, was ich mal ausprobieren sollte. Wenn ich den Realtek über ein Ethernetkabel direkt mit einem anderen Rechner verbinde, wird auch eine Verbindung bei diesem Rechner angezeigt.
hab mir grad noch einmal ein paar schaltpläne angeschaut: wird zwischen RTL8111B und dem Transformator keine Leitungsterminierung mit 49.9 Ohm Widerständen verwendet???
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.