Я пытаюсь назначить последовательную карту PCI Express Brainboxes PX-246 устройству /dev/ttyS.. с помощью команды setserial
, однако эта карта, похоже, не имеет адреса порта ввода-вывода (только адреса памяти).
lspci -v
дает следующее:
05:00.0 Serial controller: Brain Boxes Device 4016 (rev 02) (prog-if 06 [16950])
Subsystem: Brain Boxes Device 4016
Flags: fast devsel, IRQ 18
Memory at f7600000 (32-bit, non-prefetchable) [size=16K]
Memory at f7400000 (32-bit, non-prefetchable) [size=2M]
Memory at f7200000 (32-bit, non-prefetchable) [size=2M]
Capabilities: [40] Power Management version 3
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable- Count=16 Masked-
Capabilities: [100] Device Serial Number 00-30-e0-11-11-00-01-50
Capabilities: [110] Power Budgeting <?>
Можно ли назначить адрес памяти последовательному устройству вместо порта ввода-вывода?
В данный момент я тестирую карту под Ubuntu 16.04, но в конечном итоге она будет использоваться в системе Fedora.
Любая помощь приветствуется!
решение1
Техническое описание OXPCIe952 приведено ниже.здесьна странице 3 говорится, что чип может работать в нескольких режимах в зависимости от аппаратной обвязки 5 контактов.
UART доступен в устаревшем режиме (с адресами ввода-вывода) и собственном режиме (отображенный в памяти, с 3 полосами, показанными в вашем вопросе). Если у вас нет других функций (устройства PCI, такие как и 05:00.1
т 05:00.2
. д.), это означает, что ваша карта поддерживает один собственный UART, 5-я строка в таблице на странице 3. Там также объясняется, для чего используются полосы (если вам интересно) на странице 13. Как я и предполагал, первая полоса — это отображенный в памяти ввод-вывод для UART.
Файл 8250_pci.c
действительно содержит идентификаторы PCI как для устаревших, так и для собственных UART с этим чипом, поэтому да, первое, что я бы попробовал, это добавить ваши идентификаторы PCI в этот файл, перекомпилировать и посмотреть, работает ли он.