Я работаю над сетевым драйвером конечной точки FPGA, которая поддерживает прерывания MSI с несколькими сообщениями (не msix) на шине PCIe. Хост-процессор - это x86 Intel i7 620LM, работающий на CentOS с ядром 4.2.Является ли Multi Message MSI реализованным на Linux/x86?
Конечная точка FPGA правильно рекламирует несколько векторов msi в своем регистре возможностей MSI (0x101 = 32 возможных возможных вектора).
Из того, что я могу сказать, в ядре 4.2 была добавлена функциональность нескольких сообщений. К сожалению, когда я звоню pci_enable_msi_range(pdev, 1, 32);
, он возвращает 1
. Когда я звоню pci_msi_vec_count(pdev);
, он возвращает 32
. Я могу запросить обработчик irq на одном векторе, и он работает так, как ожидалось.
Кто-нибудь знает, действительно ли многопоточные векторы MSI поддерживаются в Linux на архитектурах x86?
UPDATE: я был в состоянии получить все включено 32 векторы MSI с использованием другого SBC с процессором i7-4700EQ. Это с ядром 4.4-rc1.
ОБНОВЛЕНИЕ: Работы с 4.2 также.
ОБНОВЛЕНИЕ: В этом случае проблема была в загрузке. Мне удалось получить несколько векторов, работающих после того, как обновил досье.
Конечно, это так. Я не уверен, почему именно вы получаете ошибку. но я написал несколько драйверов, которые использовали более 1 вектор. – stdcall
Что такое платформа (-ы). Вы нашли какие-либо процессоры, APIC и т. Д. Комбо, которые неспособны переназначить несколько векторов? – Tanner