Ошибки PCI-Express сообщаются с определенным типом TLP (Transaction Layer Packet), который называется Message Request (сокращенно Msg).Msg - это своего рода TLP общего назначения, который используется для нескольких целей (сигнализация прерывания совместимости PCI, управление питанием, сигнализация горячей замены и т. Д., В дополнение к сигнализации об ошибках) и отличается от других типов TLP (запрос чтения из памяти,Запрос на запись в память, завершение, чтение / запись конфигурации и т. Д.).
Сообщение об ошибке MLP TLP - это сообщение от устройства, которое обнаружило ошибку, указывающее класс обнаруженной ошибки и на каком устройстве это было.обнаружено.Существует несколько различных способов, которыми Msg TLP-маршрутизация может быть указана отправляющим устройством.Одним из таких способов является «Маршрут к корневому комплексу», который направляет любой промежуточный компонент, такой как коммутатор (мост), для пересылки TLP вверх по потоку к корневому комплексу.Сведения об ошибках записываются в возможности AER конкретного устройства (если оно реализует одно - большинство устройств PCI-E делают), а затем сообщение Msg, сигнализирующее об ошибке, отправляется в восходящий поток в корневой комплекс.
Один раз в корнеСложно, есть два способа сообщить об ошибке платформе.
- Это может быть сообщено как «системная ошибка» (это механизм, совместимый с PCI и PCI-X), если оно включено в регистр управления корневыми функциями корневого комплекса в PCI Express Capability.Что именно делается с системной ошибкой, зависит от платформы.На типичных компьютерах с архитектурой x86 неисправимая ошибка приводит к исключению проверки компьютера.(Часто на материнской плате есть механизм для записи того, что произошло в журнале событий, который впоследствии может быть доступен для программного обеспечения. См. Также эту ссылку для получения дополнительной информации: https://askubuntu.com/a/608156/470836)
- Корневой комплекс также может генерирует прерывание через MSI, если оно включено в регистр корневых команд корневого комплекса (часть возможности AER root). Я не думаю, что это часто используется.
Нетдействительно другой класс ошибок, которые являются «ошибками, не относящимися к AER». Однако устройству не нужно реализовывать возможность AER. В этом случае «устройства, которые не поддерживают функцию расширенной отчетности об ошибках, регистрируют только регистр состояния устройства».биты, указывающие, что была обнаружена ошибка. "Таким образом, детали ошибки будут потеряны.