Kritisches Problem
Die P-Tile/H-Tile Avalon® Streaming Intel® FPGA IP für PCI Express* und die P-Tile/H-Tile Avalon® Memory Mapped Intel® FPGA IP für PCI Express* implementieren optionale ARI-Funktionen (Alternative Routing-ID Interpretation), wenn Multi-Function- oder Single Root I/O Virtualisierungsfunktionen (SR-IOV) aktiviert sind. ARI-Funktion umfasst ein Feld, das als nächste Funktionsnummer bezeichnet wird, damit das Host-BIOS den Aufzählvorgang durchführen kann. Wenn ARI aktiviert ist und die Anzahl der physischen Funktionen (PFs) weniger als 8 für P-Tile oder 4 für H-Kachel beträgt, wird bei der nächsten Funktionsnummer fälschlicherweise ein Wert von PF 1 angezeigt.
Infolgedessen können die folgenden Fehlerstatus-Bits im Endgerät gesetzt werden, wenn AER aktiviert ist, da der Root-Port eine Konfigurationsanforderung an den nicht vorhandenen PF ausgibt, auf den die falsche nächste Funktionsnummer hinweist:
- Korrekturfehler erkannt (Gerätestatusregister)
- Nicht unterstützte Anforderungserkennung (Gerätestatusregister)
- Warnhinweis zum nicht schwerwiegenden Fehlerstatus (Register für korrektablen Fehlerstatus)
- Fehlerstatus nicht unterstützter Antrag (Nicht korrigierbares Fehlerstatusregister)
- Nur eingestellt, wenn das Bit "Advisory Non-Fatal Error Mask" auf "0" gesetzt ist (Correctable Error Mask Register)
Eine ERR_COR-Nachricht wird an den Root-Port gesendet, wenn AER durch Einstellung der folgenden Bits unten aktiviert ist:
- Die Warnmaske für nicht schwerwiegende Fehler ist auf "0" eingestellt (Registrierung für korrigierbare Fehlermaske)
- "Correctable Error Reporting Enable" ist auf "1" gesetzt (Gerätesteuerungsregister)
- "Nicht unterstütztes Request Reporting Enable" ist auf "1" gesetzt (Gerätesteuerungsregister)
Im Root-Port wird das folgende Bit eingestellt, wenn der Status "Fertigstellung mit nicht unterstützter Anfrage" erhalten wird.
- Erhaltener MasterAbort (Sekundäres Statusregister)
Außerdem wird im Root-Port das folgende Bit eingestellt, wenn ERR_COR empfangen wird und AER aktiviert ist.
- erhaltene ERR_COR (Stammfehlerstatusregister)
Für die P-Tile/H-Tile Avalon® Streaming-Intel® FPGA IP für PCI Express* und für die P-Tile/H-Tile Avalon® Memory Mapped Intel® FPGA IP für PCI Express* kann die Software die erkannten Fehler bei jeder Aufzählung ignorieren. Wenn die folgenden Fehlerstatus-Bits nach der Aufzählung im Endgerät gesetzt sind, ist es sicher, dass die Software sie ignoriert:
- Korrekturfehler erkannt (Gerätestatusregister)
- Nicht unterstützte Anforderungserkennung (Gerätestatusregister)
- Warnhinweis zum nicht schwerwiegenden Fehlerstatus (Register für korrektablen Fehlerstatus)
- Fehlerstatus nicht unterstützter Antrag (Nicht korrigierbares Fehlerstatusregister)
- Nur wenn das Advisory Non-Fatal Error Mask Bit (Correctable Error Mask Register) auf "0" gesetzt ist
Zur Vereinfachung kann die Problemumgehung in der folgenden Reihenfolge durchgeführt werden
- Löschen Sie nach Abschluss der Aufzählung die Fehlerregister unten (alle Bits gleichzeitig) für alle PCIe Endpoint Functions
- Gerätestatus-Register
- Statusregister für korrigierbaren Fehler
- Nicht korrigierbares Fehlerstatusregister
- Löschen Sie die Fehlerregister unten (alle Bits gleichzeitig) für den PCIe-Root-Port im Zusammenhang mit den oben genannten PCIe Endpoint Functions.
- Sekundäres Statusregister
- Root-Fehlerstatusregister
- Wiederholen Sie Schritt 1 und Schritt 2 für jeden PCI-Enumerationsprozess.
Wenn die Laufzeitabfrage nach Fehlern durchgeführt wird, können Bits "Correctable Error Detected", "Unsupported Request Detect", "Advisory Non-Fatal Error Status" und "Unsupported Request Error Status" von der Polling-Software überprüft werden, um dieses Problem von anderen Zuverlässigkeitsfehlern zu unterscheiden. Wenn nur diese 4 Bits gesetzt sind, können wir annehmen, dass die Fehler auf den Endgeräten mit dem P-Tile/H-Tile Avalon® Streaming Intel® FPGA IP für PCI Express* oder dem P-Tile/H-Tile Avalon® Memory Mapped Intel® FPGA IP für das PCI Express*-Problem zusammenhängen. Es ist angezeigt, mit dem Löschen der Fehlerstatus-Bits fortzufahren, die in Schritt 1 und Schritt 2 oben aufgeführt sind.
Für P-Tile kann die Benutzerlogik die Configuration Intercept Interface (CII) verwenden, um korrekt für die ARI nächste Funktionsnummer zu werben, wenn der Root-Port einen Konfigurationslesebefehl erstellt.