我正在尝试使用该setserial
命令将 Brainboxes PX-246 PCI express 串行卡分配给 /dev/ttyS.. 设备,但是该卡似乎没有 I/O 端口地址(只有内存地址)。
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 <?>
是否可以将内存地址分配给串行设备而不是 I/O 端口?
目前我正在 Ubuntu 16.04 下测试该卡,但它最终会在 Fedora 系统上使用。
任何帮助将非常感激!
例如,OXPCIe952 的数据表在这里,它在第 3 页上说,该芯片可以在多种模式下启用,具体取决于 5 个引脚的硬件捆绑。
UART 可用于传统模式(具有 I/O 地址)和本机模式(内存映射,您的问题中显示了 3 个 BAR)。如果您没有任何其他功能(PCI 设备
05:00.1
,05:00.2
如感兴趣)在第 13 页。我猜到,第一个 BAR 是 UART 的内存映射 I/O。该文件
8250_pci.c
确实包含带有此芯片的旧版和本机 UART 的 PCI id,所以是的,我尝试的第一件事是将您的 PCI id 添加到此文件中,重新编译,看看它是否有效。