Analog zum EthTrcv-Inbetriebnahme-Post dieses Blogs sammelt dieser Artikel die häufigsten Fehlerbilder beim Bring-up eines EthSwt-Chips — mit Bezug auf die konkreten APIs und Fehlercodes aus den vorherigen Teilen dieser Serie.

Erster Diagnoseschritt: wo hängt das System fest?

Entscheidungsbaum für die EthSwt-Inbetriebnahme

Ein Port kommt nicht hoch

Mögliche Gründe:

  • EthSwtPortMacLayerType bzw. EthSwtPortTrcvRef im ARXML falsch konfiguriert (siehe Teil 3)

  • Port wurde nie via EthSwt_SetSwitchPortMode(…​, ETH_MODE_ACTIVE) aktiviert

  • Zugrundeliegender EthTrcv-Port hat keinen Link (siehe EthTrcv-Inbetriebnahme)

  • Aufruf erfolgte, bevor der Zustand ETHSWT_STATE_PORTINIT_COMPLETED erreicht war (siehe Teil 2) — die API liefert dann zuverlässig E_NOT_OK

Mögliche Debugging-Wege:

  • EthSwt_GetSwitchPortMode und EthSwt_GetLinkState je Port pollen und mit der erwarteten Topologie abgleichen

  • Extended Production Error ETHSWT_E_SYNCPORT2PHY prüfen — deutet auf einen Widerspruch zwischen Switch-Port-Modus und PHY-Modus hin

  • Port-Konfiguration im AUTOSAR-Tooling gegen die physische Verkabelung prüfen

  • Trcv-Referenz je Port einzeln verifizieren

Kein Forwarding zwischen zwei Ports möglich

Mögliche Gründe:

  • VLAN-Konfiguration trennt die Ports (EthSwtPortIngressDefaultVlan, unterschiedliche VLAN-IDs, EthSwt_EnableVlan versehentlich auf FALSE für ein benötigtes VLAN — siehe Teil 3/4)

  • MAC-Adresstabelle (ARL/FDB) ist übergelaufen bzw. Einträge wurden zu früh gealtert (siehe ARL-Tabelle-Post dieser Serie)

  • Falscher MAC-Learning-Modus (EthSwt_GetMacLearningMode) für die vorliegende Topologie (SVL statt IVL oder umgekehrt)

Mögliche Debugging-Wege:

  • VLAN-Zuordnung beider Ports gegenprüfen (Default-VLAN, Ingress-VLAN-Translation)

  • EthSwt_GetArlTable auslesen und auf fehlende/falsche Einträge prüfen

  • Traffic gezielt auf einen Diagnose-Port spiegeln (siehe Teil 4, EthSwt_WritePortMirrorConfiguration) und den tatsächlichen Frame-Fluss beobachten

Host-Interface antwortet nicht (SPI / MDIO / MMD)

Mögliche Gründe:

  • SPI: Taktpolarität/-phase (CPOL/CPHA) zwischen Host und Switch-Chip stimmt nicht überein

  • MDIO/MMD: falsche Geräte- oder Registeradresse bei EthSwt_ReadTrcvRegister/ReadMmd

  • Reset-Pin des Switch-Chips wurde nicht bzw. nicht lange genug deassertiert

  • Power-Sequencing-Fehler bei Mehrport-Chips (siehe Hardware-Deep-Dive dieser Serie)

Mögliche Debugging-Wege:

  • SPI-Bus mit Logic-Analyzer mitschneiden und Timing/Modus gegen Datenblatt prüfen

  • EthSwt_GetSwitchReg gegen ein bekanntes Standardregister (Chip-ID) testen

  • Power-Sequencing und Reset-Timing oszilloskopisch prüfen

MAC-Adresstabelle läuft über / verhält sich unerwartet

Mögliche Gründe:

  • Aging-Zeit zu lang für die tatsächliche Netzwerkdynamik konfiguriert

  • Broadcast-Sturm oder Loop im Netzwerk füllt die Tabelle mit ständig wechselnden Einträgen (siehe Fallstudie in Teil 4)

  • Statische Einträge kollidieren mit gelernten dynamischen Einträgen

Mögliche Debugging-Wege:

  • MIB-Zähler (EthSwt_GetRxStats/GetTxStats) je Port beobachten, auffällig hohe Broadcast-/Multicast-Raten identifizieren

  • EthSwt_GetArlTable-Inhalt periodisch auslesen und auf ungewöhnliches Wachstum prüfen

Mirroring liefert keine oder falsche Pakete

Mögliche Gründe:

  • CapturePortIdx bzw. die Ingress-/Egress-Bitmasken in der Port-Mirror-Konfiguration falsch gesetzt (siehe Teil 4)

  • MirroringPacketDivider zu hoch gewählt, sodass praktisch keine Frames mehr ankommen

  • Mirror-Target-Port ist selbst nicht ETH_MODE_ACTIVE

Mögliche Debugging-Wege:

  • EthSwt_ReadPortMirrorConfiguration auslesen und mit der beabsichtigten Konfiguration vergleichen

  • EthSwt_GetPortMirrorState prüfen — ist Mirroring überhaupt aktiv?

  • Divider testweise auf 1 setzen, um auszuschließen, dass er die Ursache ist

Zusammenfassung

SymptomErster Blick

Port kommt nicht hoch

Zustand (ETHSWT_STATE_*), EthSwt_GetSwitchPortMode, ETHSWT_E_SYNCPORT2PHY

Kein Forwarding

VLAN-Konfiguration, ARL-Tabelle, MAC-Learning-Modus

Host-Interface tot

ETHSWT_E_ACCESS, Power-Sequencing, Reset-Timing

ARL-Tabelle läuft über

MIB-Zähler auf Broadcast-/Multicast-Raten prüfen

Mirroring liefert nichts

Mirror-Konfiguration und Mirror-Port-State gegenprüfen