设置似乎不具备 I/O 端口的 PCIe 串行卡

设置似乎不具备 I/O 端口的 PCIe 串行卡

我正在尝试使用该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 系统上使用。

任何帮助将非常感激!

答案1

OXPCIe952 的数据表如下这里,它在第 3 页上说,根据 5 个引脚的硬件配置,该芯片可以在多种模式下启用。

UART 可用于传统模式(使用 I/O 地址)和本机模式(内存映射,问题中显示 3 个 BAR)。如果您没有任何其他功能(PCI 设备05:00.1,如05:00.2等),这意味着您的卡已启用一个本机 UART,即第 3 页图表中的第 5 行。它还解释了 BAR 的用途(如果您有兴趣)在第 13 页。正如我所猜测的,第一个 BAR 是 UART 的内存映射 I/O。

该文件8250_pci.c确实包含该芯片的传统和本机 UART 的 PCI ID,所以是的,我首先尝试的是将 PCI ID 添加到该文件中,重新编译,然后查看它是否有效。

相关内容